Skip to Content
Guia das telasErros de Negócio

Erros de Negócio — /business-errors

Regras agrupadas por Aplicação e Interface, com escopo, validação e bloqueio
Regras agrupadas por Aplicação e Interface, com escopo, validação e bloqueio

O transporte deu certo — HTTP 200, RFC executada, INSERT aceito — e mesmo assim a mensagem não fez o que deveria fazer. O destino respondeu “ordem não liberada”, “CPF inválido”, “período contábil fechado”. Para o CMS, tecnicamente, foi sucesso.

Os Erros de Negócio corrigem essa leitura: são regras que olham o conteúdo do que entrou ou do que voltou e dizem “isto foi uma falha”.

Sem essa classificação, um destino que rejeita tudo aparece nos painéis como 100% de sucesso — e o problema só é descoberto quando alguém sente falta do dado, dias depois.

Anatomia de uma regra

CampoPapel
AplicaçãoA Aplicação dona da regra. Uma regra nunca atravessa Aplicações
Onde a regra valeDefinições escolhidas, ou toda a Aplicação
Código do ErroOpcional. O código do sistema de origem, para agrupar nos relatórios
Termos de BuscaO que procurar no payload. Vários termos separados por ;
Validar contraEntrada, Saída ou Ambos
MotivoTexto livre explicando por que aquele erro costuma acontecer
Bloqueia InterfaceSe detectar, para a interface inteira
AtivoLiga/desliga a regra sem apagá-la

Onde a regra vale: Definições escolhidas ou a Aplicação inteira

Uma regra vale para várias Definições ao mesmo tempo, inclusive de Interfaces diferentes da mesma Aplicação. “Período contábil fechado” costuma ser o mesmo texto em toda integração financeira, e não precisa ser cadastrado uma vez por Definição.

EscopoAlcance
Definições escolhidasSó as que você marcar na lista
Toda a AplicaçãoTodas as Definições da Aplicação, inclusive as criadas depois

Com Toda a Aplicação, o CMS mantém os vínculos sozinho: uma Definição nova — criada à mão, por import, por pack ou por assistente — já nasce coberta pela regra. Na lista, essas regras trazem a etiqueta Aplicação.

Um Erro de Negócio nunca atravessa Aplicações. “Toda a Aplicação” é o alcance máximo, e é por isso que a Aplicação é escolhida antes de tudo no formulário.

Numa regra de escopo Toda a Aplicação não existe “desvincular só desta Definição” — a próxima sincronização devolveria o vínculo. Para tirá-la de circulação, mude o escopo ou exclua a regra.

Termos de busca: OR, não AND

ordem_error;quantidade=0 significa “qualquer um destes”. Basta um termo aparecer no payload para a mensagem ser classificada. Um termo só se comporta exatamente como antes de existir a separação por ;.

A comparação é por conteúdo literal (substring), não por expressão regular — é o que permite colar o trecho da mensagem de erro do sistema de origem e funcionar.

O que fica gravado na mensagem é o texto inteiro do campo Termos de Busca, não o termo que casou. É por esse texto que o relatório de Erros de Negócio agrupa — editar o campo depois muda o agrupamento das mensagens novas.

Validar contra: entrada, saída ou ambos

DireçãoOlha
EntradaO payload que a interface recebeu
SaídaO retorno que o destino devolveu
AmbosOs dois

A maioria das regras é de Saída — é lá que mora a resposta do destino. Entrada é útil para recusar cedo uma mensagem malformada, antes de gastar uma chamada ao destino.

Alguns tipos de Coleta não têm lado de entrada — uma assinatura MQTT, por exemplo, é recepção passiva. Ali, uma regra de Entrada simplesmente nunca casa; não gera erro nem aviso.

Bloqueio de interface

Este é o mecanismo que diferencia o CMS de um simples log de erro.

Marcando Bloqueia Interface, a primeira mensagem que casar a regra para a interface. As mensagens seguintes ficam na fila, intactas, esperando. O bloqueio fica registrado com origem ERRO_NEGOCIO, o texto da regra e o ID da mensagem que o causou.

Por que isso é desejável: sem o bloqueio, um destino em estado inválido — período fechado, cadastro faltando, sistema em manutenção lógica — receberia centenas de mensagens que ele vai rejeitar uma a uma. Todas viram erro, todas precisam ser reprocessadas depois, e o histórico fica poluído.

Como liberar

O desbloqueio é registrado com a origem:

OrigemQuando
ManualAlguém liberou a interface na tela de Interfaces ou na Danger Zone
ReprocessamentoA mensagem que causou o bloqueio foi reprocessada com sucesso
CancelamentoA mensagem que causou o bloqueio foi cancelada

Os dois últimos são o caminho normal: resolva a causa e a interface libera sozinha. Todo o histórico fica no relatório de Bloqueio de Interfaces.

Bloqueio é uma decisão de negócio, não técnica. “CPF inválido” quase nunca deve bloquear — é um problema daquela mensagem. “Período contábil fechado” quase sempre deve — nenhuma mensagem vai passar até alguém abrir o período.

Regras automáticas

Algumas regras não são digitadas aqui: o CMS as mantém sincronizadas a partir de outra tela, e elas aparecem na lista com a etiqueta AUTO. Nelas, o único campo editável é Bloqueia Interface — o resto pertence à tela de origem.

Etiqueta AUTO gerada porOrigem
Tags OPC UA obrigatóriasTags de Leitura da Coleta / Tags de Escrita da Entrega, marcadas “obrigatório”
Tags Modbus obrigatóriasIdem, no adaptador Modbus
Payload de Entrada obrigatórioCampos marcados “obrigatório” no popup Parâmetros Função SAP de uma Entrega SAP RFC

A lógica dessas regras é invertida em relação às normais: em vez de “este termo apareceu”, elas verificam “estes valores estão presentes”. Valor nulo, vazio ou zero conta como ausente — o que num CLP é exatamente o caso a tratar: uma tag que não foi escrita neste ciclo devolve zero, não erro.

Isso resolve um problema real de chão de fábrica: o CLP responde com sucesso e devolve zero em todas as tags porque a peça ainda não passou. Sem essa regra, o CMS gravaria uma medição de zero como se fosse leitura válida.

O que acontece com a mensagem

A mensagem classificada fica com status Erro Negócio e guarda o texto da regra que casou e o motivo cadastrado. Ela aparece em:

  • Mensagens com Erro, onde pode ser reprocessada em lote;
  • no relatório de Erros de Negócio, agrupada por aplicação, interface e definição;
  • no alerta Erro de Negócio, se houver um configurado — ver Alertas.

Permissão

A Ferramenta é /business-errors. Como as demais telas agrupadas por Aplicação, ela exige também que o usuário enxergue a Aplicação e a Interface correspondentes.