Ik probeerde Power Automate te gebruiken om geautomatiseerde e-mails te genereren wanneer een Survey werd ingediend die gegevens miste wanneer aan bepaalde voorwaarden werd voldaan. Een probleem dat ik had, was het krijgen van de projectnaam in de e-mail. Het projectnaamveld is een coded value domain en het gaf alleen de code en niet de waarde in de e-mail, wat voor de meeste mensen niet erg nuttig is. <\/P>
Ik had geen oplossingen gezien voor het dynamisch ophalen van waarden uit een coded value domain met Power Automate die niet inhielden dat je een nieuw veld in de feature layer moest maken en dat veld moest vullen met de waarde en vervolgens dat veld in Power Automate aanroepen. Mijn probleem was dat de CVD-waarden een paar niveaus diep in een JSON begraven zijn en ik had echt moeite om uit te zoeken hoe ik er toegang toe kon krijgen. De actie get coded value domains from feature layer kan een specifieke cvd-lijst outputten, maar Power Automate wilde het later niet herkennen als een geldig json-formaat. <\/P>
Hier is mijn workflow. Dit gebruikt de premium level ArcGIS-verbinding. Ik gebruikte de When a Survey Response is Submitted<\/STRONG> als trigger en de "Get Coded Value Domains from Feature Layer<\/STRONG> als actie. Vervolgens voegde ik de Initialize Variable<\/STRONG>-actie toe met het type ingesteld op String en waarde dynamische inhoud wijzend naar het Project Name-veld van When a Survey Response is Submitted. Ik gaf de variabele de naam Project Value, wat is waar je later naar zult zoeken in Dynamic Content. <\/P>Op dit punt opslaan en een test uitvoeren. Ga in de testresultaten naar de Get Coded Value Domains from Feature Layer,<\/STRONG> klik op Show Raw Outputs, en kopieer en plak dan de ruwe output in een parse json viewer. Ik gebruikte deze https:\/\/jsonviewer.stack.hu\/<\/A> Je kunt het als tekst bekijken of gebruik maken van het Viewer-tabblad om het schema van de json te zien in een uitbreidbare structuurweergave om te begrijpen hoe alles genest is. In mijn geval zoek ik naar het "projname" domein en de "codes" daaronder. Codes zet eerst de cvd-code en dan de waarde, het is geformatteerd als "test1234": "Test Project". Names draait dat om en zet eerst de waarde en dan de cvd-code zodat je "Test Project": "test1234" krijgt. Het is belangrijk om Codes te gebruiken vanwege de name:value koppeling van de json <\/P>Mijn volgende actie om toe te voegen is Parse JSON<\/STRONG>. Voor de inhoud zal ik de Body <\/STRONG>dynamische inhoud gebruiken van Get Coded Value Domains from Feature Layer<\/STRONG> en dan om bij de specifieke cvd te komen die ik wil moet ik er nog iets extra's aan toevoegen. Om een niveau dieper te gaan in de json moet je de naam van het niveau tussen vierkante haken en apostroffen aan het einde van de dynamische inhoud toevoegen. Je voegt er nog een toe voor het volgende niveau. Dus om bij de codes van mijn projname cvd te komen ziet de inhoud van de Parse JSON<\/STRONG>-actie er zo uit: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Voor het schema klik je op Use Sample Payload to Generate Schema<\/STRONG> en plak je de eerder gekopieerde ruwe output in het pop-upvenster. Dit gaat dieper en retourneert het projectnaam-cvd met de codes op de naampositie van de json en de cvd-waarden op de waardepositie van de json, opnieuw, zoals dit eruitziet "test1234": "Test Project"<\/SPAN><\/DIV> <\/DIV>De volgende actie om toe te voegen is Compose<\/STRONG>, waar we de eerder ingestelde variabele zullen gebruiken om de body-output van Parse JSON te filteren. Klik bij Inputs op fx om een expressie in te voegen, klik dan op het tabblad Dynamic Content in het pop-upvenster. Voeg vanuit Parse JSON<\/STRONG> Body toe, voeg dan vierkante haken toe aan het einde en tussen die haken voeg je Project Value<\/STRONG> toe die gemaakt is door Initialize Variable<\/STRONG>. De expressie ziet er zo uit: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Aangezien we door JSON zijn gegaan tot aan het cvd met code:waarde als name:value JSON-formaat neemt [variables('Project Value')] ons mee naar het laatste niveau en vraagt om de waarde van een naam die overeenkomt met de Project Value-variabele. Omdat we Project Value hebben toegewezen aan het Project Name-veld van de "When a survey response is submitted"-actie, wordt hier gevraagd naar die specifieke waarde die overeenkomt met de code uit het ingediende record. <\/SPAN><\/DIV> <\/DIV>Wanneer ik Compose-output elders in de flow gebruik, krijg ik nu "Test Project" in plaats van "test1234".<\/DIV><\/DIV><\/DIV><\/DIV>
Mijn volgende actie om toe te voegen is Parse JSON<\/STRONG>. Voor de inhoud zal ik de Body <\/STRONG>dynamische inhoud gebruiken van Get Coded Value Domains from Feature Layer<\/STRONG> en dan om bij de specifieke cvd te komen die ik wil moet ik er nog iets extra's aan toevoegen. Om een niveau dieper te gaan in de json moet je de naam van het niveau tussen vierkante haken en apostroffen aan het einde van de dynamische inhoud toevoegen. Je voegt er nog een toe voor het volgende niveau. Dus om bij de codes van mijn projname cvd te komen ziet de inhoud van de Parse JSON<\/STRONG>-actie er zo uit: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Voor het schema klik je op Use Sample Payload to Generate Schema<\/STRONG> en plak je de eerder gekopieerde ruwe output in het pop-upvenster. Dit gaat dieper en retourneert het projectnaam-cvd met de codes op de naampositie van de json en de cvd-waarden op de waardepositie van de json, opnieuw, zoals dit eruitziet "test1234": "Test Project"<\/SPAN><\/DIV> <\/DIV>De volgende actie om toe te voegen is Compose<\/STRONG>, waar we de eerder ingestelde variabele zullen gebruiken om de body-output van Parse JSON te filteren. Klik bij Inputs op fx om een expressie in te voegen, klik dan op het tabblad Dynamic Content in het pop-upvenster. Voeg vanuit Parse JSON<\/STRONG> Body toe, voeg dan vierkante haken toe aan het einde en tussen die haken voeg je Project Value<\/STRONG> toe die gemaakt is door Initialize Variable<\/STRONG>. De expressie ziet er zo uit: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Aangezien we door JSON zijn gegaan tot aan het cvd met code:waarde als name:value JSON-formaat neemt [variables('Project Value')] ons mee naar het laatste niveau en vraagt om de waarde van een naam die overeenkomt met de Project Value-variabele. Omdat we Project Value hebben toegewezen aan het Project Name-veld van de "When a survey response is submitted"-actie, wordt hier gevraagd naar die specifieke waarde die overeenkomt met de code uit het ingediende record. <\/SPAN><\/DIV> <\/DIV>Wanneer ik Compose-output elders in de flow gebruik, krijg ik nu "Test Project" in plaats van "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:
Aangemelde leden kunnen berichten plaatsen, updates volgen en meer. Nieuw hier? Registreer een gratis account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.