MaximoAccess

Caro Usuário, não tire as suas duvidas nas Salas de Repositório, abra sempre um novo tópico relacionado, nas salas destinadas para o efeito, como Sala de Tabelas, Consultas, Formulários, Relatórios, Macros, Módulos e VBA.

Obrigado

Administração do MaximoAccess

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

    [Resolvido]Importação XML de guias.

    Compartilhe
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

    [Resolvido]Importação XML de guias.

    Mensagem  XPTOS em Sex 19 Dez 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.

    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 19 Dez 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:

    [Você precisa estar registrado e conectado para ver este link.]

    Abraço
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 19 Dez 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.

    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 19 Dez 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.
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 19 Dez 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.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 19 Dez 2014, 17:10

    Daqui a pouco vou sair, no entanto coloque um ficheiro XML com dados de exemplo
    Abraço
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 19 Dez 2014, 17:17

    Seria estes XML's


    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 19 Dez 2014, 17:34

    Já saí, que esteja no desktop, vou verificar.
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 19 Dez 2014, 17:37

    Seria esse mesmo.

    Grato,
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 19 Dez 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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 19 Dez 2014, 21:11

    Ok.

    Desde já agradeço, pois toda ajuda é sempre bem vinda.
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sab 20 Dez 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: [Você precisa estar registrado e conectado para ver este link.]
    Access 2007
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sab 20 Dez 2014, 23:23

    Olá, já descarreguei, assim que tiver um tempinho vou analisar,
    nao está esquecido
    abraço
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Dom 21 Dez 2014, 00:07

    Perfeito amigo,

    Agradeço o auxílio.

    Saudações.

    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 22 Dez 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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 22 Dez 2014, 10:24

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

    Link corrigido.
    [Você precisa estar registrado e conectado para ver este link.]

    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.



    Para o XML: ENVIO_LOTE_GUIAS_doc_40765_id_26192, os campos são esses

    858518900
    00808104000033075
    CLEBER DOS SANTOS
    2014-09-01
    2014-09-13
    20201109
    Avaliacao clinica diaria enteral
    2
    0.00
    0.01


    Para os XML's: ENVIO_LOTE_GUIAS_doc_40729_id_26191; ENVIO_LOTE_GUIAS_doc_40774_id_26185, os campos são esses


    1143960208
    00807400000962000
    DANIEL LOUREIRO RODRIGUES
    2014-09-12
    30101450
    Exerese e sutura de lesoes (circulares ou nao) com rotacao de retalhos
    0.02
    0.02


    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.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 22 Dez 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?
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 22 Dez 2014, 11:41

    Isso amigo,

    Seu raciocinio está certinho.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 22 Dez 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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 22 Dez 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][Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Ter 23 Dez 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 Sex 30 Out 2015, 11:52, editado 2 vez(es)
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Ter 23 Dez 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,
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Ter 23 Dez 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?
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Ter 23 Dez 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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Ter 23 Dez 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.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 26 Dez 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 Sex 30 Out 2015, 11:53, editado 2 vez(es)
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 26 Dez 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....
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sab 27 Dez 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 Sex 30 Out 2015, 11:53, editado 2 vez(es)
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 29 Dez 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?
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 29 Dez 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 Seg 29 Dez 2014, 13:54, editado 1 vez(es)
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 29 Dez 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.
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 29 Dez 2014, 13:57

    Olá, não encontro a guia 858535073, em que ficheiro está?
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 29 Dez 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
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 29 Dez 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:

    [Você precisa estar registrado e conectado para ver esta imagem.]

    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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 29 Dez 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.
    [Você precisa estar registrado e conectado para ver este link.]

    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,
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 29 Dez 2014, 16:45

    Olá, alguns links :
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Seg 29 Dez 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 Sex 30 Out 2015, 11:55, editado 2 vez(es)
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 29 Dez 2014, 17:13

    Perfeito!

    Vou fazer e envio.
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Seg 29 Dez 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.

    [Você precisa estar registrado e conectado para ver este link.]
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Ter 30 Dez 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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Ter 30 Dez 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
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Qui 08 Jan 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 Sex 30 Out 2015, 11:55, editado 4 vez(es)
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Qui 08 Jan 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 = ""
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Qui 08 Jan 2015, 12:54

    Olá, pode fazer novo download da mensagem 42
    Abraço
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Qui 08 Jan 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")
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Qui 08 Jan 2015, 14:20

    Olá, então!!!!
    Código:
    Format(xCodUsuario, "00000000000000000")
    Mensagem nº 42 atualizada.
    Abraço
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Qui 08 Jan 2015, 15:36

    Olá ahteixeira,

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

    Muito obrigado!
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Qui 08 Jan 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
    avatar
    XPTOS
    Super Avançado
    Super Avançado

    Respeito às Regras 100%

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

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

    Mensagem  XPTOS em Sex 09 Jan 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: [Você precisa estar registrado e conectado para ver este link.]

    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
    avatar
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

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

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

    Mensagem  ahteixeira em Sex 09 Jan 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

      Data/hora atual: Qua 24 Maio 2017, 12:48