Página 1 de 1

Conflito de Dados

Enviado: 27 Mar 2018 17:49
por AutomoSistema
Boa Tarde, amigos estou com um problema q nunca deparei. Realizei um importação de uma Tabela de Produto para Dbf de um aplicativo fiscal meu, até ai tudo bem. Só q qdo vou emitir uma NFCE da erro rejeição no esquema da XML, motivo erro nos caracteres inválido ai eu troco a dbf produto de um outro cliente vai tudo bem, gera a NFCE. Pergunto se alguem pode me ajudar.

Conflito de Dados

Enviado: 27 Mar 2018 18:25
por JoséQuintas
Provavelmente caractere inválido. Talvez por exemplo & CIA LTDA. O "E" comercial, ou macro do Harbour, não vale.

Em todo caso, você pode facilmente criar um programa de teste pra validar caracteres, e ir fazendo por exclusão.

Por exemplo:

Código: Selecionar todos


FUNCTION Main( cFileName )

   LOCAL cText, cLetra

   ctext := MemoRead( cFileName )

   FOR EACH cLetra IN cText
      DO CASE
      CASE cLetra $ "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
      CASE cLetra $ "abcdefghijklmnopqrstuvwxyz"
      CASE cLetra $ "0123456789"
      OTHERWISE
         ? cLetra, Asc( cLetra ), cLetra:__EnumIndex, Substr( cText, cLetra:__EnumIndex - 20, 40 )
      ENDCASE
   NEXT

   RETURN NIL
Nota:

:__EnumIndex equivale ao "contador", de 1 a 999999 (tamanho do arquivo), que corresponde a posição da letra em questão no arquivo
Substr() - é pra mostrar o texto que corresponde a 40 caracteres, começando 20 posições antes da atual, assim dá pra ver o texto

É só ir acrescentando mais letras conforme forem aparecendo.
Vai ter aspas, mais, menos, ponto, vírgula, <, >, etc.
O que sobrar vai ser algo a verificar.

Lembre-se do "E" comercial que é inválido, tipo "ANTONIO & CIA LTDA". Eu troquei por E há muito tempo e ninguém reclamou. "ANTONIO E CIA LTDA".

Nota2: criei o fonte durante a digitação do post, então não foi testado pra ver se estava correto.

Conflito de Dados

Enviado: 27 Mar 2018 21:56
por AutomoSistema
Boa Noite, Vou citar um exemplo q acontece, o nome do campo é produto tamanho 50 caracteres contendo um produto com o nome CARNE COXAO MOLE. Só isso
no campo e nada mais e o erro acontece.

Conflito de Dados

Enviado: 27 Mar 2018 23:23
por JoséQuintas
Tem certeza de que o erro é nesse nome?
Faça o teste que mencionei.

Verifica também espaço em branco antes e depois do nome.
<nome> a </nome>

Conflito de Dados

Enviado: 28 Mar 2018 08:18
por Poka
Olá

Se veio de transferência, apaga o nome e escreve novamente. Aconteceu comigo esses dias. Tava tudo certo mas internamente não, sei lá o que aconteceu.
Detalhe , era quase meia noite com o cliente. Ele ia sair de manhã com a mercadoria. kkk

Poka

Conflito de Dados

Enviado: 28 Mar 2018 13:48
por JoséQuintas
AutomoSistema escreveu: Vou citar um exemplo q acontece, o nome do campo é produto tamanho 50 caracteres contendo um produto com o nome CARNE COXAO MOLE. Só issono campo e nada mais e o erro acontece.
E vou citar outro exemplo que acontece:
Quando o Windows não reconhece o caractere, ele não mostra nada, então não adianta olhar que não vai enxergar nada diferente.
Só mesmo fazendo teste.

Isso de codepage vai longe, vão ser muitos anos ainda pra não ter problema de codificação de texto.
Talvez quando padronizar pra UTF-8 inventem outro.

Conflito de Dados

Enviado: 28 Mar 2018 23:27
por AutomoSistema
Boa noite, não tive tempo para realizar o teste amigo, porem eu e o dono do mercado resolvemos cadastrar tudo de novo. Obrigado pela ajuda.