J'essayais d'utiliser Power Automate pour générer des e-mails automatisés lorsqu'une enquête était soumise et qu'il manquait des données lorsque certaines conditions étaient remplies. Un problème que j'ai rencontré était d'obtenir le nom du projet dans l'e-mail. Le champ du nom du projet est un domaine de valeurs codées et il ne donnait que le code et non la valeur dans l'e-mail, ce qui n'est pas très utile pour la plupart des gens. <\/P>
Je n'avais vu aucune solution pour extraire dynamiquement des valeurs d'un domaine de valeurs codées en utilisant Power Automate qui n'impliquait pas de créer un nouveau champ dans la couche d'entités et de remplir ce champ avec la valeur, puis d'appeler ce champ dans Power Automate. Mon problème était que les valeurs CVD sont enfouies à plusieurs niveaux dans un JSON et j'ai eu beaucoup de mal à comprendre comment y accéder. L'action get coded value domains from feature layer peut produire une liste spécifique de cvd, mais Power Automate ne voulait pas la reconnaître comme un format json valide dans les étapes suivantes. <\/P>
Voici mon flux de travail. Cela utilise la connexion ArcGIS de niveau premium. J'ai utilisé le When a Survey Response is Submitted<\/STRONG> comme déclencheur et l'action "Get Coded Value Domains from Feature Layer<\/STRONG>. J'ai ensuite ajouté l'action Initialize Variable<\/STRONG> avec le type défini sur String et la valeur en contenu dynamique pointant vers le champ Project Name de When a Survey Response is Submitted. J'ai donné à la variable le nom Project Value, que vous rechercherez plus tard dans Dynamic Content. <\/P>À ce stade, enregistrez et lancez un test. Dans les résultats du test, allez à Get Coded Value Domains from Feature Layer,<\/STRONG> cliquez sur Show Raw Outputs, puis copiez-collez la sortie brute dans un visualiseur parse json. J'ai utilisé celui-ci https:\/\/jsonviewer.stack.hu\/<\/A> Vous pouvez le voir en texte ou utiliser l'onglet Viewer pour voir le schéma du json dans une vue structurelle extensible afin de comprendre comment tout est imbriqué. Dans mon cas, je cherche le domaine "projname" et les "codes" sous celui-ci. Codes place d'abord le code cvd puis la valeur, il est formaté comme "test1234": "Test Project". Names inverse cela et place la valeur en premier puis le code cvd donc vous auriez "Test Project": "test1234". Il est important d'utiliser Codes car l'association name:value du json <\/P>Mon action suivante à ajouter est Parse JSON<\/STRONG>. Pour le contenu, j'utiliserai le contenu dynamique Body <\/STRONG>de Get Coded Value Domains from Feature Layer<\/STRONG>, puis pour accéder au cvd spécifique que je veux, je dois ajouter un peu plus. Pour descendre d'un niveau dans le json, vous devez ajouter le nom du niveau entre crochets et apostrophes à la fin du contenu dynamique. Vous ajoutez un autre pour le niveau suivant. Donc pour accéder aux codes de mon cvd projname, le contenu de l'action Parse JSON<\/STRONG> ressemble à ceci: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Pour le schéma, cliquez sur Use Sample Payload to Generate Schema<\/STRONG> et collez la sortie brute copiée précédemment dans la fenêtre contextuelle. Cela va descendre et retourner le cvd du nom du projet avec les codes en position name du json et les valeurs cvd en position value du json, encore une fois, ressemblant à ceci "test1234": "Test Project"<\/SPAN><\/DIV> <\/DIV>L'action suivante à ajouter est Compose<\/STRONG>, c'est là que nous utiliserons la variable définie plus tôt pour filtrer la sortie body de Parse JSON. Dans Inputs, cliquez sur fx pour insérer une expression, puis cliquez sur l'onglet Dynamic Content dans la fenêtre contextuelle. Depuis Parse JSON<\/STRONG>, ajoutez Body,<\/STRONG>, puis ajoutez des crochets à la fin et entre les crochets ajoutez Project Value<\/STRONG> créé par Initialize Variable<\/STRONG>. L'expression ressemblera à ceci: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Puisque nous avons descendu dans le JSON jusqu'au cvd avec le format code:value comme name:value JSON, [variables('Project Value')] nous emmène à l'étape finale et demande la valeur d'un name qui correspond à la variable Project Value. Puisque nous avons assigné Project Value au champ Project Name de l'action "When a survey response is submitted", cela demande la valeur spécifique qui correspond au code de l'enregistrement soumis. <\/SPAN><\/DIV> <\/DIV>Lorsque j'utilise la sortie Compose ailleurs dans le flux, j'obtiendrai maintenant "Test Project" au lieu de "test1234".<\/DIV><\/DIV><\/DIV><\/DIV>
Mon action suivante à ajouter est Parse JSON<\/STRONG>. Pour le contenu, j'utiliserai le contenu dynamique Body <\/STRONG>de Get Coded Value Domains from Feature Layer<\/STRONG>, puis pour accéder au cvd spécifique que je veux, je dois ajouter un peu plus. Pour descendre d'un niveau dans le json, vous devez ajouter le nom du niveau entre crochets et apostrophes à la fin du contenu dynamique. Vous ajoutez un autre pour le niveau suivant. Donc pour accéder aux codes de mon cvd projname, le contenu de l'action Parse JSON<\/STRONG> ressemble à ceci: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Pour le schéma, cliquez sur Use Sample Payload to Generate Schema<\/STRONG> et collez la sortie brute copiée précédemment dans la fenêtre contextuelle. Cela va descendre et retourner le cvd du nom du projet avec les codes en position name du json et les valeurs cvd en position value du json, encore une fois, ressemblant à ceci "test1234": "Test Project"<\/SPAN><\/DIV> <\/DIV>L'action suivante à ajouter est Compose<\/STRONG>, c'est là que nous utiliserons la variable définie plus tôt pour filtrer la sortie body de Parse JSON. Dans Inputs, cliquez sur fx pour insérer une expression, puis cliquez sur l'onglet Dynamic Content dans la fenêtre contextuelle. Depuis Parse JSON<\/STRONG>, ajoutez Body,<\/STRONG>, puis ajoutez des crochets à la fin et entre les crochets ajoutez Project Value<\/STRONG> créé par Initialize Variable<\/STRONG>. L'expression ressemblera à ceci: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Puisque nous avons descendu dans le JSON jusqu'au cvd avec le format code:value comme name:value JSON, [variables('Project Value')] nous emmène à l'étape finale et demande la valeur d'un name qui correspond à la variable Project Value. Puisque nous avons assigné Project Value au champ Project Name de l'action "When a survey response is submitted", cela demande la valeur spécifique qui correspond au code de l'enregistrement soumis. <\/SPAN><\/DIV> <\/DIV>Lorsque j'utilise la sortie Compose ailleurs dans le flux, j'obtiendrai maintenant "Test Project" au lieu de "test1234".<\/DIV><\/DIV><\/DIV><\/DIV>
Hi @TylerGraham2 , thank you so much for putting this post together. I have been struggling for days with getting domain labels rather than codes in to an MS Teams chat. I was about to tell my client that it couldn't be done, but thanks to your post I have managed it!
My flow has a scheduled trigger, so the Initialize Variable seems to work differently. I had to leave the value empty in the Initialize Variable action, because Power Automate was forcing it in to a For Each loop. Then within my Apply To Each loop, I added a Set Variable with the value expression:
Les membres connectés peuvent publier, suivre les mises à jour, et plus encore. Nouveau ici ? Inscrivez-vous gratuitement.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.