MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


3 participantes

    [Resolvido]Extrair Campo de XML Com Erro.

    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 15/2/2017, 09:43

    FabioPaes, bom dia,

    Seu entendimento está certinho quando diz: (Realmente, somente agora que fui entender o pq... Alem de nao ter detalhes, o ele pega os dados da Aline e joga pro Gildasio)

    É realmente nestas condições que vou importar os dados e caso não tenha no XML a TAG ans:detalhesGuia eu ignoro. cheers cheers cheers
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 22/2/2017, 19:30

    E então amigo, como ficou sua questão? Chegou a algum resultado?


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 23/2/2017, 11:05

    Olá FabioPaes, bom dia,

    Já consegui evoluir um pouco a respeito, logo mais eu posto o exemplo de como está o andamento do processo.

    Grato,
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 4/3/2017, 16:32

    Boa tarde a todos!

    Peço desculpas pela demora em responder ao tópico, estava um tanto atarefado.

    Segue pequeno exemplo que consegui evoluir, mas estou na luta porque ainda não importa todos os dados da TAG ans:relacaoGuias.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 4/3/2017, 20:09

    Amigo, acho que vc se perdeu no codigo...

    Veja nas mensagens anteriores, eu havia lhe falado que tem que verificar se tem Detalhe na guia... Se nao tiver ignora...

    Outra coisa que falei e fiz no exemplo é desmembrar os xml de cada produto, no seu caso de cada Guia.
    Utilizando .xml e nao .text


    Veja como ficou: dropbox.com/s/rnhm2wwnb4ztwc9/Importa%20NFe%20Xml%20Lote.zip

    Importando 7 registros e ignorando os outros 7.

    Verifique se nao ficou erros na importação dos dados, pois so verifiquei nome e ValorGuia.

    Analise com calma os codigos...

    Lembre-se é utilizado a função criado por mim e a do Ahteixeira para separar os valores...



    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 19/3/2017, 18:06

    Prezado FabioPaes, boa tarde,

    Entendi o conceito do código, fiz uns testes e tem somente um pequeno detalhe.

    Veja esse exemplo na guia 121495: Ao importar os dados do .XML parece que o loop na é realizado somente uma vez, pois na estrutura do .XML essa mesma guia citada tem dois registros e a importação trouxe apenas 1 registro.

    Fiz um documento com print da imagem de como deveria ficar a importação desta guia 121495.

    Grato,
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 22/3/2017, 12:27

    Ola amigo, na verdade o Loop esta funcionando direitinho! Veja que há um Loop apenas na tag "ans:relacaoGuias"... Observe que ele busca todas dentro das especificações!

    Como poderá haver mais de um serviço por "ans:relacaoGuias" Deverá fazer um Segundo Loop dentro da guia! Buscando todos os os detalhes "ans:detalhesGuia".


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 22/3/2017, 12:35

    Obrigado FabioPaes,

    Vou trabalhar em cima da sua dica e implementar o segundo loop em "ans:detalhesGuia" e retorno! cheers
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 26/3/2017, 19:28

    Olá amigos, boa tarde,

    Ao tentar implementar um segundo Loop para trazer todos os registros de DetalhesGuia, o Loop fica infinito e o código trava.

    Alguma dica de como resolver?

    Código:
    Option Compare Database
    Public Function ImportaXML(LocalXml As String)
    '---------------------------------------------------------------'
    ' Criado por FabioPaes                                          '
    ' Em 12/02/2017 para MAXIMOACCESS                               '
    ' Em caso de correçoes reportar a origem para atualizar o codigo'
    '---------------------------------------------------------------'
    Dim doc As DOMDocument
    Dim xDet As IXMLDOMNodeList
    Dim NomeArq As String
    Dim DB As Database
    'Dim rsCompDet As DAO.Recordset
    Dim rsFor, rsProd, rsCompra, rsCompDet As DAO.Recordset
    Dim xProd As String
    Dim i, x, r As Integer
    Diret = LocalXml
    NomeArq = Dir(Diret & "*.XML", vbArchive)

    Set DB = CurrentDb()
    Set doc = New DOMDocument
    'Buscará todos os arquivos com extenção .xml da pasta selecionada
    Do While NomeArq <> ""
    doc.Load (LocalXml & NomeArq) 'Pega a pasta e o nome do primeiro arquivo.
    Set xDet = doc.getElementsByTagName("ans:relacaoGuias") 'TAG do XML
    '------------------------------------------------------------------------'
    ' Dados dos Produtos
    i = 0
    'Aqui é o Loop que percorrerá pela Tag "det" que são os produtos..
    'Buscara produto a produto, e o inserirá na nota que esta sendo importada
    For Each det In xDet
    On Error Resume Next
    xProd = doc.getElementsByTagName("ans:relacaoGuias")(i).XML   ' xProd desmembrará o xml pegando produto a produto...
    'Verifico sem a tag DetalhesGuias, se tiver eu importo, se nao ignoro
    r = Nz(Len(separaEntreDuasStringsXML(xProd, "<ans:relacaoGuias>", "</ans:relacaoGuias>")), 0)

    '--------------------------------------------------
    'Use isto para importar tudo do arquivo XML
    'r = Nz(Len(separaEntreDuasStringsXML(xProd, "<ans:relacaoGuias>", "</ans:relacaoGuias>")), 0)
    '--------------------------------------------------

    If r > 4 Then 'Verifica se a contagem dua mais de 4 caracteres, se tiver signfica que tem dados a importar, se nao ignora
    'Insere o produto cadastrado na Nota de compra
            
            Set rsCompDet = DB.OpenRecordset("Recebido")
     [color=#ff0000]       Do While rsCompDet.EOF
                rsCompDet.AddNew
                rsCompDet!nomeBeneficiario = Replace(separaEntreDuasStringsXML(xProd, "<ans:nomeBeneficiario>", "</ans:nomeBeneficiario>"), ".", ",")
                rsCompDet!senhaAutorizacao = Replace(separaEntreDuasStringsXML(xProd, "<ans:numeroGuiaPrestador>", "</ans:numeroGuiaPrestador>"), ".", ",")
                rsCompDet!numeroCarteira = Replace(separaEntreDuasStringsXML(xProd, "<ans:numeroCarteira>", "</ans:numeroCarteira>"), ".", ",")
                rsCompDet!dataHoraInternacao = Replace(separaEntreDuasStringsXML(xProd, "<ans:dataInicioFat>", "</ans:dataInicioFat>"), ".", ",")
                rsCompDet!codigo = Replace(separaEntreDuasStringsXML(xProd, "<ans:codigoProcedimento>", "</ans:codigoProcedimento>"), ".", ",")
                rsCompDet!descricao = Replace(separaEntreDuasStringsXML(xProd, "<ans:descricaoProcedimento>", "</ans:descricaoProcedimento>"), ".", ",")
                rsCompDet!quantidade = Replace(separaEntreDuasStringsXML(xProd, "<ans:qtdExecutada>", "</ans:qtdExecutada>"), ".", ",")
                rsCompDet!valorUnitario = Replace(separaEntreDuasStringsXML(xProd, "<ans:valorLiberado>", "</ans:valorLiberado>"), ".", ",")
                rsCompDet!valorTotal = Replace(separaEntreDuasStringsXML(xProd, "<ans:valorLiberado>", "</ans:valorLiberado>"), ".", ",")
            rsCompDet.Update
            rsCompDet.MoveNext
            Loop
     [/color]       rsCompDet.Close
            Set rsCompDet = Nothing

    End If
    i = i + 1
    Next

    'Loop dos arquivos, pega o proximo arquivo
    NomeArq = Dir()
    Loop
    MsgBox "Todos os XMLs da pasta selecionada Foram Importados com Sucesso! " & vbNewLine & "Verifique as Notas lançadas!!!", vbInformation, "Sucesso!!!"
    DB.Close
    Set DB = Nothing
    End Function
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 29/3/2017, 23:40

    Up.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 1/4/2017, 18:39

    Up.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 2/4/2017, 18:23

    Up.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 5/4/2017, 01:37

    Up.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 7/4/2017, 11:38

    Up.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 11/4/2017, 02:14

    Up.

    Estou subindo o tópico, pois estou na eminencia de colocar um segundo loop no código, porém, o mesmo está infinito, não tem ponto de interrupção.

    Agradeço a ajuda dos colegas!.
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 14/4/2017, 17:59

    Up.
    Não posso desistir dessa instrução, pois é muito importante para minha rotina diária.

    Grato aos senhores.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 15/4/2017, 15:56

    Amigo, Quantos registros devem ser importados mesmo, pois no exemplo que mandou tem uma planilha Excel com 20 registros...

    Posta como devem ser importados...


    Pedia ao amigo que desse sequencia ao tópico, pois fica complicado eu postar uma correção e demorar dias para vc responder... Quando isso acontece eu tenho que voltar a compreender todo o código, rele as mensagens anteriores para dar sequencia!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 15/4/2017, 16:00

    Claro amigo,

    Peço desculpas nesse caso, pois estava implantando meu sistema em outro cliente me deu alguma dor de cabeça.

    Vou postar novamente.
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 15/4/2017, 16:31

    Mas poste agora, para que possamos ver isso ainda hj! Ja que estarei me ausentando do Fórum por um período longo!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 15/4/2017, 17:11

    Olá,

    Deixei um ficheiro na Mensagem nº12, deste mesmo tópico.

    Grato,
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 15/4/2017, 21:25

    Amigo, segue o que Eu Acho que é o que precisa.

    dropbox.com/s/p6lkxrmdd4fut9d/Importa%20NFe%20Xml%20Lote.rar


    Veja a questão dos valores, pois não entendi bem quais valores queria de cada serviço!


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 16/4/2017, 01:09

    Olá FabioPaes,

    Boa noite!

    É justamente isso que precisava importar nesse modelo de .XML, agradeço sua cordial compreensão e colaboração.

    PS: A questão dos valores já indiquei no código os campos que preciso.

    Código:

    rsCompDet!valorUnitario = Replace(separaEntreDuasStringsXML(xDetTmp, "<ans:valorLiberado>", "</ans:valorLiberado>"), ".", ",")
    rsCompDet!valorTotal = Replace(separaEntreDuasStringsXML(xProd, "<ans:valorLiberado>", "</ans:valorLiberado>"), ".", ",")

    Att,
    cheers cheers cheers
    FabioPaes
    FabioPaes
    Maximo VIP
    Maximo VIP


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 3914
    Registrado : 14/08/2013

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  FabioPaes 16/4/2017, 01:31

    Grato pelo retorno amigo, até a próxima se Deus Quiser!

    Estude e entenda o que foi feito com esse código amigo...


    .................................................................................
    _____________________________________________________________________
    Achou a solução para sua dúvida? Não seja Egoísta, Compartilhe com todos!
    A dica do Colega foi útil? Agradeça!

    O importante não saber tudo, mas sim a Onde procurar!
    XPTOS
    XPTOS
    Super Avançado
    Super Avançado


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 601
    Registrado : 20/01/2014

    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  XPTOS 16/4/2017, 17:57

    Certamente,
    Vou depurar linha a linha para compreender melhor.

    Conteúdo patrocinado


    [Resolvido]Extrair Campo de XML Com Erro. - Página 2 Empty Re: [Resolvido]Extrair Campo de XML Com Erro.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 16:40