O que pode ser quando dá falha no Schema mas esta tudo correto?

Hoje vou mostrar como atualizar caracteres especiais quando dá falha em schema na transmissão de notas.

Geralmente falhas em schema na transmissão de NF para o sefaz, pode ser tags faltando, ou alguma validação interna, geralmente exibida com um código de erro. Mas o que pode ser, quando o erro não é informado?

Você pode tentar abrir o console.log do TSS do Protheus, e ver se lá tem algum vestígio, mas quase todas as vezes que eu vi isso ocorrer era algum caractere inválido na descrição do produto.

Quando os usuários criam produtos, se eles copiam a descrição de algum fornecedor, e o caractere de apóstrofo ou aspas vier incorreto, essa informação ficará salva no Protheus, e ocasionará o problema.

Então para esse caso, para solucionarmos, temos que atualizar a descrição do produto no cadastro de produtos (SB1) e no item do pedido de venda (SC6). Abaixo mostro como fazer um update em SQL Server, mas o ideal é acertar no cadastro pelo Protheus.

--Caracter “ para "
UPDATE SB1020 SET B1_DESC = REPLACE(B1_DESC, '“', '"')
WHERE B1_DESC LIKE '%“%' AND D_E_L_E_T_ = ' '

UPDATE SC6020 SET C6_DESCRI = REPLACE(C6_DESCRI, '“', '"')
WHERE C6_FILIAL = '01' AND C6_DESCRI LIKE '%“%' AND D_E_L_E_T_ = ' '

--Caracter ’ para '
UPDATE SB1020 SET B1_DESC = REPLACE(B1_DESC, '’', '''')
WHERE B1_DESC LIKE '%’%' AND D_E_L_E_T_ = ' '

UPDATE SC6020 SET C6_DESCRI = REPLACE(C6_DESCRI, '’', '''')
WHERE C6_FILIAL = '01' AND C6_DESCRI LIKE '%’%' AND D_E_L_E_T_ = ' '

--Caracter ” para "
UPDATE SB1020 SET B1_DESC = REPLACE(B1_DESC, '”', '"')
WHERE B1_DESC LIKE '%”%' AND D_E_L_E_T_ = ' '

UPDATE SC6020 SET C6_DESCRI = REPLACE(C6_DESCRI, '”', '"')
WHERE C6_FILIAL = '01' AND C6_DESCRI LIKE '%”%' AND D_E_L_E_T_ = ' '

Depois de atualizar os produtos, basta retransmitir a NF. Caso o problema persistir, verifique se existem outros caracteres, ou no console.log do TSS.

Bom pessoal, por hoje é só.

Abraços e até a próxima.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação