wsbndaf / Webservice

Webservice da Base Nacional de Dados, Ações e Serviços da Assistência Farmacêutica
http://portalms.saude.gov.br/assistencia-farmaceutica/base-nacional-de-dados/sistemas/web-service?view=default
32 stars 27 forks source link

Dúvidas na Montagem do XML para envio #181

Closed emygdio-barreto closed 3 years ago

emygdio-barreto commented 3 years ago

Prezados,

Meu nome é Emygdio Barreto e sou um dos encarregados pela Secretaria de Saúde da Cidade do Recife, em conjunto com a Emprel, sua empresa municipal de TI, em desenvolver o cliente webservice para envio das informações sobre a aquisição, disponibilização na rede de saúde do município e dispensações.

Informo também que este projeto foi iniciado em 2015 e acabou sendo descontinuado por falta de informações para a montagem dos parâmetros para configurar o envio do XML para a base nacional do BNAFAR.

No momento estamos tentando configurar o envio do processo "InformarEntradaMedicamentoEmLote" e não estamos conseguindo ajustar corretamente as tags do XML. Acreditamos que seja por não saber a sequência e quais parâmetros devem ser usados para a montagem correta de suas estruturas de tags.

Todos os dados estão carregados corretamente, mas segundo os testes realizados no SOAP UI, fazendo os ajustes manualmente no pacote gerado, conseguimos corretamente o envio, mas quando preenchemos os parâmetros e os dados pelo sistema não estamos conseguindo adicionar a tag do serviço, a "" e retirar a tags segunda tag de "" adicionada automaticamente por ser uma lista. Segue abaixo o XML gerado pelo cliente webservice:

<?xml version="1.0" encoding="UTF-8"?>

M 2611606 128 A 607058 BBR0328361U0042 JJ0538 30-04-2022 5 02-01-2020 HANS 56994502009862 6927674 27.04000 00394544000851 E-O Gostaríamos de uma orientação ou literatura que nos ajude no preenchimento correto das tags. Grato pela atenção.
cristianomaq commented 3 years ago

Olá Emygdio, tudo bem? Consulta o material de integração. https://github.com/wsbndaf/Webservice/tree/master/Exemplos_Clientes/PHP/Async

emygdio-barreto commented 3 years ago

@cristianomaq

O cliente que estou preenchendo é em JAVA. Passei email para o ministério solicitando orientação e me responderam que não tem como me fornecer suporte em JAVA.

Estou alterando o processo para adaptar os exemplos em PHP e usá-los como intermediário passando os parâmetros via POST.

Sei que é a pior das alternativas porque nosso ambiente aqui em recife é totalmente em JAVA e teremos com isso fazer dupla hospedagem em nossos servidores para implementar o processo.

Obrigado pela ajuda.

rodolfomuller commented 3 years ago

Olá @emygdio-barreto! Assim, não conheço muito Java, construí o envio para o web Service no c#. Sabe o WSDL que vc usou no SoapUI para testar? Veja se tem alguma funcionalidade no Java para incluir a referência dele, pois no Visual Studio consigo usar a url do WSDL e ele gera automaticamente todas as classes necessárias para usar posteriormente. Com essas classes criadas, vc consegue instanciar os objetos, atribuir as informações neles e enviá-los.

cristianomaq commented 3 years ago

Acredito que este vídeo te ajude a construir o Web Service em java https://www.youtube.com/watch?v=83XsSM3bbCg

emygdio-barreto commented 3 years ago

Obrigado mais uma vez Cristiano, mas eu fiz a importação do WSDL na pasta do Java 7, Java 8 e pelo eclipse, das 3 opções a única que me carregou corretamente foi a do eclipse.

Aqui em Recife utilizamos Java como padrão para a maioria dos sistemas, Web ou não e recentemente convertemos o sistema Horus de Java 7 com JBoss para Java 11 com Tomcat 9. Para complicar, a partir do Java 8 não conseguimos utilizar o QName, uma classe java que converte o dado em XML usada no webservice do bnafar, diretamente no sistema porque o Java 9 em diante exige a que todas as classes tenham assinaturas claras para não chocar com outras do projeto.

Baixei o WSDL no eclipse usando o Tomcat 8 em outro workspace, testei e depois de testado, gerei uma lib para enxertar no projeto.

Hoje eu abandonei tudo isso e estou utilizando os exemplos do próprio ministério em PHP, injetando os parâmetros utilizando POST. Comecei ontem e já concluí 4 métodos. Decidimos seguir essa linha até o fim, pelo menos para o WS de Treinamento.

Grato pela sua atenção,

Att.,

Emygdio Barreto

Projeto HORUS Fones: (81) 3355-7057 / 99172-5082

emygdio-barreto commented 3 years ago

Obrigado @rodolfoMuller e @cristianomaq

@rodolfomuller, fiz da forma que você sugeriu.

Senhores, acredito que quem utilizou JAVA, remodelou o WS do Ministério para atendê-los. Não concordo com esse tipo de atitude por comprometer a segurança e a evolução do projeto.

Tomei uma ação tupiniquim, mas era o que me restava fazer, estou adaptando os programas PHP para receberem parâmetros via POST do sistema Horus que é JAVA, com isso estou progredindo e não violo nenhum código do Ministério.

Grande abraço, vou fechando aqui este issue.