Guia de Tratamento de Erros
Esta guia tem um conjunto de filtros em que você precisa especificar a regra de resposta. Se houver uma correspondência, a transação será considerada incorreta e um texto de erro personalizado também será gerado.
Você pode criar vários blocos separados de uma vez. Cada bloco pode ter seu próprio texto de erro. O bloco consiste em grupos de filtros e é acionado apenas se todos os filtros forem completamente correspondentes.
Assim, podem ser criados diversos blocos com condições de filtro e textos de erro específicos, ou um bloco com várias opções de filtro.
![](https://storage.crisp.chat/users/helpdesk/website/4fd4224d3cc0580/54600ae7-c2d3-4ecc-96f3-c32b9d_djdoi0.png)
Para a definição do tipo de erro, os seguintes valores estão disponíveis:
Default - erro padrão. Se os dados corresponderem ao filtro, a transação é considerada inválida.
InvalidCredential - as condições que estão escritas neste tipo de erro indicam que o usuário está com problemas na conexão que é usada no bundle. Ou seja, os dados de autorização não estão mais válidos.
ExpiredToken - nesse tipo de erro, você precisa especificar no filtro o texto da resposta, o que significa que o token de acesso expirou e precisa ser atualizado. Se for usada a autorização, na qual você precisa atualizar o token de acesso após a expiração, esse tipo de erro é necessário. Quando as condições de um bloco com este tipo coincidirem, o aplicativo fará uma solicitação para atualizar o token (configurado na autorização) e o salvará na conexão. Em seguida, será feita uma tentativa de solicitação novamente com um novo token de acesso (após a atualização). Se o erro persistir mesmo após a tentativa de atualização, a transação será considerada incorreta e o texto do erro será exibido de acordo com o mapeamento.
Neste campo, é escrito o texto que será exibido no log do bundle se ocorrer um erro. No campo, você pode inserir um valor estático ou atribuir um mapeamento à variável de resposta, cujo valor será exibido. O mapeamento deve ser escrito entre duas chaves {{ }}. No início você precisa escrever data., se a variável necessária estiver no corpo da resposta, ou headers., se a variável estiver nos cabeçalhos da resposta.
Veja o exemplo do texto de resposta com a seguinte descrição:
Nesse caso, o mapeamento deve ser especificado da seguinte forma: {{ data.response.error }}
![](https://storage.crisp.chat/users/helpdesk/website/6431258b8a4e4c00/af22a1df-0fdd-4f58-9f66-9db9af_o6f0o5.png)
Consiste na configuração das condições que indicam ao aplicativo que a solicitação é considerada inválida.
No campo esquerdo, escreva o mapeamento para a chave da variável que você deseja seguir (o mapeamento também deve começar com data. ou headers.). Selecione um operador de condição e, no campo à direita, especifique um valor de variável que indica um erro.
Você também pode definir o valor headers.http-code no campo esquerdo. Esta chave irá monitorar o código de resposta HTTP e você pode escrever 400 no valor, por exemplo.
Dentro de um bloco, é possível criar um número ilimitado de condições, definindo o operador entre as condições (E/OU). Cada condição também pode ser convertida em um grupo de condições para uma definição mais precisa. Por exemplo: status = erro 1 (result = mensagem1 OU result = mensagem2) ( status = erro E (result = erro1 OU result = erro2))
Vamos pegar o JSON do exemplo de mapeamento de erro. Se o JSON aparecer neste formato apenas quando houver um erro, após solicitações bem-sucedidas, e a variável response.error estiver ausente, é possível preencher o filtro para que ele responda ao fato de que o campo apareceu na resposta. Neste caso, à esquerda, escreva o mapeamento data.response.error, defina o operador "Igual" e, no valor, selecione na lista do sistema o parâmetro "Valor vazio".
![](https://storage.crisp.chat/users/helpdesk/website/11e670df47f70f00/578e8fd7-12c2-4db0-881d-c2ff08_11ksdfm.png)
Assim, se na resposta não houver campo, a solicitação não é considerada errônea. Contudo, assim que esta variável aparecer na resposta e for preenchida com algo (mesmo por uma linha vazia ““), a transação será considerada inválida.
Neste caso, vamos considerar que a resposta vem com uma variável que indica claramente que ocorreu um erro:
No mapeamento da mensagem é especificado o caminho para a variável com o texto de erro {{ data.reason }} e no filtro é colocado data.status = error.
![](https://storage.crisp.chat/users/helpdesk/website/8e4bce3fa0195000/1ef1b3f9-06c6-496f-bdc8-1704cc_1nffiho.png)
Você pode criar vários blocos separados de uma vez. Cada bloco pode ter seu próprio texto de erro. O bloco consiste em grupos de filtros e é acionado apenas se todos os filtros forem completamente correspondentes.
Assim, podem ser criados diversos blocos com condições de filtro e textos de erro específicos, ou um bloco com várias opções de filtro.
![](https://storage.crisp.chat/users/helpdesk/website/4fd4224d3cc0580/54600ae7-c2d3-4ecc-96f3-c32b9d_djdoi0.png)
Tipos de erros
Para a definição do tipo de erro, os seguintes valores estão disponíveis:
Default - erro padrão. Se os dados corresponderem ao filtro, a transação é considerada inválida.
InvalidCredential - as condições que estão escritas neste tipo de erro indicam que o usuário está com problemas na conexão que é usada no bundle. Ou seja, os dados de autorização não estão mais válidos.
ExpiredToken - nesse tipo de erro, você precisa especificar no filtro o texto da resposta, o que significa que o token de acesso expirou e precisa ser atualizado. Se for usada a autorização, na qual você precisa atualizar o token de acesso após a expiração, esse tipo de erro é necessário. Quando as condições de um bloco com este tipo coincidirem, o aplicativo fará uma solicitação para atualizar o token (configurado na autorização) e o salvará na conexão. Em seguida, será feita uma tentativa de solicitação novamente com um novo token de acesso (após a atualização). Se o erro persistir mesmo após a tentativa de atualização, a transação será considerada incorreta e o texto do erro será exibido de acordo com o mapeamento.
Mapeamento de mensagem de erro
Neste campo, é escrito o texto que será exibido no log do bundle se ocorrer um erro. No campo, você pode inserir um valor estático ou atribuir um mapeamento à variável de resposta, cujo valor será exibido. O mapeamento deve ser escrito entre duas chaves {{ }}. No início você precisa escrever data., se a variável necessária estiver no corpo da resposta, ou headers., se a variável estiver nos cabeçalhos da resposta.
Veja o exemplo do texto de resposta com a seguinte descrição:
{"response":{ "error":"token invalido" }}
Nesse caso, o mapeamento deve ser especificado da seguinte forma: {{ data.response.error }}
![](https://storage.crisp.chat/users/helpdesk/website/6431258b8a4e4c00/af22a1df-0fdd-4f58-9f66-9db9af_o6f0o5.png)
Filtro de condições
Consiste na configuração das condições que indicam ao aplicativo que a solicitação é considerada inválida.
No campo esquerdo, escreva o mapeamento para a chave da variável que você deseja seguir (o mapeamento também deve começar com data. ou headers.). Selecione um operador de condição e, no campo à direita, especifique um valor de variável que indica um erro.
Você também pode definir o valor headers.http-code no campo esquerdo. Esta chave irá monitorar o código de resposta HTTP e você pode escrever 400 no valor, por exemplo.
Dentro de um bloco, é possível criar um número ilimitado de condições, definindo o operador entre as condições (E/OU). Cada condição também pode ser convertida em um grupo de condições para uma definição mais precisa. Por exemplo: status = erro 1 (result = mensagem1 OU result = mensagem2) ( status = erro E (result = erro1 OU result = erro2))
Exemplos
Exemplo 1
Vamos pegar o JSON do exemplo de mapeamento de erro. Se o JSON aparecer neste formato apenas quando houver um erro, após solicitações bem-sucedidas, e a variável response.error estiver ausente, é possível preencher o filtro para que ele responda ao fato de que o campo apareceu na resposta. Neste caso, à esquerda, escreva o mapeamento data.response.error, defina o operador "Igual" e, no valor, selecione na lista do sistema o parâmetro "Valor vazio".
![](https://storage.crisp.chat/users/helpdesk/website/11e670df47f70f00/578e8fd7-12c2-4db0-881d-c2ff08_11ksdfm.png)
Assim, se na resposta não houver campo, a solicitação não é considerada errônea. Contudo, assim que esta variável aparecer na resposta e for preenchida com algo (mesmo por uma linha vazia ““), a transação será considerada inválida.
Exemplo 2
Neste caso, vamos considerar que a resposta vem com uma variável que indica claramente que ocorreu um erro:
{"status":"error","reason":"Token expirou"}
No mapeamento da mensagem é especificado o caminho para a variável com o texto de erro {{ data.reason }} e no filtro é colocado data.status = error.
![](https://storage.crisp.chat/users/helpdesk/website/8e4bce3fa0195000/1ef1b3f9-06c6-496f-bdc8-1704cc_1nffiho.png)
Atualizado em: 01/12/2022
Obrigado!