Página 1 de 1

XmlToDocNfeEmi da Classe do Quintas

Enviado: 28 Fev 2017 14:05
por janio
Ola a todos,

Uso com sucesso a classe do Quintas que contem a função acima, para leitura de xml de fornecedores!

Porém, num xml específico a função não encontra o det nItem="10" do xml. Qndo chega nesse item a variavel retorna vazia e sai do loop.

Não consegui ver onde esta o erro

Janio

XmlToDocNfeEmi da Classe do Quintas

Enviado: 28 Fev 2017 14:12
por rubens
Você não está errando nada a Classe tem esse "problema" que eu também não consegui resolver aqui...
Se os itens estão fora de ordem, que pra começar é um absurdo, dá esse erro. A classe do simplesmente entende que é o final do xml e finaliza...

Como é raro esse tipo de nota, eu edito o xml com o notepad e devolvo o xml para o cliente "corrigido" aí sim ele dá conta de importar o xml com a classe...

Rubens

XmlToDocNfeEmi da Classe do Quintas

Enviado: 28 Fev 2017 16:21
por janio
Isso mesmo, Rubens.

Mas se vc colocar o cBlocoDetalhe dentro do loop, ele passa a encontrar todos os produtos.

Mas penso essa nao ser a melhor solução!

Código: Selecionar todos

	cBlocoDetalhe := "" 
   IF "<det" $ cXmlInput 
      cBlocoDetalhe := Substr( cXmlInput, At( "<det", cXmlInput ) - 1 ) 
   ENDIF 

   FOR nCont = 1 TO 1000

	   cBlocoDetalhe := "" 
	   IF "<det" $ cXmlInput 
	      cBlocoDetalhe := Substr( cXmlInput, At( "<det", cXmlInput ) - 1 ) 
	   ENDIF 
   
      cBlocoItem := XmlNode( cBlocoDetalhe, [det nItem="] + AllTrim( Str( nCont ) ) + ["] ) 
      
      IF Len( Trim( cBlocoItem ) ) = 0 // Se acabaram os itens 
         EXIT 
      ENDIF 
      AAdd( oNFE:Produto, NFEProdutoClass():New() ) 
...