Blog

  • Accueil
  • Blog
  • Comment manipuler les variables d'environnement en C#

Comment manipuler les variables d'environnement en C#

11 March 2024
Dans une application comme un CRM, il est assez fréquent d'avoir des variables de configuration pour différentes raisons. Que ce soit des URL qui pointent vers d'autres applications ou des API secrètes ou clés... Les utilisations sont diverses.
Heureusement Microsoft sait répondre avec les bonnes solutions aux problèmes, et l'accélération du rythme des releases nous permet de bénéficier de nouvelles fonctionnalités beaucoup plus souvent.

Dans cet article, je voudrais vous présenter comment lire et définir les valeurs des variables d'environnement depuis un plugin C#.

En fait, la fonctionnalité de variable d'environnement ne se présente pas dans une seule table, mais dans deux tables :

  • Définition de la variable d'environnement
  • Valeur de la variable d'environnement

Lorsque vous créez une nouvelle variable d'environnement dans votre solution, cela crée en fait la variable d'environnement Définition. Qui pourra être déployée plus tard avec votre solution. Si vous souhaitez conserver des valeurs différentes pour tous les environnements, la définition suffit à être importée dans les solutions. Vous n'aurez probablement pas besoin de déployer les valeurs.

Le code ci-dessous vous aidera à initialiser et à définir les valeurs des variables dans l'environnement cible.

public static void SetEnvVariable(IOrganizationService service, string variableName, string variableValue) { // Search for Variable Definition by name QueryExpression query2 = new QueryExpression("environmentvariabledefinition"); query2.ColumnSet = new ColumnSet("environmentvariabledefinitionid"); query2.Criteria.AddCondition("schemaname", ConditionOperator.Equal, variableName); EntityCollection definitionResults = service.RetrieveMultiple(query2); if (definitionResults.Entities.Count > 0) { Entity definition = definitionResults.Entities[0]; // Research the environment variable by its name QueryExpression query = new QueryExpression("environmentvariablevalue"); query.ColumnSet = new ColumnSet("environmentvariablevalueid", "value"); query.Criteria.AddCondition("schemaname", ConditionOperator.Equal, variableName); EntityCollection results = service.RetrieveMultiple(query); if (results.Entities.Count > 0) { Entity variable = results.Entities[0]; variable["value"] = variableValue; // Updates the value of the environment variable service.Update(variable); } else { Entity variable = new Entity("environmentvariablevalue"); variable["environmentvariabledefinitionid"] = new EntityReference("environmentvariabledefinition", definition.Id); variable["schemaname"] = variableName; variable["value"] = variableValue; // Creates the value of the environment variable service.Create(variable); } } }
cookie
Cookies Consent

We use our own and third-party cookies to personalize content and to analyze web traffic.

Reject all