Forum
See question

Erro ao exportar – Caracter não suportado em XML (0x001E)   

25 views
0
0

Ao exportar o ficheiro SAF-T ocorre o erro:

 

“99999 – FOR XML could not serialize the data for node ‘Description’ because it contains a character (0x001E) which is not allowed in XML. To retrieve this data using FOR XML, convert it to binary, varbinary or image data type and use the BINARY BASE64 directive.”

 

Como ultrapassar este erro?

Faça login para poder traduzir
Eticadata v22
SAF-T
Marked as spam
Criado há 2 anos e 6 meses maria
maria Most Valuable Professional
1 answers
0
Private answer

A situação está relacionada com a existência de um documento que não tem linhas.
Para identificar o documento sem linhas, deve identar o ficheiro SAF-T gerado e submeter ao validador da AT.
Depois editar o documento em questão e inserir uma linha com um artigo diveros p.e. com quantidade 1 e preço 0.

O caracter 0x001E que em decimal corresponde ao código 30 (em alguns casos ocorre também o erro 0x001F = 31) não é suportado em XML.

Para identificar o registo em causa, pode executar a seguinte script SQL.
SELECT intCodigo, PATINDEX('%' + char(30) + '%',strNome) AS Posicao, strNome, *
FROM Tbl_Clientes
WHERE PATINDEX('%' + CHAR(30) + '%',strNome)>0

SELECT PATINDEX('%' + char(30) + '%',strCVDNome) AS Posicao, strCVDNome, *
FROM Mov_Venda_Cab
WHERE PATINDEX('%' + CHAR(30) + '%','%',strCVDNome) )>0

Depois de identificar o registo em erro, deve aceder ao mesmo e apagar o valor aí existente e reescrever manualmente o valor, isto para garantir que limpa o caracter não suportado.

Obs: Pode ter de ajustar as scripts sql, neste exemplo está a verificar o campo nome do cliente, pode ocorrer noutros campos e noutras tabelas.

Faça login para poder traduzir
Marked as spam
Criado há 2 anos e 6 meses maria
maria Most Valuable Professional