Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
Srs,
Estou com uma dúvida acerca de qual seria a melhor solução para a minha questão que segue:
Tenho um app que captura os xml's de notas fiscais de abastecimento e os "traduz" conforme script abaixo:
LOAD "XML",
TextBetween(XML,'KM:','.') as [NFe Abast - KM],
TextBetween(XML,'PLACA:','KM:') as [NFe Abast - Placa],
TextBetween(XML,'<chNFe>','</chNFe>') as [NFe Abast - Chave de Acesso],
TextBetween(XML,'<vUnCom>','</vUnCom>') as [NFe Abast - Valor Unitario],
len(TextBetween(XML,'<vUnCom>','</vUnCom>')) as [Nfe Abast - Un. Medida],
TextBetween(XML,'<vProd>','</vProd>') as [NFe Abast - Valor Total],
TextBetween(XML,'<uCom>','</uCom>') as [NFe Abast - Un Medida],
TextBetween(XML,'<xProd>','</xProd>') as [NFe Abast - Produto],
TextBetween(XML,'<nNF>','</nNF>') as [NFe Abast - Numero],
TextBetween(XML,'<xNome>','</xNome>') as [NFe Abast - Emitente Razao Social],
TextBetween(XML,'<xFant>','</xFant>') as [NFe Abast - Emitente Nome Fantasia],
TextBetween(XML,'<qCom>','</qCom>') as [NFe Abast - Quantidade],
date(SubField(TextBetween(XML,'<dhEmi>','</dhEmi>'),'T',1)) as [NFe Abast - Data Emissao],
Year((SubField(TextBetween(XML,'<dhEmi>','</dhEmi>'),'T',1))) as [NFe Abast - Ano Emissao],
Month((SubField(TextBetween(XML,'<dhEmi>','</dhEmi>'),'T',1))) as [NFe Abast - Mes Emissao],
Day((SubField(TextBetween(XML,'<dhEmi>','</dhEmi>'),'T',1))) as [NFe Abast - Dia Emissao],
Time(SubField(SubField(TextBetween(XML,'<dhEmi>','</dhEmi>'),'T',2),'-',1),'hh:mm') as [NFe Abast - Hora Emissao],
TextBetween(XML,'<xMotivo>','</xMotivo>') as [NFe Abast - Status]
FROM [lib://CARGA/NOTAS_ABASTECIMENTO.qvd](qvd);
Até aí tudo funciona "de boa" se, e somente se, a nota contiver apenas um item (o que ocorre em 99% dos casos que temos). Esse 1% é que me arrebenta...
Vejam como o xml da NF vem quando há mais de um item:
Eis então minha questão:
Como fazer a leitura desses dois itens, considerando que as tags que utilizo são as mesmas nos dois itens?
cleveranjos, afurtado, stalwar1
Abs e Sucesso!
Obrigado pelo agradecimento Thiago.
Confesso que faz dias que vi tua postagem e fiquei pensando sobre como poderia resolvê-la. Fiz algumas pesquisas, mas todas as soluções requeriam a leitura direta de um arquivo XML.
Hoje dei mais uma olhada nela e ai veio aquela luz na cabeça . Lembrei de outro projeto em que tive que "quebrar" dados em varias linhas por que estava tudo num unico campo texto levando em conta caracteres separadores.
Ai foi baixar a cabeça e escrever o código.
Isso ai, e viva o Qlik !!
Tava usando alguns (pra não dizer muitos) SubFields pra tentar uma solução plausível. Mas hoje, você fez meu dia feliz (soou estranho, eu sei hehe).
Mais uma vez muitoooooo obrigado!!