Validação de tags no DRC

Publicado por:Renan Correa Sun, 16 February 2025
Compartilhe:
16 de February de 2025

Validação de tags no DRC

Essa é uma pergunta direto da galera dos projetos e do meu curso:

-Renan, como que eu descubro que caractere está dando erro de validação em uma tag da NFe?

O que dizem as mensagens de erro (ou o que é que dizia a carta?)

Não, não é nada terrível, basta interpretar do jeito certo. Pega a visão com o exemplo da mensagem abaixo:

Essa mensagem é uma validação de XSD padrão usando uma expressão regular. Vocês podem consultar no site da W3 a explicação do bagulho:

Resumidamente ela diz que o valor de uma informação só é aceito se os seus caracteres fazem parte do conjunto de caracteres descritos na expressão regular.

A validação é técnica e a mensagem mostrada é horrível para usuário final, PONTO. Mas para quem é consultor SAP há maneiras técnico-científicas de validar esse conteúdo e dar uma resposta mais pacificada ao usuário final.

Como analisar o que está faltando ou errado?

Existe mais de um jeito, se liga aí nas opções abaixo. Nada que vai ser explicado aqui é ciência espacial, tudo coisa básica de TI e o funcional que lida com isso deve estar ligado.

Analisar o conteúdo do XML no validador da SEFAZ RS

No validador da SEFAZ RS é possível colar o XML inteiro da NF-e analisar a causa de um erro:

O validador da SEFAZ indicou que a tag xPais é o problema, usando também uma mensagem técnica horrível, mas até aí tudo bem, o DRC basicamente já tinha dito isso também e são sistemas então dão respostas técnicas. Como que eu analiso o porquê exato?

Analisar a validação dos dados com uma expressão regular:

No caso dessa mensagem você pode usar um website que valida os dados de acordo com uma regex, por exemplo o regexr.com, e usar os dados da tag mencionada (xPais) no caso para fazer um teste.

No meu exemplo a tag xPais estava em branco e ao testar a Regex com um valor em branco ele falhou o teste:

Ou seja, nesse caso a tag xPais precisa ter pelo menos um caractere que atenda os valores do range de ! até o ÿ, basicamente todos os caracteres ASCII (definição do chatgpt, não é minha não).

Esse era um caso fácil, vamos examinar um mais dificilzinho….

Combinando as duas análises:

Aqui tem uma mensagem de erro que no DRC em que não está muito claro o que está passando no mundo:

Para alguns campos as mensagens no DRC às vezes ficam cortadas e não dá pra ver exatamente o conteúdo inteiro da validação. Se você der duplo clique na mensagem tem mais informações:

Esse era um XML com um texto longo na tag infCPL que criei como exemplo para mostrar que tipo de análise poderia ser feita. No caso de uma mensagem não muito clara, copiar o XML e jogar no validador da SEFAZ RS:

Nesse caso o validador da SEFAZ RS apontou a tag infCpl como o causador do erro, mas ele não diz exatamente qual o caractere que está causando o erro. Aqui você pode combinar com o regex para identificar a causa exata do problema.

A regex abaixo aceita todos os caracteres de A a Z e os números, caracteres com acentos e alguns caracteres especiais:

Os caracteres não aceitos pela expressão ficam destacados em branco, assim fica mais fácil de identificar quais caracteres são aceitos ou não e podem gerar um erro na montagem da NFe.

Eu não manjo quase nada de regex, mas useo o chatgpt para criar as regex de acordo com o o que você precisa.

Definições da NF-e

Além disso, no próprio manual da NFe tem declarações sobre quais valores são aceitos e também daria para usar para fazer as validações. Nesse bloco tem o tratamento esperado para caracteres especiais que podem afetar o parser do XML (sempre destaque especial para caracteres de maior ou menor, esses dão erro em qualquer XML normalmente):

Além disso, no XSD da NF-e existem também as expressões regulares de validação para tipos específicos, isso aqui é a base usada na validação do XML enviado:

No próximo post vou continuar explorando esse negócio das validações, tenho um outro caso de erro que aconteceu e precisei debugar, mas fica para depois.

Moral da história: Evite caracteres especiais, se puder removê-los via BAdI sempre o faça e evite dores de cabeça futuras.

Valeu Gurizada,

Renan Correa

Quer ficar ligado nas novidades de localização? Entra no grupo da S4CN no Telegram e segue a gente no canal do Youtube

Mais infos sobre a localização Brasil no ERP, direto da sap, vocês podem conferir no SAP community na tag de S/4HANA logistics for Brazil

Outros posts sobre Localização você pode conferir filtrando pela categoria NFE/CTE ou Localização BR Geral.

Subscribe
Notify of
guest
0 Comentários
Oldest
Newest Most Voted
Inline Feedbacks
Ver Todos Comentarios
0
Deixa tua opinião aí!x