- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro ao ler arquivo XML com campo em branco
×
Linguagem de Programação ADVPL
Perguntas Erro ao ler arquivo XML com campo em branco
- wesley wsc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
8 anos 6 meses atrás #30595
por wesley wsc
Erro ao ler arquivo XML com campo em branco foi criado por wesley wsc
Olá sou novo com o ADVPL e estou tendo um problema com o código criado.
Quando leio um arquivo XML e qualquer campo esta em brando o programa efetua um erro
invalid property.
já tentei if len(alltrim(oNotaxml:_ICS:_ST)) < 12
e outras formas mas nenhuma deu resultado.
Se alguém puder ajudar fico agradecido.
Quando leio um arquivo XML e qualquer campo esta em brando o programa efetua um erro
invalid property.
já tentei if len(alltrim(oNotaxml:_ICS:_ST)) < 12
e outras formas mas nenhuma deu resultado.
Se alguém puder ajudar fico agradecido.
Por favor Acessar ou Registrar para participar da conversa.
- fmmattos
- Desconectado
- Membro Júnior
Menos
Mais
- Postagens: 28
- Obrigados Recebidos: 0
- wesley wsc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
8 anos 5 meses atrás #30694
por wesley wsc
Respondido por wesley wsc no tópico Erro ao ler arquivo XML com campo em branco
Bom dia eu tendei dessa forma mas não adiantou.
Por favor Acessar ou Registrar para participar da conversa.
- will
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
8 anos 5 meses atrás #30698
por will
Respondido por will no tópico Erro ao ler arquivo XML com campo em branco
Boa Tarde, pra te ajudar, preciso também do arquivo xml que vc está tentando importar.
"NCMteste.xml"
salve o seu prw e o xml em uma pasta compactada .rar e coloque aqui para gente poder analisar melhor.
"NCMteste.xml"
salve o seu prw e o xml em uma pasta compactada .rar e coloque aqui para gente poder analisar melhor.
Por favor Acessar ou Registrar para participar da conversa.
- wesley wsc
- Autor do Tópico
- Desconectado
- Membro Iniciado
Menos
Mais
- Postagens: 4
- Obrigados Recebidos: 0
8 anos 5 meses atrás #30756
por wesley wsc
Respondido por wesley wsc no tópico Erro ao ler arquivo XML com campo em branco
Boa tarde!!!
Estou enviando os arquivos para verificar o erro.
Obrigado.
Estou enviando os arquivos para verificar o erro.
Obrigado.
Por favor Acessar ou Registrar para participar da conversa.
- will
- Desconectado
- Membro Especialista
Menos
Mais
- Postagens: 81
- Obrigados Recebidos: 0
8 anos 5 meses atrás #30759
por will
Respondido por will no tópico Erro ao ler arquivo XML com campo em branco
Bom dia Wesley!
Consegui resolver segue em anexo, deu trabalho em meu jovem..rsrsr
Bom Vamos lá!
Quando a variavel i está no valor 14 dá o erro nas variaveis de _aliquota.
Esses objetos não tinha quando o i estava na posição 14 gerando o erro.
Existe essa função que checa se existe o nó no xml XmlChildEx
Então eu checo antes para aí ver se manda ou não para a variavel tipo assim.
oALIQUOTADESTINO := XmlChildEx(oNotaxml:_ICS:_ST, "_ALIQUOTADESTINO")
cALIQUOTADESTINO := IIF(oALIQUOTADESTINO == NIL,0,oNotaxml:_ICS:_ST:_ALIQUOTADESTINO:Text)
Ai funcionou belezinha.
Só não entendi o que vc quer com esse trecho.
z := i //(oNotaxml:_ICS:_ST)
tam := i+1 //(oNotaxml:_ICS:_ST[i+1])
if ( tam >= z )
Porque do jeito que estava no final o Z estava sempre maior do que tem no i e aí dava erro de estouro de vetor. alterei vê se é assim que vc quer ou não.
Uma dica.. Identação de Código é importante demorei para entender onde começa e terminava o if.
Consegui resolver segue em anexo, deu trabalho em meu jovem..rsrsr
Bom Vamos lá!
Quando a variavel i está no valor 14 dá o erro nas variaveis de _aliquota.
Esses objetos não tinha quando o i estava na posição 14 gerando o erro.
Existe essa função que checa se existe o nó no xml XmlChildEx
Então eu checo antes para aí ver se manda ou não para a variavel tipo assim.
oALIQUOTADESTINO := XmlChildEx(oNotaxml:_ICS:_ST, "_ALIQUOTADESTINO")
cALIQUOTADESTINO := IIF(oALIQUOTADESTINO == NIL,0,oNotaxml:_ICS:_ST:_ALIQUOTADESTINO:Text)
Ai funcionou belezinha.
Só não entendi o que vc quer com esse trecho.
z := i //(oNotaxml:_ICS:_ST)
tam := i+1 //(oNotaxml:_ICS:_ST[i+1])
if ( tam >= z )
Porque do jeito que estava no final o Z estava sempre maior do que tem no i e aí dava erro de estouro de vetor. alterei vê se é assim que vc quer ou não.
Uma dica.. Identação de Código é importante demorei para entender onde começa e terminava o if.
Por favor Acessar ou Registrar para participar da conversa.
- Fórum
- Protheus/Microsiga/Totvs
- AdvPL (Advanced Protheus Language)
- Dúvidas Gerais
- Erro ao ler arquivo XML com campo em branco
Tempo para a criação da página:0.124 segundos