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


2 participantes

    [Resolvido]Importação XML de guias.

    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]Importação XML de guias. Empty [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 19/12/2014, 15:44

    Pessoal, boa tarde,

    Preciso de indicação para fazer um orçamento de um código para importar XML.

    Alguem se dispõe?

    Obs: Não sei se está é a sala correta. Caso esteja errado, gentileza sinalizar.

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 19/12/2014, 16:45

    Olá Colega, será que não consegue fazer você mesmo isso, com uma busca aqui no forum não falta informação:

    http://maximoaccess.forumeiros.com/search?mode=searchbox&search_keywords=xml+importar&show_results=topics

    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 19/12/2014, 16:51

    Olá,

    Entendo pouco de programação em VBA.

    Já pesquisei incansavelmente no forum vi muitos exemplos, mas nenho se enquadrou no que preciso.

    O link disponibilizado não funcionou.

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 19/12/2014, 17:01

    O link disponibilizado é uma busca aqui no forum com as palavras importar e xml.

    No entanto pode postar aqui no forum o que pretende, e se já tiver a sua base de dados com as tabelas para importar , também será util, também seria bom um ficheiro de exemplo XML para ver o que pretende importar, e cá estamos para dar o nosso melhor.
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 19/12/2014, 17:06

    Ok,

    Vou disponibilizar a base de dados e o ficheiro para exemplificar melhor o que preciso.

    Ja tenho um pronto, inclusive funciona para um modelo antigo de XML que usava.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 19/12/2014, 17:10

    Daqui a pouco vou sair, no entanto coloque um ficheiro XML com dados de exemplo
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 19/12/2014, 17:17

    Seria estes XML's


    https://www.dropbox.com/s/nr6zk6v7jlt4aig/Desktop.rar?dl=0
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 19/12/2014, 17:34

    Já saí, que esteja no desktop, vou verificar.
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 19/12/2014, 17:37

    Seria esse mesmo.

    Grato,
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 19/12/2014, 19:05

    Sim o que pretendia dizer é que de momento estou no telemóvel, assim que esteja no portatil vou verificar no que possovajudar.
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 19/12/2014, 21:11

    Ok.

    Desde já agradeço, pois toda ajuda é sempre bem vinda.
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 20/12/2014, 00:04

    Tenho esta rotina feita por Harysonh que importo meus xml's em um modelo antigo. Porém, como vou usar novos xml's com atualizações nos campos que pretendo importar, não estou conseguindo adaptar o código para este novo formato de arquivo xml.

    Link de Exemplo: https://www.dropbox.com/s/0kht6u5hqjdddmw/BD.rar?dl=0
    Access 2007
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 20/12/2014, 23:23

    Olá, já descarreguei, assim que tiver um tempinho vou analisar,
    nao está esquecido
    abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 21/12/2014, 00:07

    Perfeito amigo,

    Agradeço o auxílio.

    Saudações.

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 22/12/2014, 00:07

    Olá Gomes, já estive analisar a XML e também o código disponibilizado.
    1) Os campos que pretendes importar do XML são todos?
    2) Já tens alguma tabela(s) já criada dos dados que pretendes importar, se sim , disponibliza.
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 22/12/2014, 10:24

    1) Os campos que pretendes importar do XML são todos?

    Link corrigido.
    https://www.dropbox.com/s/0kht6u5hqjdddmw/BD.rar?dl=0

    As linhas para importação são apenas o que esta grifado em vermelho e que pretendo importar para tabela Enviado que encontra-se na base de dados que pode ser vista ao abrir em modo design.





    2) Já tens alguma tabela(s) já criada dos dados que pretendes importar, se sim , disponibliza.
    Na base que disponibilizei, tem uma tabela chamada Enviado e ao abrir em modo design pode ver que tem os dados que preciso do XML como exemplo.

    Desde já, agradeço a atenção.


    Última edição por XPTOS em 19/2/2020, 14:19, editado 1 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 22/12/2014, 11:38

    Olá, estou analisar este xml ENVIO_LOTE_GUIAS_doc_40765_id_26192,
    Verifico que tem mais que um registo (beneficiario)
    neste ficheiro seria para importar deste beneficiarios:
    CLEBER DOS SANTOS
    ALBERTO DE JESUS OLIVEIRA
    ALEXANDRA COGO ZANARDI
    ....até
    WALDOMIRO GIACOMO COMETTI

    é isso, com os restantes campos indicados?
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 22/12/2014, 11:41

    Isso amigo,

    Seu raciocinio está certinho.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 22/12/2014, 11:57

    Olá, pode-me enviar de novo o ficheiro Campos XML.doc , mas que tenha à frente, pode ser a verde o nome do campo respectivo da tabela Enviado
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 22/12/2014, 12:33

    Segue o ficheiro com print da tabela Enviado e campos marcados em verde.

    Link: [url=https://www.dropbox.com/s/d7jfbqk47rnz3jw/Campos xml.rar?dl=0]https://www.dropbox.com/s/d7jfbqk47rnz3jw/Campos%20XML.rar?dl=0[/url]
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 23/12/2014, 12:31

    Olá, a estrutura XML tem campos com referencia repetida e nós diferentes e não está fácil controlar a informação a importar.
    No entanto segue em anexo para estudo como está a ser processada a importação, neste caso linha a linha.
    Acho que vou ter que alterar para processar registo a registo.
    Abraço

    extrairCampoXml_linha_linha.zip


    Última edição por ahteixeira em 30/10/2015, 11:52, editado 2 vez(es)
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 23/12/2014, 13:22

    Olá, bom dia,

    Interessante, dei uma analisada na consulta acrescimo que criou e ela aponta os dados para tabela que pretendo. Realmente é essa lógica que procuro.

    Dúvida: Essa questão das referencias e com nós diferentes é que faz a importar dos dados dos arquivos XML's diferentes ser feitas com precisão?

    Vou estudar ainda mais porque preciso entender essa lógica para ler e importar arquivos xml. Algum material de apoio para sugerir eu agradeço imensamente.


    Atenciosamente,
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 23/12/2014, 13:28

    Tens algum exemplo de importação por vba de apenas campo do XML para eu praticar em casa e entender um pouco mais o assunto?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 23/12/2014, 14:32

    Olá, cole o código abaixo no exemplo que postei na mensagem acima, exemplo simples

    Código:
    Option Compare Database
    Dim meuFicheiro As String, textoXml As String, textoLinha As String

    Private Sub Comando0_Click()

      meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40765_id_26192.xml"
        
      Open meuFicheiro For Input As #1
        Do Until EOF(1)
             Line Input #1, textoLinha
                     If InStr(textoLinha, "<ans:senha>") > 0 Then MsgBox extrairCampoXml(textoLinha, "ans:senha")
        Loop
      Close #1
    End Sub

    '2014 Alvaro Teixeira
    Function extrairCampoXml(strLinha As String, strNomeCampo As String)
    Dim strInicio As String
    Dim strFim As String
    strInicio = "<" & strNomeCampo & ">"
    strFim = "</" & strNomeCampo & ">"

    Dim i As Long, j As Long
        i = InStr(strLinha, strInicio)
        j = InStr(strLinha, strFim)
        extrairCampoXml = Mid(strLinha, i + Len(strInicio), j - i - Len(strInicio))
    End Function

    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 23/12/2014, 15:22

    Agora consegui visualizar o código do seu post anterior e o exemplo de importação de um campo.

    Tá ficando perfeito...

    Agradeço muito sua cordial ajuda.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 26/12/2014, 10:05

    Olá,
    Dos ficheiros XML disponibilizados, podemos verificar que temos pelo menos dois tipos de informação reportada para importar:

    - guiaSP-SADT
    - guiaResumoInternacao

    Isso tornou-se um problema, solução foi criar código a verificar e identificar.
    Relativamente ao exemplo postado anteriormente, fazia leitura e processamento linha a linha.
    Neste exemplo postado, faz o processamento registo a registo.
    Já está a fazer a importação dos ficheiros "tipo" guiaResumoInternacao
    Quanto ao registo do "JOAO BATISTA LOBO ROCHA, acho melhor verificar se a informação importada é a pretendida.
    Caso não seja é melhor saber se temos algum tipo de identificador que nos permita saber qual o "tipo de movimento" que se pretende importar.

    Bom, para a importação dos ficheiros tipo "guiaSP-SADT" já deixei no código informação onde deve ser colocado, procedendo da mesma forma com os devidos ajustes dos campos.
    Abraço

    extrairCampoXml_registo.zip


    Última edição por ahteixeira em 30/10/2015, 11:53, editado 2 vez(es)
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 26/12/2014, 20:41

    Prezado,

    Chegando em casa vou baixar o arquivo e darei um retorno após análise do código, pois estou no celular.
    Já agradeço sua valiosa ajuda.

    Abraços....
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 27/12/2014, 11:34

    Olá Gomes,
    Segue em anexo ficheiro extrairCampoXml_registo que já faz a importação dos dois tipos de ficheiro, este foi onde desenvolvi para acompanhares como foi efetuado o processo de importação (temos que alterar no código o nome do ficheiro para testar).
    Também mando o ficheiro SAC_2003_fe.zip que é a versão que tinhas postado da importação anterior que foi atualizado com o novo código.
    Espero que esteja como pretendido e sirva também de exemplo para os colegas aqui do forum.
    O código pode não estar estruturado da melhor forma, mas na minha opinião está funcional.
    Abraço e não esquecer de verificar a questão colocada na mensagem n. 26.

    Outra coisa, acho que deverias mudar o titulo do tópico, de forma a ficar mais fácil para pesquisa de outros utilizadores, do tipo "Importação XML de guias ..."

    extrairCampoXml_registo_v1.zip


    Última edição por ahteixeira em 30/10/2015, 11:53, editado 2 vez(es)
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 29/12/2014, 11:55

    Prezado,

    Dei uma analisada no código ficou muito bom e bem funcional, a dificuldade que tive foi a seguinde:

    Está sendo importada apenas o primeiro registro da guia e para cada guia importada o XML tem mais de uma registro, igual ao que está abaixo:

    Uma única guia importada possui mais de um registro, cito como exemplo a guia 858535073, que tem os registros
    Atendimento do intensivista diarista (por dia e por paciente)
    Atendimento medico do intensivista em UTI geral ou pediatrica (plantao
    Atendimento medico do intensivista em UTI geral ou pediatrica (plantao 

    Poderia me ajudar com essa demanda?
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 29/12/2014, 12:31

    Olá, obrigado pelo retorno, relativamente à questão colocada vou analisar, no entanto o teupo está escasso.
    Na mensagem n. 16 não falava de multi registo.
    1) agradeço exemplo dos dados prtendidos da guia mencionada (858535073).
    2) ainda não respondeu à questão anterior "Quanto ao registo do "JOAO BATISTA LOBO ROCHA..." para poder compreender melhor o xml.
    Abraço


    Última edição por ahteixeira em 29/12/2014, 13:54, editado 1 vez(es)
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 29/12/2014, 12:37

    Verdade, esqueci de mencionar a questão do JOAO BATISTA LOBO ROCHA.

    A informação importada é a que pretendo mesmo e devemos também considerar multiregistro, e para este caso do JOAO BATISTA LOBO ROCHA faltou apenas o ValorPago para tabela Enviado.
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 29/12/2014, 13:57

    Olá, não encontro a guia 858535073, em que ficheiro está?
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 29/12/2014, 14:03

    Me desculpe, nao citei anteriormente.

    Favor considerar a guia 858518900, que está no ficheiro ENVIO_LOTE_GUIAS_doc_40765_id_26192

    Visita hospitalar (paciente internado)
    DIARIA COMPACTA DE ENFERMARIA DE 2 LEITOS COM BANHEIRO PRIVATIVO
    ALUGUEL/TAXA DE APARELHO / EQUIPAMENTO PARA LAPAROSCOPIA PARA CIRURGIA
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 29/12/2014, 14:55

    Olá,

    No caso JOAO.., terei de verificar porque não importou o valorTotal.
    Relativamente à questão da importação multi registo, necessito de saber que "tipo de nós" é que existem para importar.
    Caso não disponha da informação, a unica forma é abrir um XML através de um editor e identificar os nós da informação que pretende importar, só assim será possivel controlar na importação da forma que estamos a processar, a seguir de exemplo:

    [Resolvido]Importação XML de guias. 2629tsz

    Neste exemplo, acho que a informação que pretende importar é a do B1 e B2 que são dois registos de "despesa", repare que o nome do nó é "outras despesas" em que C1 informa o inicio e C2 informa o Final.

    Quanto à guia vou tentar analisar.
    Fico aguardar então nome dos nós para importar.

    Nota não esquecer de identificar por tipo de ficheiros, pois já verificamos que existe do tipo:
    guiaSP-SADT
    guiaResumoInternacao

    Espero que não exista mais nenhum tipo. Cool
    Aproveito para perguntar, a entidade emissora desses ficheiros XML não tem o XSD "schema"?

    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 29/12/2014, 16:33

    Abri os arquivos no editor e te envio doc onde pontuo os NÓ de cada tipo de XML, seja guiaSP-SADT ou guiaResumoInternacao, pois tenho somente estes tipos de arquivos XML.
    https://www.dropbox.com/s/vepms90wow3kgpx/Identificador.docx?dl=0

    Aproveito para perguntar, a entidade emissora desses ficheiros XML não tem o XSD "schema"?
    Sou leigo no assunto e não sei o que é "schema"?

    Grato,
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 29/12/2014, 16:45

    Olá, alguns links :
    http://pt.wikipedia.org/wiki/XML_Schema
    http://www.flexdocs.com.br/guiaNFe/funcao.XML.schemas.html
    http://www.nfe.fazenda.gov.br/portal/listaConteudo.aspx?tipoConteudo=/fwLvLUSmU8=
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 29/12/2014, 17:00

    Entretanto, assim não vai ser fácil.
    Mandou-me um exemplo com o nome de MARIA ELIZABETH DE SA CUNHA PINHEIRO que não tenho o ficheiro e não sei se é só um "movimento" ou vários e de que tipo.

    Vamos fazer assim, segue abaixo base de dados e dois ficheiros XML
    Dentro da base de dados tem duas tabelas.
    O que pretendo é um pouco de paciencia e colocar os dados manualmente na respetiva tabela.
    Nota tem uma tabela para cada XML.
    Assim poderei analisar definitivamente o que pretende.
    Abraço

    dadosExemploImportacaoXML.zip


    Última edição por ahteixeira em 30/10/2015, 11:55, editado 2 vez(es)
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 29/12/2014, 17:13

    Perfeito!

    Vou fazer e envio.
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 29/12/2014, 19:21

    Segue exemplo que lancei na tabela item por item em ambas as tabelas.
    Isso seria a realidade que pretendo importar dos XML's.

    https://www.dropbox.com/s/upd9ob10pwudaoa/dadosExemploImportacaoXML.rar?dl=0
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 30/12/2014, 19:30

    Ola Gomes, era mesmo isso.
    Hoje não tive tempo e final do ano é complicado.
    Assim que tiver um tempinho, vou analisar e ajustar.
    Entretanto, pode ir estudando a evolução do código, de como se tem processado a importação
    É bom compreender, pode ser necessário ajustes.
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 30/12/2014, 21:45

    ahteixeira, boa noite,

    Certamente vou continuar estudando o código para aprimorar o aprendizado.

    Muito obrigado por sua atenção.

    Abraço
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 8/1/2015, 11:44

    Olá Gomes,
    A parte do valor deu luta.
    Existe o mesmo nome (ans:valorTotal) para campos de nós diferentes e também para nome de , no entanto veja se é o pretendido.
    Abraço

    extrairCampoXml_registo_v2.zip


    Última edição por ahteixeira em 30/10/2015, 11:55, editado 4 vez(es)
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 8/1/2015, 12:00

    Prezado,

    É 98% da informação que preciso, ou seja, de internação importa certinho.

    Quando importo o ficheiro de guiaResumoInternacao ENVIO_LOTE_GUIAS_doc_40765_id_26192 os dados vão para tabela Enviado certinho.

    Porém, quando importo guiaSP-SADT ENVIO_LOTE_GUIAS_doc_40729_id_26191 gera erro na linha:

    'executa consulta
                        CurrentDb.Execute "INSERT INTO Enviado (CódGuia, CódUsuário, NomeUsuário, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago ) SELECT " & xCodGuia _
                        & "," & xCodUsuario & ",'" & xNomeUsuario & "', #" & Format(xDtAtendimento, "mm/dd/yyyy") & "# , #" _
                        & Format(xDtAlta, "mm/dd/yyyy") & "# , " & xCodServico & ", '" & xNomeServico & "', '" & xQuantidadeServico & "', '" & xReferencia & "', '" & xValorPago & "';"
                        textoLinha = ""
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 8/1/2015, 12:54

    Olá, pode fazer novo download da mensagem 42
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 8/1/2015, 13:04

    Pronto amigo, é isso mesmo.

    Apenas um pequeno detalhe.


    Observei que na linha abaixo está importando os dados da carteira da seguinte forma:
     
    Enviado: 808104000033075
    Enviado: 805497000290100
    Enviado: 2010017049173302
    Enviado: 9750000015090704

    Porém o correto deveria considerar os zeros a esquerda e estes estão sendo removidos:

    Ficheiro XML: 00808104000033075
    Ficheiro XML: 00805497000290100
    Ficheiro XML: 02010017049173302
    Ficheiro XML: 09750000015090704

    If InStr(textoLinha, "") > 0 Then xCodUsuario = extrairCampoXml(textoLinha, "ans:numeroCarteira")
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 8/1/2015, 14:20

    Olá, então!!!!
    Código:
    Format(xCodUsuario, "00000000000000000")
    Mensagem nº 42 atualizada.
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 8/1/2015, 15:36

    Olá ahteixeira,

    Sua ajuda foi de fundamental importancia para solucionar meu problema e também vai enriquecer meus conhecimentos.

    Muito obrigado!
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 8/1/2015, 15:46

    Olá, obrigado pelo retorno, o forúm agradece.
    Espero que também contribua para outros colegas aqui do fórum.
    Abraço
    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]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  XPTOS 9/1/2015, 12:21

    Prezados, bom dia,

    Reabrindo tópico apenas para um exclarecimento.

    O código abaixo está funcionando que é uma beleza, porém os dois ficheiros em não importam todos os registros.

    ENVIO_LOTE_GUIAS_doc_40774_id_26185 (ans:guiaSP-SADT)
    ENVIO_LOTE_GUIAS_doc_40113_id_26302 () Apenas com data de execução

    Link: https://www.dropbox.com/s/4zw28qqt9njqudn/extrairCampoXml_registo_v2.rar?dl=0

    VBA
    Option Compare Database
    Dim meuFicheiro As String, txtLinha As String, textoLinha As String

    Private Sub Comando0_Click()
    Dim Importar, Proce As Integer
    textoLinha = ""
    Importar = 0

    '2014 Alvaro Teixeira
    Dim xCodGuia$ 'senha
    Dim xCodUsuario$ 'numeroCarteira
    Dim xNomeUsuario$ 'nomeBeneficiario
    Dim xDtAtendimento$ 'dataInicioFaturamento    -       dataExecucao
    Dim xDtAlta$ 'dataFinalFaturamento
    Dim xCodServico$ 'codigoProcedimento
    Dim xNomeServico$ 'descricaoProcedimento
    Dim xQuantidadeServico$ 'quantidadeExecutada
    Dim xReferencia$ 'valorUnitario
    Dim xValorPago$ 'valorTotal


    'meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40729_id_26191.xml"
    'meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40765_id_26192.xml"
    'meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40113_id_26302.xml"
    meuFicheiro = Application.CurrentProject.Path & "\ENVIO_LOTE_GUIAS_doc_40774_id_26185.xml"
       
       
    Open meuFicheiro For Input As #1
        Do Until EOF(1)
             Line Input #1, txtLinha
                 
                  '-------------- verifica tipo de ficheiro
                  If InStr(txtLinha, "") > 0 Then Importar = 1 ' guiaSP-SADT
                  If InStr(txtLinha, "") > 0 Then Importar = 2 ' guiaResumoInternacao>
                  textoLinha = textoLinha & txtLinha
              
                  'Inicio - guiaSP-SADT
                  If InStr(txtLinha, "
    ") > 0 And Importar = 1 Then
                     If InStr(textoLinha, "") > 0 Then xCodGuia = extrairCampoXml(textoLinha, "ans:senha")
                     If InStr(textoLinha, "") > 0 Then xCodUsuario = extrairCampoXml(textoLinha, "ans:numeroCarteira")
                     If InStr(textoLinha, "") > 0 Then xNomeUsuario = extrairCampoXml(textoLinha, "ans:nomeBeneficiario")
                     If InStr(textoLinha, "") > 0 Then xDtAtendimento = extrairCampoXml(textoLinha, "ans:dataExecucao"): xDtAtendimento = Right(xDtAtendimento, 2) & "-" & Mid(xDtAtendimento, 6, 2) & "-" & Left(xDtAtendimento, 4)
                     If InStr(textoLinha, "") > 0 Then xCodServico = extrairCampoXml(textoLinha, "ans:codigoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xNomeServico = extrairCampoXml(textoLinha, "ans:descricaoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xQuantidadeServico = Replace(extrairCampoXml(textoLinha, "ans:quantidadeExecutada"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xReferencia = Replace(extrairCampoXml(textoLinha, "ans:valorUnitario"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xValorPago = Replace(extrairCampoXml(textoLinha, "ans:valorTotal"), ".", ",") 'alterara separador decimais
                     'executa consulta
                        CurrentDb.Execute "INSERT INTO Enviado (CódGuia, CódUsuário, NomeUsuário, DtAtendimento,  CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago ) SELECT " & xCodGuia _
                        & ",'" & Format(xCodUsuario, "00000000000000000") & "','" & xNomeUsuario & "', #" & Format(xDtAtendimento, "mm/dd/yyyy") & "# , " _
                        & xCodServico & ", '" & xNomeServico & "', '" & xQuantidadeServico & "', '" & xReferencia & "', '" & xValorPago & "';"
                     'limpa
                     Importar = 0
                     textoLinha = ""
                     xCodGuia = ""
                     xCodUsuario = ""
                     xNomeUsuario = ""
                     xDtAtendimento = ""
                     xDtAlta = ""
                     xCodServico = ""
                     xNomeServico = ""
                     xQuantidadeServico = ""
                     xReferencia = ""
                     xValorPago = ""
                  End If
                  'Fim - guiaSP-SADT
                 
                  '---------------------------------------------------------------------------------------------------------------------------------------
                  '---------------------------------------------------------------------------------------------------------------------------------------
                 
                  'Inicio - guiaResumoInternacao
                  If InStr(txtLinha, "") > 0 And Importar = 2 Or InStr(txtLinha, "") > 0 And Importar = 2 Then
                     If InStr(textoLinha, "") > 0 Then xCodGuia = extrairCampoXml(textoLinha, "ans:senha")
                     If InStr(textoLinha, "") > 0 Then xCodUsuario = extrairCampoXml(textoLinha, "ans:numeroCarteira")
                     If InStr(textoLinha, "") > 0 Then xNomeUsuario = extrairCampoXml(textoLinha, "ans:nomeBeneficiario")
                     If InStr(textoLinha, "") > 0 Then xDtAtendimento = extrairCampoXml(textoLinha, "ans:dataInicioFaturamento"): xDtAtendimento = Right(xDtAtendimento, 2) & "-" & Mid(xDtAtendimento, 6, 2) & "-" & Left(xDtAtendimento, 4)
                     If InStr(textoLinha, "") > 0 Then xDtAlta = extrairCampoXml(textoLinha, "ans:dataFinalFaturamento"): xDtAlta = Right(xDtAlta, 2) & "-" & Mid(xDtAlta, 6, 2) & "-" & Left(xDtAlta, 4)
                     If InStr(textoLinha, "") > 0 Then xCodServico = extrairCampoXml(textoLinha, "ans:codigoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xNomeServico = extrairCampoXml(textoLinha, "ans:descricaoProcedimento")
                     If InStr(textoLinha, "") > 0 Then xQuantidadeServico = Replace(extrairCampoXml(textoLinha, "ans:quantidadeExecutada"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xReferencia = Replace(extrairCampoXml(textoLinha, "ans:valorUnitario"), ".", ",") 'alterara separador decimais
                     If InStr(textoLinha, "") > 0 Then xValorPago = Replace(extrairCampoXmlRev(textoLinha, "ans:valorTotal"), ".", ",") 'alterara separador decimais, função reverse por causa do problema do valor campo duplicado para varios nós diferentes
                     'executa consulta
                        CurrentDb.Execute "INSERT INTO Enviado (CódGuia, CódUsuário, NomeUsuário, DtAtendimento, DtAlta, CódServiço, NomeServiço, QuantidadeServiço, Referencia, ValorPago ) SELECT " & xCodGuia _
                        & ",'" & Format(xCodUsuario, "00000000000000000") & "','" & xNomeUsuario & "', #" & Format(xDtAtendimento, "mm/dd/yyyy") & "# , #" _
                        & Format(xDtAlta, "mm/dd/yyyy") & "# , " & xCodServico & ", '" & xNomeServico & "', '" & xQuantidadeServico & "', '" & xReferencia & "', '" & xValorPago & "';"
                        textoLinha = ""
                    End If
                     'limpa
                     If InStr(txtLinha, "
    ") > 0 And Importar = 2 Then
                           Importar = 0
                           textoLinha = ""
                           xCodGuia = ""
                           xCodUsuario = ""
                           xNomeUsuario = ""
                           xDtAtendimento = ""
                           xDtAlta = ""
                           xCodServico = ""
                           xNomeServico = ""
                           xQuantidadeServico = ""
                           xReferencia = ""
                           xValorPago = ""
                     End If
                  'Fim - guiaResumoInternacao
        Loop
    Close #1
    MsgBox "Concluído", vbInformation, ""

    End Sub
    '2014 Alvaro Teixeira
    Function extrairCampoXml(strLinha As String, strNomeCampo As String)
    Dim strInicio As String
    Dim strFim As String
    strInicio = "<" & strNomeCampo & ">"
    strFim = ""

    Dim i As Long, j As Long
        i = InStr(strLinha, strInicio)
        j = InStr(strLinha, strFim)
        extrairCampoXml = Mid(strLinha, i + Len(strInicio), j - i - Len(strInicio))
    End Function

    '2014 Alvaro Teixeira
    Function extrairCampoXmlRev(strLinha As String, strNomeCampo As String)
    Dim strInicio As String
    Dim strFim As String
    strInicio = "<" & strNomeCampo & ">"
    strFim = ""

    Dim i As Long, j As Long
        i = InStrRev(strLinha, strInicio)
        j = InStrRev(strLinha, strFim)
        extrairCampoXmlRev = Mid(strLinha, i + Len(strInicio), j - i - Len(strInicio))
    End Function
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 7996
    Registrado : 15/03/2013

    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Alvaro Teixeira 9/1/2015, 17:43

    Ola Gomes, pode fazer o mesmo com estes dois ficheiros como fez na mensagem 39.
    Depois dou uma vista de olhos.
    Abraço

    Conteúdo patrocinado


    [Resolvido]Importação XML de guias. Empty Re: [Resolvido]Importação XML de guias.

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 22/11/2024, 10:41