webservice para SNGPC

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

angeiras
Usuário Nível 3
Usuário Nível 3
Mensagens: 134
Registrado em: 21 Nov 2005 20:53
Localização: Olinda/PE

webservice para SNGPC

Mensagem por angeiras »

Olá,

Depois de muito tempo gerando o XML e usando o próprio site do SNGPC para enviar meus arquivos, decidi que já era hora de enviar esses arquivos do meu sistema.

Criei os tres serviços oficiais do SNGPC ( validar usuário, enviar arquivo XML e testar arquivo enviado ) mais a importação do inventário direto da ANVISA.

Essa primeira rotina, valida um email/senha para ver se esta cadastrado no SNGPC da ANVISA. No código estão os endereços de homologação e produção.

Código: Selecionar todos

//
// WebService com xHarbour
//
// Nesse exemplo estamos testando se o email/senha do usuario
// esta cadastrado no SNGPC da ANVISA.
//
// Existem ainda mais 2 servicos :
//
// a) enviar arquivo XML.
// b) verificar se arquivo XML enviado foi validado.
//
// Manoel Angeiras
//

#define CR_LF chr(13) + chr(10)

***************
FUNCTION MAIN()
***************
   if !InternetOK()
      Alert("Conexao com a internet falhou !")
   else
      Alert("Conexao OK")
   endif
   //
   // Abertura das funcoes para WebService do xHarbour
   //
   try
      doc := CreateObject( "MSXML2.DOMDocument" )
   catch
      try
         doc := CreateObject( "MSXML2.DOMDocument" )
      catch
         Alert("Erro na criacao do objeto MSXML2.DOMDocument : " + Ole2TxtError())
         return NIL
      end
   end

   try
      http := CreateObject( "MSXML2.XMLHTTP" )
   catch
      try
         http := CreateObject( "MSXML2.XMLHTTP" )
      catch
         Alert("Erro na criacao do objeto MSXML2.XMLHTTP : " + Ole2TxtError())
      end
   end
   //
   // Criar o XML request
   //
   cXml := ""
   cXml += '<?xml version="1.0" encoding="utf-8"?>' + CR_LF
   cXml += '<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:tem="http://tempuri.org/">' + CR_LF
   cXml += '  <soapenv:Header/>' + CR_LF
   cXml += '  <soapenv:Body>' + CR_LF
   cXml += '    <tem:ValidarUsuario>' + CR_LF
   cXml += '      <tem:Email>seu_email_aqui</tem:Email>' + CR_LF // SEU EMAIL AQUI
   cXml += '      <tem:Senha>sua_senha_aqui</tem:Senha>' + CR_LF           // SUA SENHA AQUI
   cXml += '    </tem:ValidarUsuario>' + CR_LF
   cXml += '  </soapenv:Body> ' + CR_LF
   cXml += '</soapenv:Envelope>' + CR_LF

//
// ENDERECO DE HOMOLOGACAO
//   
   http:Open( "POST", "http://homologacao.anvisa.gov.br/sngpc/webservice/sngpc.asmx?WSDL HTTP/1.1", .F. )
   http:SetRequestHeader( "Content-Type"   , "text/xml;charset=UTF-8" )
   http:SetRequestHeader( "SOAPAction"     , "http://tempuri.org/ValidarUsuario" )
   http:SetRequestHeader( "Host"           , "homologacao.anvisa.gov.br" )

//
// ENDERECO DE PRODUCAO
//   
// http:Open( "POST", "http://sngpc.anvisa.gov.br/webservice/sngpc.asmx?WSDL HTTP/1.1", .F. )
// http:SetRequestHeader( "Content-Type"   , "text/xml;charset=UTF-8" )
// http:SetRequestHeader( "SOAPAction"     , "http://tempuri.org/ConsultaDadosArquivoSNGPC" )
// http:SetRequestHeader( "Host"           , "sngpc.anvisa.gov.br" )

   Alert("Carrega o request...")
   doc:LoadXML( cXml )                // Carrega o request de string

   Alert("Envia o xml...")
   http:send( doc:xml )               // Envia o request

   Alert("Ler a resposta...")
   response  := http:responseText     // Recebe a resposta

   Alert("Apresentando a resposta")

   oXmlDoc := TXmlDocument():new()
   oXMlDoc:read( response )

   oXmlNode := oXmlDoc:findFirst( "ValidarUsuarioResult" )
   Alert(oXmlNode:cName + " = " + oXmlNode:cData )

RETURN NIL

*********************
FUNCTION InternetOK()
*********************
   local aHosts, cName, cAddress := "www.google.com.br"
   InetInit()
   aHosts := InetGetHosts( cAddress )
   if aHosts == NIL .or. len(aHosts) == 0
      InetCleanup()
      return .F.
   endif
   InetCleanup()
RETURN .T.
Se alguem quiser os serviços de enviar XML e testar arquivo, posso publicar aqui também.

[]s
Angeiras
Clipper 5.2e + sixcdx + catools + nanfor
xHarbour 1.0.0 + gtwvw / xHarbour 1.2.1 + Fivewin
williamdebritoadami
Usuário Nível 1
Usuário Nível 1
Mensagens: 1
Registrado em: 09 Mai 2011 12:53
Localização: Pouso Alegre - MG

webservice para SNGPC

Mensagem por williamdebritoadami »

Olá Sr. Manoel, primeiramente muito obrigado pelo exemplo para trabalhar com XML do SNGPC , faz tempo que eu estava procurando como fazer.
Se o sr. puder postar o restante do codigo, mostrando como transmitir o XML e testar o arquivo, seria de grande ajuda.

Muito obrigado


William de Brito Adami
angeiras
Usuário Nível 3
Usuário Nível 3
Mensagens: 134
Registrado em: 21 Nov 2005 20:53
Localização: Olinda/PE

webservice para SNGPC

Mensagem por angeiras »

Olá William,

Pra não ficar duplicando os meus posts, coloquei esse e outros exemplos no blog que criei :

http://angeiras.blogspot.com/

[]s
Angeiras
Clipper 5.2e + sixcdx + catools + nanfor
xHarbour 1.0.0 + gtwvw / xHarbour 1.2.1 + Fivewin
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

webservice para SNGPC

Mensagem por marcos.gurupi »

Caro Angeiras, vc teria o exemplo ai ainda? Tentei entrar no seu blog mas nao funciona mais. Obrigado
Marcos Roberto
NetService Software
marcos.gurupi
Usuário Nível 4
Usuário Nível 4
Mensagens: 939
Registrado em: 06 Jul 2004 11:53
Localização: Gurupi-TO

webservice para SNGPC

Mensagem por marcos.gurupi »

Alguem teria um caminho das pedras para o SNGPC ?
Marcos Roberto
NetService Software
angeiras
Usuário Nível 3
Usuário Nível 3
Mensagens: 134
Registrado em: 21 Nov 2005 20:53
Localização: Olinda/PE

webservice para SNGPC

Mensagem por angeiras »

Olá,

Dia desses no fórum fivewin, postaram os exemplos que fiz para cada mensagem de comunicação com a ANVISA. Dá uma olhada em http://fivewin.com.br/index.php?/topic/ ... -de-ajuda/.

Acho que tá bem completo. Se faltar alguma coisa é só perguntar.

[]s
M.Angeiras
Clipper 5.2e + sixcdx + catools + nanfor
xHarbour 1.0.0 + gtwvw / xHarbour 1.2.1 + Fivewin
Responder