Hoje recebi um e-mail do David Alencar que participa do grupo Dynamics AX BR sobre um problema com o cabeçalho da NFe e achei bem interessante, pois uma vez estava gerando um arquivo para troca de informações com um outro sistema e tive um problema parecido, abaixo o e-mail que recebi do grupo.
Vínhamos há algum tempo sofrendo com a seguinte mensagem de erro ao integrar uma NFe: 299 Rejeição: XML da área de cabeçalho com codificação diferente de UTF-8.
De início não entendíamos o problema, pois o cabeçalho do XML que estava sendo enviado estava com o encoding correto (UTF-8).
Enfim descobrimos que a mensagem de erro estava validando um XML que era enviado dentro do XML principal no elemento "cabecMsg" e que este XML estava sem um cabeçalho.
Para resolver o problema alteramos o código que gera a mensagem do elemneto "cabecMsg" na classe "EFDocMsgHeaderXMLFormat_BR" método "build", de forma que o conteúdo dentro deste elemento também tivesse um cabeçalho de XML com o encoding solicitado pela NFe (UTF-8).
O código alterado ficou da seguinte maneira:
- public str build()
- {
- XmlElement message;
- XmlElement msgFormatVersion;
- //
- str myxml;
- //
- ;
- message = this.createElement('cabecMsg');
- message.setAttribute('versao', '1.02');
- msgFormatVersion = this.createElementWithValue('versaoDados', xmlFormatVersion);
- message.appendChild(msgFormatVersion);
- //
- myxml = message.outerXml();
- myxml = strfmt(@'%1',myxml);
- return myxml;
- //
- }
Lembrando que a solução foi enviada pelo David Alencar.
[]'s
Alexssander