Página 1 de 1
tag infCpl XML NFe com caracter invalido
Enviado: 02 Fev 2017 12:47
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.
tag infCpl XML NFe com caracter invalido
Enviado: 02 Fev 2017 14:16
por fladimir
depende de sua função... como vc esta fazendo?
tag infCpl XML NFe com caracter invalido
Enviado: 02 Fev 2017 15:05
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>
tag infCpl XML NFe com caracter invalido
Enviado: 02 Fev 2017 15:22
por JoséQuintas
Nem parece que é programador..... rs
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
tag infCpl XML NFe com caracter invalido
Enviado: 02 Fev 2017 17:21
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.