Snažil jsem se použít Power Automate k automatickému generování e-mailů, když byl odeslán průzkum, který postrádal data za určitých podmínek. Jeden problém, který jsem měl, bylo dostat název projektu do e-mailu. Pole názvu projektu je doména kódovaných hodnot a v e-mailu by se zobrazil pouze kód, nikoli hodnota, což pro většinu lidí není příliš užitečné. <\/P>
Nenašel jsem žádná řešení pro dynamické získávání hodnot z domény kódovaných hodnot pomocí Power Automate, která by nevyžadovala vytvoření nového pole ve feature layer a naplnění tohoto pole hodnotou a poté volání tohoto pole v Power Automate. Můj problém byl, že hodnoty CVD jsou ukryty několik úrovní hluboko v JSON a měl jsem opravdu velké potíže zjistit, jak k nim přistupovat. Akce get coded value domains from feature layer může vrátit konkrétní seznam cvd, ale Power Automate jej později nechtěl rozpoznat jako platný formát json. <\/P>
Tady je můj pracovní postup. Používá prémiové připojení ArcGIS. Jako spouštěč jsem použil When a Survey Response is Submitted<\/STRONG> a jako akci "Get Coded Value Domains from Feature Layer<\/STRONG>. Poté jsem přidal akci Initialize Variable<\/STRONG> s typem nastaveným na String a hodnotou dynamického obsahu směřujícího na pole Project Name z When a Survey Response is Submitted. Proměnné jsem dal název Project Value, což je to, co budete později hledat v Dynamic Content. <\/P>V tomto bodě uložte a spusťte test. Ve výsledcích testu přejděte na Get Coded Value Domains from Feature Layer,<\/STRONG> klikněte na Show Raw Outputs a poté zkopírujte a vložte surový výstup do nástroje pro analýzu json. Použil jsem tento https:\/\/jsonviewer.stack.hu\/<\/A> Můžete si jej prohlédnout jako text nebo použít záložku Viewer pro zobrazení schématu json ve strukturovaném rozbalitelném pohledu, abyste pochopili, jak je vše vnořeno. V mém případě hledám doménu "projname" a "codes" pod ní. Codes uvádí nejprve kód cvd a pak hodnotu, je formátováno jako "test1234": "Test Project". Names to obrací a uvádí nejprve hodnotu a pak kód cvd, takže byste dostali "Test Project": "test1234". Je důležité použít Codes kvůli párování name:value v jsonu <\/P>Další akcí, kterou přidám, je Parse JSON<\/STRONG>. Pro obsah použiji Body <\/STRONG>dynamický obsah z Get Coded Value Domains from Feature Layer<\/STRONG> a abych se dostal ke konkrétnímu cvd, potřebuji k tomu něco navíc. Pro sestup o úroveň v jsonu musíte na konec dynamického obsahu přidat název úrovně v hranatých závorkách a apostrofech. Další přidáte pro další úroveň. Takže pro přístup ke kódům mého projname cvd obsah akce Parse JSON<\/STRONG> vypadá takto: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Pro schéma klikněte na Use Sample Payload to Generate Schema<\/STRONG> a vložte surový výstup zkopírovaný dříve do vyskakovacího okna. To sestoupí dolů a vrátí projektovou doménu cvd s kódy na pozici name v jsonu a hodnotami cvd na pozici value v jsonu, opět ve formátu jako "test1234": "Test Project".<\/SPAN><\/DIV> <\/DIV>Další akcí je Compose<\/STRONG>, kde použijeme proměnnou nastavenou dříve k filtrování výstupu body z Parse JSON. V Inputs klikněte na fx pro vložení výrazu, poté klikněte na záložku Dynamic Content ve vyskakovacím okně. Z Parse JSON<\/STRONG> přidejte Body,<\/STRONG> pak přidejte hranaté závorky na konec a mezi závorky vložte Project Value<\/STRONG>, vytvořenou pomocí Initialize Variable<\/STRONG>. Výraz bude vypadat takto: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Při sestupu přes JSON ke cvd s formátem code:value jako name:value JSON formát [variables('Project Value')] nás vede posledním krokem a žádá o hodnotu jména odpovídající proměnné Project Value. Protože jsme přiřadili Project Value poli Project Name z akce "When a survey response is submitted", toto žádá o konkrétní hodnotu odpovídající kódu ze záznamu, který byl odeslán. <\/SPAN><\/DIV> <\/DIV>Když použiji výstup Compose jinde ve flow, nyní dostanu "Test Project" místo "test1234".<\/DIV><\/DIV><\/DIV><\/DIV>
Další akcí, kterou přidám, je Parse JSON<\/STRONG>. Pro obsah použiji Body <\/STRONG>dynamický obsah z Get Coded Value Domains from Feature Layer<\/STRONG> a abych se dostal ke konkrétnímu cvd, potřebuji k tomu něco navíc. Pro sestup o úroveň v jsonu musíte na konec dynamického obsahu přidat název úrovně v hranatých závorkách a apostrofech. Další přidáte pro další úroveň. Takže pro přístup ke kódům mého projname cvd obsah akce Parse JSON<\/STRONG> vypadá takto: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Pro schéma klikněte na Use Sample Payload to Generate Schema<\/STRONG> a vložte surový výstup zkopírovaný dříve do vyskakovacího okna. To sestoupí dolů a vrátí projektovou doménu cvd s kódy na pozici name v jsonu a hodnotami cvd na pozici value v jsonu, opět ve formátu jako "test1234": "Test Project".<\/SPAN><\/DIV> <\/DIV>Další akcí je Compose<\/STRONG>, kde použijeme proměnnou nastavenou dříve k filtrování výstupu body z Parse JSON. V Inputs klikněte na fx pro vložení výrazu, poté klikněte na záložku Dynamic Content ve vyskakovacím okně. Z Parse JSON<\/STRONG> přidejte Body,<\/STRONG> pak přidejte hranaté závorky na konec a mezi závorky vložte Project Value<\/STRONG>, vytvořenou pomocí Initialize Variable<\/STRONG>. Výraz bude vypadat takto: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Při sestupu přes JSON ke cvd s formátem code:value jako name:value JSON formát [variables('Project Value')] nás vede posledním krokem a žádá o hodnotu jména odpovídající proměnné Project Value. Protože jsme přiřadili Project Value poli Project Name z akce "When a survey response is submitted", toto žádá o konkrétní hodnotu odpovídající kódu ze záznamu, který byl odeslán. <\/SPAN><\/DIV> <\/DIV>Když použiji výstup Compose jinde ve flow, nyní dostanu "Test Project" místo "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:
Přihlášení členové mohou přispívat, sledovat aktualizace a další. Jste tu noví? Zaregistrujte si bezplatný účet.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.