Eu estava tentando usar o Power Automate para gerar e-mails automáticos quando uma Pesquisa era enviada com dados faltando ao atender certas condições. Um problema que tive foi obter o nome do projeto no e-mail. O campo do nome do projeto é um domínio de valor codificado e ele só fornecia o código e não o valor no e-mail, o que não é muito útil para a maioria das pessoas. <\/P>
Eu não tinha visto nenhuma solução para puxar valores dinamicamente de um domínio de valor codificado usando Power Automate que não envolvesse criar um novo campo na camada de feição e preencher esse campo com o valor e então chamar esse campo no Power Automate. Meu problema era que os valores CVD estão enterrados alguns níveis dentro de um JSON e tive muita dificuldade para descobrir como acessá-los. A ação get coded value domains from feature layer pode gerar uma lista específica de cvd, mas o Power Automate não reconhecia isso como um formato json válido nas etapas seguintes. <\/P>
Aqui está meu fluxo de trabalho. Isso usa a conexão premium do ArcGIS. Usei o When a Survey Response is Submitted<\/STRONG> como gatilho e a ação "Get Coded Value Domains from Feature Layer<\/STRONG> . Em seguida, adicionei a ação Initialize Variable<\/STRONG> com o tipo definido como String e valor conteúdo dinâmico apontando para o campo Project Name do When a Survey Response is Submitted. Dei à variável o nome Project Value, que é o que você procurará em Conteúdo Dinâmico mais tarde. <\/P>Nesse ponto, salve e execute um teste. Nos resultados do teste, vá para Get Coded Value Domains from Feature Layer,<\/STRONG> clique em Show Raw Outputs, e então copie e cole a saída bruta em um visualizador parse json. Eu usei este https:\/\/jsonviewer.stack.hu\/<\/A> Você pode visualizar como texto ou usar a aba Viewer para ver o esquema do json em uma visualização expansível da estrutura para entender como tudo está aninhado. No meu caso, estou procurando pelo domínio "projname" e os "codes" sob ele. Codes coloca primeiro o código cvd e depois o valor, formatado como "test1234": "Test Project". Names inverte isso, colocando primeiro o valor e depois o código cvd, então você teria "Test Project": "test1234". É importante usar os Codes por causa do emparelhamento name:value do json <\/P>A próxima ação a adicionar é Parse JSON<\/STRONG>. Para o conteúdo, usarei o conteúdo dinâmico Body <\/STRONG>do Get Coded Value Domains from Feature Layer<\/STRONG> e então para acessar o cvd específico que quero preciso adicionar um pouco mais. Para aprofundar um nível no json, você precisa adicionar o nome do nível entre colchetes e apóstrofos ao final do conteúdo dinâmico. Você adiciona outro para o próximo nível. Então, para acessar os codes do meu projname cvd, o conteúdo da ação Parse JSON<\/STRONG> fica assim: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Para o esquema, clique em Use Sample Payload to Generate Schema<\/STRONG> e cole a saída bruta copiada anteriormente na janela popup. Isso vai aprofundar e retornar o cvd do nome do projeto com os códigos na posição name do json e os valores cvd na posição value do json, novamente, parecendo assim "test1234": "Test Project".<\/SPAN><\/DIV> <\/DIV>A próxima ação a adicionar é Compose<\/STRONG>, onde usaremos a variável definida anteriormente para filtrar a saída body do Parse JSON. Nos Inputs clique em fx para inserir uma expressão, depois clique na aba Conteúdo Dinâmico na janela popup. De Parse JSON<\/STRONG>, adicione o Body,<\/STRONG> depois adicione colchetes ao final e entre os colchetes adicione a Project Value<\/STRONG> criada pelo Initialize Variable<\/STRONG>. A expressão ficará assim: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Como aprofundamos no JSON até o cvd com formato name:value sendo code:value no JSON, o [variables('Project Value')] nos leva ao último passo pedindo pelo valor de um nome que corresponde à variável Project Value. Como atribuímos Project Value ao campo Project Name da ação "When a survey response is submitted", isso está pedindo pelo valor específico que corresponde ao código do registro enviado. <\/SPAN><\/DIV> <\/DIV>Quando uso a saída Compose em outra parte do fluxo agora receberei "Test Project" em vez de "test1234".<\/DIV><\/DIV><\/DIV><\/DIV>
A próxima ação a adicionar é Parse JSON<\/STRONG>. Para o conteúdo, usarei o conteúdo dinâmico Body <\/STRONG>do Get Coded Value Domains from Feature Layer<\/STRONG> e então para acessar o cvd específico que quero preciso adicionar um pouco mais. Para aprofundar um nível no json, você precisa adicionar o nome do nível entre colchetes e apóstrofos ao final do conteúdo dinâmico. Você adiciona outro para o próximo nível. Então, para acessar os codes do meu projname cvd, o conteúdo da ação Parse JSON<\/STRONG> fica assim: <\/P>body<\/SPAN>(<\/SPAN>'Get_coded_value_domains_from_feature_layer'<\/SPAN>)[<\/SPAN>'projname'<\/SPAN>][<\/SPAN>'codes'<\/SPAN>]<\/SPAN><\/DIV> <\/DIV>Para o esquema, clique em Use Sample Payload to Generate Schema<\/STRONG> e cole a saída bruta copiada anteriormente na janela popup. Isso vai aprofundar e retornar o cvd do nome do projeto com os códigos na posição name do json e os valores cvd na posição value do json, novamente, parecendo assim "test1234": "Test Project".<\/SPAN><\/DIV> <\/DIV>A próxima ação a adicionar é Compose<\/STRONG>, onde usaremos a variável definida anteriormente para filtrar a saída body do Parse JSON. Nos Inputs clique em fx para inserir uma expressão, depois clique na aba Conteúdo Dinâmico na janela popup. De Parse JSON<\/STRONG>, adicione o Body,<\/STRONG> depois adicione colchetes ao final e entre os colchetes adicione a Project Value<\/STRONG> criada pelo Initialize Variable<\/STRONG>. A expressão ficará assim: <\/SPAN><\/SPAN> <\/DIV>body<\/SPAN>(<\/SPAN>'Parse_JSON'<\/SPAN>)[<\/SPAN>variables<\/SPAN>(<\/SPAN>'Project Value'<\/SPAN>)]<\/SPAN><\/DIV> <\/DIV>Como aprofundamos no JSON até o cvd com formato name:value sendo code:value no JSON, o [variables('Project Value')] nos leva ao último passo pedindo pelo valor de um nome que corresponde à variável Project Value. Como atribuímos Project Value ao campo Project Name da ação "When a survey response is submitted", isso está pedindo pelo valor específico que corresponde ao código do registro enviado. <\/SPAN><\/DIV> <\/DIV>Quando uso a saída Compose em outra parte do fluxo agora receberei "Test Project" em vez 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:
Membros conectados podem postar, seguir atualizações e mais. Novo aqui? Registre uma conta gratuita.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.