Como Corrigir o Erro xmlParseEntityRef: no name ao Transmitir uma NF pelo TSS no TOTVS Protheus

Tempo de leitura: 2 minutos

Olá, ao tentar fazer uma transmissão de notas fiscal pelo TSS no TOTVS Protheus o sistema apresentou apresentou o erro xmlParseEntityRef: no name. Esse problema está relacionado á algum caractere especial(&, <, >) que foi identificado no XML.

Erro xmlParseEntityRef: no name ao transmitir uma NF no TOTVS Protheus

Geralmente esses caracteres especiais podem vir do nome ou endereço do cliente e foi informado nos campos de mensagem da nota no pedido de vendas(SC5), no campo C5_MENNOTA e no campo de mensagem da nota no campo F2_MENNOTA, assim subtitiua o caractere especial por um equivalente, por exemplo, o & por e, utilizando a função StrTran por exemplo.

Como solução paliativa você pode dar um REPLACE nos campos C5_MENNOTA e F2_MENNOTA para substituir o & por E conforme o exemplo:


Replace no no campo C5_MENNOTA:

UPDATE SC5010 SET C5_MENNOTA=REPLACE(C5_MENNOTA,’&’,’E’) WHERE C5_MENNOTA LIKE ‘%&%’ AND D_E_L_E_T_<>’

 

Replace no no campo F2_MENNOTA:
UPDATE SF2010 SET F2_MENNOTA=REPLACE(F2_MENNOTA,’&’,’E’) WHERE F2_MENNOTA LIKE ‘%&%’ AND D_E_L_E_T_<>”


 

Uma solução para correção definitiva é tratar em um ponto de entrada específico acrescentando os seguintes trechos de códigos utilizando a função StrTran em ADVPL para substituir um caractere por outro:

No campo C5_MENNOTA:

DBSelectarea("SC5")
    DBSetOrder(1)
    If DBSeek(xfilial("SC5")+cNumPed)
        If SC5->C5_NUM==cNumPed
            RecLock("SC5",.F.)
            SC5->C5_MENNOTA     := StrTran(mMsgfis,"&","e")
          ....
            MsUnLock()
        EndIf
    EndIf

 

 

No campo F2_MENNOTA:

DBSelectarea("SF2")
    DBSetOrder(1)
    DBSeek(xFilial("SF2")+_nFiscal+_nSerie+_nCliente+_nLoja)
       
    If(_nSerie+_nFiscal == SF2->(F2_SERIE+F2_DOC))
        RecLock("SF2",.F.)
      ...
        SF2->F2_MENNOTA     := StrTran(mMsgfis,"&","e")
      ...
        MsUnLock()
    EndIf

Após fazer esses procedimentos exclua e refaça a nota e depois retransmita.

 

 

Bem, finalizamos mais um post aqui no blog ProtheusAdvpl. Espero que tenha lhe ajudado. 

Nos ajude compartilhando esse conteúdo nas suas redes sociais do TOTVS Protheus.

Grande abraço e fica com Deus. 

 

Link de referência:https://www.epvconsulting.com.br/post/xmlparseentityref-no-name-ao-transmitir-uma-nf-tss

Receba as últimas atualizações do ProtheusAdvpl
Deixe seu melhor email
Nós respeitamos sua privacidade.