tag infCpl XML NFe com caracter invalido

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

softecmario
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 22 Nov 2012 00:47
Localização: porto alegre/rs

tag infCpl XML NFe com caracter invalido

Mensagem por softecmario »

Ola foreiros.
Lendo um XML de NFe me vem o campo infCpl (informações complementares) com caracteres inválidos.
Dai meu teste para ver se tem informação [CODIGO] if len(alltrim(infCpl)) # 0 [CODIGO] provoca um erro.
Como posso evitar este erro se tiver caracteres invalidos?
XML em anexo.
Obrigado.
Anexos
Proice_143170012984783-procNFe_5688-VEN.xml
(7.43 KiB) Baixado 54 vezes
Avatar do usuário
fladimir
Colaborador
Colaborador
Mensagens: 2445
Registrado em: 15 Nov 2006 20:21

tag infCpl XML NFe com caracter invalido

Mensagem por fladimir »

depende de sua função... como vc esta fazendo?
Sun Tzu há mais de três mil anos cita nas epígrafes de seu livro “A Arte da Guerra“:

“Concentre-se nos pontos fortes, reconheça as fraquezas, agarre as oportunidades e proteja-se contra as ameaças”.
“Se não é vantajoso, nunca envie suas tropas; se não lhe rende ganhos, nunca utilize seus homens; se não é uma situação perigosa, nunca lute uma batalha precipitada”
.


Até 2017    Desktop Console [ Legado ] Harbour | MinGW | DBF | CDX | FastReport | MySQL


Novos Projetos:

   Desktop Visual           Windev Desktop
   Celular Android/iOS   Windev Mobile
   WEB                            Windev Web


Sejamos gratos a Deus.
softecmario
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 22 Nov 2012 00:47
Localização: porto alegre/rs

tag infCpl XML NFe com caracter invalido

Mensagem por softecmario »

Obrigado pelo interesse fladimir.

Código: Selecionar todos

...
          IF oCurrent:cName == "infCpl"
            infCpl :=  oCurrent:cData 
          ENDIF
...
            if len(alltrim(infCpl)) # 0         <------------------------------------------------------------------------------------------------ aqui da erro Error BASE/2022 Argument error: ALLTRIM
                xObs:=infCpl
                nPed:=WED_PEDIDO
                nObserv:=FOBSERV_GRV("EOBSERV","PED_PEDIDO","PED_SEQUEN","PED_OBSERV",nPed,nObserv,xObs)  //grava
                replace PED_OBSER with nObserv
            endif
...
Uso HMG EXTEND 17.01, BORLAND\BCC55, WINDOWS 10

no .xml esta:
-<infCpl>

-<![CDATA[<BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/><BR/>]]>
</infCpl>
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

tag infCpl XML NFe com caracter invalido

Mensagem por JoséQuintas »

Nem parece que é programador..... rs

Código: Selecionar todos

if len(alltrim(infCpl)) # 0
Se isso dá erro em AllTrim() e AllTrim() serve pra string, então..... o conteúdo não é string.

O certo seria rever o conteúdo dessa variável, como ele inicia, e como ele se altera.
Apenas pra esconder o SEU erro, é desprezar se não for string.

Código: Selecionar todos

if ValType( infCpl ) != "C" .OR. Len( AllTrim( InfCpl ) ) != 0
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
softecmario
Usuário Nível 1
Usuário Nível 1
Mensagens: 3
Registrado em: 22 Nov 2012 00:47
Localização: porto alegre/rs

tag infCpl XML NFe com caracter invalido

Mensagem por softecmario »

Obrigado José Quintas.
Nada como um expert para os mínimos detalhes.
alterei para:

Código: Selecionar todos

            if ValType( infCpl ) != "C"
               //caracteres inválidos no campo infCpl do XML, não grava observação
            elseif Len( AllTrim( InfCpl ) ) != 0
                ...
            endif

FUNCIONANDO OK.

Colaborando,
o XML que estava lendo é de uma NFe aprovada na SEFAZ, Fornecedor de Cliente meu.
Ou seja não estava esperando NFe aprovada com Caracteres Inválidos no campo infCpl.
Editado pela última vez por Toledo em 02 Fev 2017 21:48, em um total de 1 vez.
Razão: Mensagem editada para colocar a tag [ code ]<br>Veja como utilizar esta tag: http://www.pctoledo.com.br/forum/faq.php?mode=bbcode#f2r1
Responder