Erro ao receber mensagem XML: An error occurred when parsing the incoming document: Invalid character in the given encoding.

Mais um erro pra ficar documentado e nunca mais esquecer.. hehehe

Causa:

Ao receber a seguinte mensagem com caracteres especiais:
<ns0:COLABORADOR xmlns:ns0="http://ComplexTableLooping.schemas.schAdmissao"> 
<ns0:MATRICULA>123456</ns0:MATRICULA> 
<ns0:NOME>José Antonio</ns0:NOME> 
<ns0:NOME_COMPLETO>José Antonio Silva Filho</ns0:NOME_COMPLETO> 
<ns0:NOME_PAI>José Antonio Silva</ns0:NOME_PAI> 
<ns0:NOME_MAE>Maria da Silva</ns0:NOME_MAE> 
<ns0:ENDERECO>çóíéúáòãì,...;:;;/???}}]]{{==++--)))*¨$%#@!³²''</ns0:ENDERECO> 
<ns0:MUNIC_END>Cubatão</ns0:MUNIC_END> 
</ns0:COLABORADOR>

Isso acontece porque a mensagem em xml nao tem uma declaração de enconding, obrigando  Biztalk a usar o enconding padrão, que é o utf-16, o qual não aceita esses tipos de caracteres.


Solução:
Para resolver basta colocar a declaração implicita do enconding Windows-1252
<?xml version="1.0" encoding="Windows-1252"?> 
<ns0:COLABORADOR xmlns:ns0="http://ComplexTableLooping.schemas.schAdmissao"> 
<ns0:MATRICULA>123456</ns0:MATRICULA> 
<ns0:NOME>José Antonio</ns0:NOME> 
<ns0:NOME_COMPLETO>José Antonio Silva Filho</ns0:NOME_COMPLETO> 
<ns0:NOME_PAI>José Antonio Silva</ns0:NOME_PAI> 
<ns0:NOME_MAE>Maria da Silva</ns0:NOME_MAE> 
<ns0:ENDERECO>çóíéúáòãì,...;:;;/???}}]]{{==++--)))*¨$%#@!³²''</ns0:ENDERECO> 
<ns0:MUNIC_END>Cubatão</ns0:MUNIC_END> 
</ns0:COLABORADOR>


Confesso que a solução foi mais simples do que eu esperava, pois nos casos de Flat File, temos que setar a propriedade Code Page do schema como Western-European, como foi postado neste artigo.

Para alterar o enconding das mensagens XMLs que estão sendo enviadas, é necessário criar um pipeline, e no XML Assemble ou no Flat File Assemble, alterar a propriedade “Target charset”.

Parece um erro bobo e sem importancia, mas gastei um bom tempo achando a solução. :(

Se evitar a perda de tempo de outra pessoa, já fico feliz!

Até a próxima!

1 Comentário:

felipe disse...

hahaa! agora sim!!
valeu gente

Postar um comentário

BizTalk 360

Visitas

Arquivo do blog