Quero usar o Power Automate para chamar a API de planilhas de horas do TSheet para obter os dados e processá-los. Mas estou tendo dificuldades em fazer um loop pelos dados respondidos do TSheet. Então aqui está um exemplo do json respondido:
{
"results": {
"timesheets": {
"1234567": {
"id": 1234567,
"state": "CLOSED",
"user_id": 123456
},
"2345678": {
"id": 415628812,
"state": "APPROVED",
"user_id": 234567
}
}
}
}
Eu usei as ações "Parse JSON" e "Compose" tentando formatar esse JSON para um array para que eu possa usá-lo na ação "Apply to Each", mas não descobri como. Passar esse objeto json para a ação "Apply to Each" falhará porque requer array.
Qualquer ajuda será apreciada.
Ok, isso não é muito amigável, mas vai lhe dar um resultado.
Basicamente, você precisa converter seu JSON para XML e fazer isso dessa maneira.
Estes são os passos...
Compor dados
Este é o JSON que você forneceu e simplesmente colou nessa operação.
Compor XML
Aqui, convertemos o JSON para XML. Você faz isso por meio desta expressão...
Compor itens de planilha de horas
Esta é uma consulta XPath para separar os itens em uma matriz para que você possa fazer um loop sobre eles.
Para cada elemento
Está executando um loop sobre os resultados da operação anterior.
Compor Item
Aqui, decodificamos o conteúdo do item conforme ele está armazenado atualmente como base64.
Compor item JSON
É aqui que podemos compor um pequeno objeto JSON que tem os dados que você quer de cada item. Ele usa XPath para extrair cada propriedade.
A partir daí, você pode fazer o que precisa com o objeto. Você pode adicioná-lo a um array ou processar os dados em linha.
Devo ressaltar também que tudo isso pode ser feito sem loop.
Se você usar uma
Select
operação em vez do loop, você pode fazer isso muito mais rápido. Esta é a definição para oSelect
, você precisaria escolher as partes para configurá-lo...