Como resolver o erro de tipo inválido JSON no Power Automate?

Por Erick Alves de Moura
Como resolver o erro de tipo inválido JSON no Power Automate?

Você cria um esquema usando um JSON obtido de algum lugar, mas ao executar seu fluxo do Power Automate, até, obtém um “Tipo inválido. Esperava X, mas obteve Nulo”. O problema tem uma solução simples, mas primeiro vou mostrar porque isso acontece para enquadrar melhor a solução.

O problema

O problema está no esquema necessário para executar a ação Analisar JSON. Quando você usa “Gerar a partir da amostra”, o Power Automate fará o possível para criar o esquema que descreve os dados recebidos.

Você não precisa saber o que é um esquema, mas se estiver curioso, aqui está um artigo explicando em detalhes .

O esquema descreve o tipo de dados que o JSON possui. Pense nisso como um tradutor entre JSON e “linguagem do Power Automate” para que você possa escolher os campos do “conteúdo dinâmico” em outras ações.

Por exemplo, digamos que temos o seguinte JSON:

{
	"name": "Trinapse",
	"age": 20,
	"address":""
}

O Power Automate gerará o seguinte esquema:

{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "age": {
            "type": "integer"
        },
        "address": {
            "type": "string"
        }
    }
}

Se inserirmos uma “Ação de composição”, por exemplo, já podemos encontrar os valores na aba “Conteúdo dinâmico”:

Mas e se eu fosse tímido em relação à minha idade e não a fornecesse para que o serviço retornasse algo assim:

{
	"name": "Trinapse",
	"age": null,
	"address":""
}

Receberemos um arquivo “ValidationFailed. A validação do esquema falhou.”

O Power Automate fornece um pouco mais de informações abaixo com a mensagem de erro.

“Tipo inválido. Esperava Inteiro, mas obteve Nulo.”

Se o campo fosse uma string, você obteria o seguinte:

“Tipo inválido. Esperava String, mas obteve Null.”

Então, agora que temos o erro simulado, vamos ver como corrigi-lo.

A solução

A solução é informar ao Power Automate que ele deve receber números inteiros e valores nulos. Isso ocorre porque um valor “nulo” difere totalmente de um número inteiro ou de uma string. Um valor “nulo” não é o mesmo que “vazio”, pois uma string “vazia” é uma string, no entanto. Um campo “nulo” indica que o campo não tem “nada” dentro dele. E como o Power Automate não sabe se “qualquer coisa” é o mesmo que uma string ou um inteiro, ele o define como um tipo distinto.

Então vamos adicionar o “nulo” como um valor possível, mas como sabemos qual campo está com problemas? Para encontrá-lo é fácil. Basta olhar os campos abaixo da mensagem de erro:

Nesse caso, está indicando que a “propriedade” chamada “idade” tem o problema.

Agora que sabemos onde corrigi-lo, vamos ver novamente o esquema:

{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "age": {
            "type": "integer"
        },
        "address": {
            "type": "string"
        }
    }
}

Atualmente, o “tipo” para a “idade” é apenas um número inteiro, mas precisamos dizer Power Automate para permitir “nulo” também. Como queremos tipos “múltiplos”, precisamos usar uma matriz de tipos potenciais de valores, como:

["integer","null"]

Agora substituímos o tipo de apenas um valor por um intervalo de valores.

{
    "type": "object",
    "properties": {
        "name": {
            "type": "string"
        },
        "age": {
            "type": ["integer","null"]
        },
        "address": {
            "type": "string"
        }
    }
}

E o Flow deve rodar sem problemas. Se você receber este erro novamente, verifique a mensagem de erro acima e veja o nome do campo. Você pode ter vários campos que precisam ser alterados, então repita as etapas até que seu fluxo seja executado sem problemas.

Pensamentos finais

A solução para esse problema é relativamente fácil quando você entende de onde vem. Tenha cuidado ao editar esquemas mais complexos. Você sempre pode gerar um novo e começar de novo, mas não se apresse e verifique se está substituindo o campo com problemas.

Para mais conteúdos como este acesse nosso blog e fique por dentro das mais recentes atualizações da Power Platform.

Ver mais artigos

Entre em Contato

Vamos juntos transformar sua dor
em solução!

#moveFast