Consumir Webservice ( SOAP )
Moderador: Moderadores
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
Consumir Webservice ( SOAP )
Entao pessoal..
após varias tentativas... inclusive com apoio do José Quintas.. nao obtivemos sucesso...
segue em anexo um exemplo e delphi.. que já testei e funciona...
o xml que se deve mandar é de um cte ok
Pode ser que alguem veja algo nao vimos no exemplo em harbour...
pois no harbour temos sempre o mesmo retorno:
<DESCCOMPLETA>Usuario nao informado</DESCCOMPLETA>
Estou disposto a pagar para quem resolver o problema usando harbour...
Obrigado
após varias tentativas... inclusive com apoio do José Quintas.. nao obtivemos sucesso...
segue em anexo um exemplo e delphi.. que já testei e funciona...
o xml que se deve mandar é de um cte ok
Pode ser que alguem veja algo nao vimos no exemplo em harbour...
pois no harbour temos sempre o mesmo retorno:
<DESCCOMPLETA>Usuario nao informado</DESCCOMPLETA>
Estou disposto a pagar para quem resolver o problema usando harbour...
Obrigado
- Anexos
-
- meux.xml
- (7.96 KiB) Baixado 469 vezes
-
SOAP.PRG- (2.63 KiB) Baixado 357 vezes
-
exemploConsumo_delphi.rar- (89.15 KiB) Baixado 428 vezes
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Consumir Webservice ( SOAP )
Tem que usar as ferramentas certas.
Você não está verificando se o XML é válido antes de enviar.
No Harbour 3.4, eu acrescentei umas linhas p/ validar se seu XML está ok antes de enviar, e retorna "XML com problema".
Não vai funcionar porque vc está enviando um XML já com erro.
Itamar M. Lins Jr.
Você não está verificando se o XML é válido antes de enviar.
No Harbour 3.4, eu acrescentei umas linhas p/ validar se seu XML está ok antes de enviar, e retorna "XML com problema".
Não vai funcionar porque vc está enviando um XML já com erro.
#include "hbxml.ch"
#include "hbmxml.ch"
function main()
LOCAL cXml, cSoapAction, cWebservice, cOperation, cRetorno
cls
cWebservice := "http://homologacao.averba.com.br/webserver/index.soap"
cSoapAction := "urn:ATMWebSvr#averbaCTe20"
cOperation := "averbaCTe20Request"
*-
cxlido:=HB_Memoread('meux.xml')
cXml := ""
*cXml += [<args>]
cXml += XmlTag( "usuario", "TESTES" )
cXml += XmlTag( "senha", "BASE" )
cXml += XmlTag( "codatm", "11340073" )
*--
cxml +='<xmlCTe><![CDATA['
cxml +=cxlido
cxml +=']]>'
cXml +='</xmlCTe>'
*cXml += [</args>]
cXml := SoapEnvelope( cXml, cOperation ) //
oXML := TXMLDocument():New( cXml, HBXML_STYLE_NOESCAPE )
IF oXML:nError != HBXML_ERROR_NONE
alert( "xml com problema " + Str( oXML:nError ) )
RETURN
ENDIF
*--
cRetorno := MicrosoftXmlSoapPost( cXml, cSoapAction, cWebservice )
*--
HB_MemoWrit('retorno.xml',cRetorno)
? cRetorno
RETURN
Saudações,C:\teste>hbmk2 SOAP.prg hbwin.hbc hbct.hbc hbmxml.hbc xhb.hbc
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
Consumir Webservice ( SOAP )
OPA !! já é um começo.. Erro xml 11
o que seria ? nao tenho a tabela desses erros...
o que seria ? nao tenho a tabela desses erros...
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Consumir Webservice ( SOAP )
Pois é, tem versões dessa string ai.
Saudações,
Itamar M. Lins Jr.
http://www.tutorialspoint.com/soap/soap_encoding.htmTo use SOAP 1.1 encoding, use the value http://schemas.xmlsoap.org/soap/encoding/
To use SOAP 1.2 encoding, use the value http://www.w3.org/2001/12/soap-encoding
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Itamar M. Lins Jr.
- Administrador

- Mensagens: 7928
- Registrado em: 30 Mai 2007 11:31
- Localização: Ilheus Bahia
- Curtiu: 1 vez
Consumir Webservice ( SOAP )
Aê gafanhoto!
Seu XML está muito diferente do exemplo dele!!!
O dele está assim:
Ai só Jesus na CAUSA!!!!
Formata seu XML p/ ficar igual ao exemplo dele com quebra de linha!!
Saudações,
Itamar M. Lins Jr.
Seu XML está muito diferente do exemplo dele!!!
O dele está assim:
Código: Selecionar todos
Como é para ser:
<usuario xsi:type="xsd:string">TESTES</usuario>
<senha xsi:type="xsd:string">BASE</senha>
<codatm xsi:type="xsd:string">11340073</codatm>
<xmlCTe xsi:type="xsd:string">
Como vc fez:
<usuario>TESTES</usuario><senha>BASE</senha><codatm>11340073</codatm><xmlCTe>
Formata seu XML p/ ficar igual ao exemplo dele com quebra de linha!!
Saudações,
Itamar M. Lins Jr.
Saudações,
Itamar M. Lins Jr.
Itamar M. Lins Jr.
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
Consumir Webservice ( SOAP )
Estamos evoluindo..... agora com o CRLF
Fico na duvida sobre o envelope... todos esses comandos foi o Quintas que montou...
Por exemplo aqui: xmlns:urn="urn:xmethods-delayed-quotes", nao deveria ter um comando ?
<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:xmethods-delayed-quotes">
<soapenv:Header/>
<soapenv:Body>
<urn:averbaCTe20Request xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:SOAP-ENC="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="urn:ATMWebSvr" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="urn:ATMWebSvr">
<service name="ATMWebSvr">
<port name="ATMWebSvrPort" binding="tns:ATMWebSvrBinding">
<soap:address location="http://homologacao.averba.com.br/webserver/index.soap"/>
</port>
</service>
<usuario xsi:type="xsd:string">TESTES</usuario>
<senha xsi:type="xsd:string">BASE</senha>
<codatm xsi:type="xsd:string">11340073</codatm>
<xmlCTe xsi:type="xsd:string">
<
- Mensagens: 3133
- Registrado em: 22 Jul 2003 18:39
- Localização: Araçatuba - SP
- Contato:
Consumir Webservice ( SOAP )
Alexandre, faz um teste com este SOAP.PRG em anexo. Para compilar veja início do SOAP.PRG e use Harbour 3.2 ou superior.
Abraços,
Abraços,
- Anexos
-
soap.zip- (21.65 KiB) Baixado 650 vezes
Toledo - Clipper On Line
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
toledo@pctoledo.com.br
Harbour 3.2/MiniGui/HwGui
Faça uma doação para o fórum, clique neste link: http://www.pctoledo.com.br/doacao
- Alexandre Silva
- Usuário Nível 3

- Mensagens: 376
- Registrado em: 26 Mar 2007 00:16
- Localização: Itapema - SC
Consumir Webservice ( SOAP )
Muito obrigado ficou certo
)
* Clipper 5.2e/Gaspro 4.0 /CDX/Blinker 7.0 Harbour 3.2 Console Hbmk2
-
informaisvrb
- Usuário Nível 1

- Mensagens: 10
- Registrado em: 09 Jun 2013 15:00
- Localização: VISCONDE DO RIO BRANCO
Consumir Webservice ( SOAP )
amigo Alexandre Silva, estou precisando de uma ajuda sua com algo parecido com o que voce fez.
Tenho que fazer quase ou o mesmo que voce fez para a seguradora
http://generali.averbweb.net.br/documentacao#arquivoxml
Será que pode me ajudar.
me adiciona o skype, ou me manda um e-mail com seu contato (se puder é claro)
Nota de Moderação:
por Toledo: Leia as Regras do fórum:
11 - Não é permitido postar o e-mail pessoal com o objetivo de receber ou oferecer qualquer auxílio que poderia ser feito pelo Fórum. O Fórum foi criado para intermediar a comunicação entre os participantes, não servir de mural de recados.
Tenho que fazer quase ou o mesmo que voce fez para a seguradora
http://generali.averbweb.net.br/documentacao#arquivoxml
Será que pode me ajudar.
me adiciona o skype, ou me manda um e-mail com seu contato (se puder é claro)
por Toledo: Leia as Regras do fórum:
11 - Não é permitido postar o e-mail pessoal com o objetivo de receber ou oferecer qualquer auxílio que poderia ser feito pelo Fórum. O Fórum foi criado para intermediar a comunicação entre os participantes, não servir de mural de recados.
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Consumir Webservice ( SOAP )
Bom dia Amigos,
Estou tentado, baseado neste exemplo, me comunicar com um servidor web, da BIONEXO, mais como informações do manual dele são muito genericas, não estou conseguindo.
Como não conheço nada deste tipo de comunicação, estou mais perdido que cachorro em dia de mudança... rsrsrs
Se alguem, ja fez este tipo de integração, com a Bionexo, e puder me ajudar.
Pela rotina passada pelo TOLEDO, imagino que seja possível, fazer esta comunicação.
No Manual deles, somente e informado:
Métodos e Retornos
Abaixo descrição dos métodos e retornos disponíveis para a comunicação com a plataforma Bionexo.
- String post (String user, String password, String operation, String parameters, xml)
Método genérico para todas as operações de envio (POST). Os parâmetros devem ser passados
no string ou um objeto DataHandler. Seu retorno é feito por meio de um bloco padrão que
varia de acordo a operação e parâmetro(s) passado(s) que está(ão) comentado(s) abaixo.
Parâmetros:
String post (‘String user’, ‘String password’, ‘String operation’, ‘String parameters’, xml)
Exemplo:
post (‘teste’, ’1234’, ’WHS’, ‘LAYOUT=WH’, <XML file/>)
- String request (String user, String password, String operation, String parameters)
Método genérico para todas as operações de busca de informações(GET). Os parâmetros
devem ser enviados no formato padrão HTTP ou HTTPS. Seu retorno é feito por meio de um
bloco padrão que varia de acordo a operação e parâmetros passados que estão comentados
abaixo.
Como montar o método:
String request (String User, String Password, String operation, String parameters)
Exemplo:
String request (teste,1234,WHS, LAYOUT=WH;TOKEN=1234)
Agradeço, qualquer ajuda ou dica.
Gilberto Silverio.
Estou tentado, baseado neste exemplo, me comunicar com um servidor web, da BIONEXO, mais como informações do manual dele são muito genericas, não estou conseguindo.
Como não conheço nada deste tipo de comunicação, estou mais perdido que cachorro em dia de mudança... rsrsrs
Se alguem, ja fez este tipo de integração, com a Bionexo, e puder me ajudar.
Pela rotina passada pelo TOLEDO, imagino que seja possível, fazer esta comunicação.
No Manual deles, somente e informado:
Métodos e Retornos
Abaixo descrição dos métodos e retornos disponíveis para a comunicação com a plataforma Bionexo.
- String post (String user, String password, String operation, String parameters, xml)
Método genérico para todas as operações de envio (POST). Os parâmetros devem ser passados
no string ou um objeto DataHandler. Seu retorno é feito por meio de um bloco padrão que
varia de acordo a operação e parâmetro(s) passado(s) que está(ão) comentado(s) abaixo.
Parâmetros:
String post (‘String user’, ‘String password’, ‘String operation’, ‘String parameters’, xml)
Exemplo:
post (‘teste’, ’1234’, ’WHS’, ‘LAYOUT=WH’, <XML file/>)
- String request (String user, String password, String operation, String parameters)
Método genérico para todas as operações de busca de informações(GET). Os parâmetros
devem ser enviados no formato padrão HTTP ou HTTPS. Seu retorno é feito por meio de um
bloco padrão que varia de acordo a operação e parâmetros passados que estão comentados
abaixo.
Como montar o método:
String request (String User, String Password, String operation, String parameters)
Exemplo:
String request (teste,1234,WHS, LAYOUT=WH;TOKEN=1234)
Agradeço, qualquer ajuda ou dica.
Gilberto Silverio.
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Consumir Webservice ( SOAP )
Agora que vi, o webservice do MA é a única UF que tem parâmetros parecidos com o primeiro post.
Esse negócio de binding e port.
https://sistemas.sefaz.ma.gov.br/wscada ... stro2?wsdl
Precisa certificado pra poder abrir o endereço, mas mostra o texto abaixo.
Depois vou tentar aplicar a mesma solução daqui.
Esse negócio de binding e port.
https://sistemas.sefaz.ma.gov.br/wscada ... stro2?wsdl
Precisa certificado pra poder abrir o endereço, mas mostra o texto abaixo.
Depois vou tentar aplicar a mesma solução daqui.
<?xml version='1.0' encoding='UTF-8'?><!-- Published by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.8 svn-revision#13980. --><!-- Generated by JAX-WS RI at http://jax-ws.dev.java.net. RI's version is JAX-WS RI 2.2.8 svn-revision#13980. --><definitions xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/ ... ty-1.0.xsd" xmlns:wsp="http://www.w3.org/ns/ws-policy" xmlns:wsp1_2="http://schemas.xmlsoap.org/ws/2004/09/policy" xmlns:wsam="http://www.w3.org/2007/05/addressing/metadata" xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/" xmlns:tns="http://www.portalfiscal.inf.br/nfe/wsdl ... aCadastro2" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://schemas.xmlsoap.org/wsdl/" targetNamespace="http://www.portalfiscal.inf.br/nfe/wsdl ... aCadastro2" name="CadConsultaCadastro2">
<types>
<xsd:schema>
<xsd:import namespace="http://www.portalfiscal.inf.br/nfe/wsdl ... aCadastro2" schemaLocation="https://sistemas.sefaz.ma.gov.br:443/ws ... o2?xsd=1"/>
</xsd:schema>
</types>
<message name="consultaCadastro2">
<part name="nfeDadosMsg" element="tns:nfeDadosMsg"/>
<part name="nfeCabecMsg" element="tns:nfeCabecMsg"/>
</message>
<message name="consultaCadastro2Response">
<part name="consultaCadastro2Result" element="tns:consultaCadastro2Result"/>
<part name="nfeCabecMsg" element="tns:nfeCabecMsg"/>
</message>
<portType name="CadConsultaCadastro2Soap">
<operation name="consultaCadastro2" parameterOrder="nfeDadosMsg nfeCabecMsg">
<input wsam:Action="http://www.portalfiscal.inf.br/nfe/wsdl ... aCadastro2" message="tns:consultaCadastro2"/>
<output wsam:Action="http://www.portalfiscal.inf.br/nfe/wsdl ... o2Response" message="tns:consultaCadastro2Response"/>
</operation>
</portType>
<binding name="CadConsultaCadastro2Soap12Binding" type="tns:CadConsultaCadastro2Soap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" style="document"/>
<operation name="consultaCadastro2">
<soap12:operation soapAction="http://www.portalfiscal.inf.br/nfe/wsdl ... adastro2"/>
<input>
<soap12:body use="literal" parts="nfeDadosMsg"/>
<soap12:header message="tns:consultaCadastro2" part="nfeCabecMsg" use="literal"/>
</input>
<output>
<soap12:body use="literal" parts="consultaCadastro2Result"/>
<soap12:header message="tns:consultaCadastro2Response" part="nfeCabecMsg" use="literal"/>
</output>
</operation>
</binding>
<service name="CadConsultaCadastro2">
<port name="CadConsultaCadastro2Soap12" binding="tns:CadConsultaCadastro2Soap12Binding">
<soap12:address location="https://sistemas.sefaz.ma.gov.br:443/ws ... adastro2"/>
</port>
</service>
</definitions>
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
-
gilbertosilverio
- Usuário Nível 3

- Mensagens: 339
- Registrado em: 18 Jan 2009 10:39
- Localização: Ribeirao Pires - SP
Consumir Webservice ( SOAP )
Ola Jose Quintas,
Obrigado pela sua resposta.
Entrei em contato como suporte técnico da Bionexo, e eles me passaram este modelo de comunicação via SOAP, mais não tenho nem ideia de por onde começar, veja se voce consegue me ajudar ha como devo proceder, pois não consigo enxergar a logica de como funciona esta comunicação via webserver.
Caso exista algum tutorial BASICO, de como funciona esta comunicação via SOAP/WEBSERVER, para que eu posa entender como funciona, por favor me passe.
Grato.
Obrigado pela sua resposta.
Entrei em contato como suporte técnico da Bionexo, e eles me passaram este modelo de comunicação via SOAP, mais não tenho nem ideia de por onde começar, veja se voce consegue me ajudar ha como devo proceder, pois não consigo enxergar a logica de como funciona esta comunicação via webserver.
Código: Selecionar todos
<con:definitionCache type="TEXT" rootPart="https://www.bionexo.com.br/ws2/BionexoBean?wsdl" xmlns:con="http://eviware.com/soapui/config"><con:part><con:url>https://www.bionexo.com.br/ws2/BionexoBean?wsdl</con:url><con:content><![CDATA[<definitions name="BionexoBeanService" targetNamespace="http://webservice.bionexo.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.bionexo.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<types/>
<message name="BionexoInterface_requestResponse">
<part name="return" type="xsd:string"/>
</message>
<message name="BionexoInterface_request">
<part name="login" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="operation" type="xsd:string"/>
<part name="parameters" type="xsd:string"/>
</message>
<message name="BionexoInterface_post">
<part name="login" type="xsd:string"/>
<part name="password" type="xsd:string"/>
<part name="operation" type="xsd:string"/>
<part name="parameters" type="xsd:string"/>
<part name="xml" type="xsd:string"/>
</message>
<message name="BionexoInterface_postResponse">
<part name="return" type="xsd:string"/>
</message>
<portType name="BionexoInterface">
<operation name="post" parameterOrder="login password operation parameters xml">
<input message="tns:BionexoInterface_post"/>
<output message="tns:BionexoInterface_postResponse"/>
</operation>
<operation name="request" parameterOrder="login password operation parameters">
<input message="tns:BionexoInterface_request"/>
<output message="tns:BionexoInterface_requestResponse"/>
</operation>
</portType>
<binding name="BionexoInterfaceBinding" type="tns:BionexoInterface">
<soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/>
<operation name="post">
<soap:operation soapAction=""/>
<input>
<soap:body namespace="http://webservice.bionexo.com/" use="literal"/>
</input>
<output>
<soap:body namespace="http://webservice.bionexo.com/" use="literal"/>
</output>
</operation>
<operation name="request">
<soap:operation soapAction=""/>
<input>
<soap:body namespace="http://webservice.bionexo.com/" use="literal"/>
</input>
<output>
<soap:body namespace="http://webservice.bionexo.com/" use="literal"/>
</output>
</operation>
</binding>
<service name="BionexoBeanService">
<port binding="tns:BionexoInterfaceBinding" name="BionexoPort">
<soap:address location="http://app-br-ws-jboss.bionexo.com:8180/bionexo-wsEAR-bionexo-wsn/BionexoBean"/>
</port>
</service>
</definitions>]]></con:content><con:type>http://schemas.xmlsoap.org/wsdl/</con:type></con:part></con:definitionCache>
<con:soapui-project activeEnvironment="Default" name="WS_Bionexo" soapui-version="5.2.0" abortOnError="false" runType="SEQUENTIAL" resourceRoot="" id="6ea2ce5b-bcc8-4323-8e4b-3d252956fbca">
<con:settings/>
<con:interface xsi:type="con:WsdlInterface" wsaVersion="NONE" name="BionexoInterfaceBinding" type="wsdl" bindingName="{http://webservice.bionexo.com/}BionexoInterfaceBinding" soapVersion="1_1" anonymous="optional" definition="https://www.bionexo.com.br/ws2/BionexoBean?wsdl" id="547aba4c-2faf-4e3e-b7c5-2056f3169672">
<con:settings/>
<con:definitionCache type="TEXT" rootPart="https://www.bionexo.com.br/ws2/BionexoBean?wsdl">
<con:part>
<con:url>https://www.bionexo.com.br/ws2/BionexoBean?wsdl</con:url>
<con:content><definitions name="BionexoBeanService" targetNamespace="http://webservice.bionexo.com/" xmlns="http://schemas.xmlsoap.org/wsdl/" xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:tns="http://webservice.bionexo.com/" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <types/> <message name="BionexoInterface_requestResponse"> <part name="return" type="xsd:string"/> </message> <message name="BionexoInterface_request"> <part name="login" type="xsd:string"/> <part name="password" type="xsd:string"/> <part name="operation" type="xsd:string"/> <part name="parameters" type="xsd:string"/> </message> <message name="BionexoInterface_post"> <part name="login" type="xsd:string"/> <part name="password" type="xsd:string"/> <part name="operation" type="xsd:string"/> <part name="parameters" type="xsd:string"/> <part name="xml" type="xsd:string"/> </message> <message name="BionexoInterface_postResponse"> <part name="return" type="xsd:string"/> </message> <portType name="BionexoInterface"> <operation name="post" parameterOrder="login password operation parameters xml"> <input message="tns:BionexoInterface_post"/> <output message="tns:BionexoInterface_postResponse"/> </operation> <operation name="request" parameterOrder="login password operation parameters"> <input message="tns:BionexoInterface_request"/> <output message="tns:BionexoInterface_requestResponse"/> </operation> </portType> <binding name="BionexoInterfaceBinding" type="tns:BionexoInterface"> <soap:binding style="rpc" transport="http://schemas.xmlsoap.org/soap/http"/> <operation name="post"> <soap:operation soapAction=""/> <input> <soap:body namespace="http://webservice.bionexo.com/" use="literal"/> </input> <output> <soap:body namespace="http://webservice.bionexo.com/" use="literal"/> </output> </operation> <operation name="request"> <soap:operation soapAction=""/> <input> <soap:body namespace="http://webservice.bionexo.com/" use="literal"/> </input> <output> <soap:body namespace="http://webservice.bionexo.com/" use="literal"/> </output> </operation> </binding> <service name="BionexoBeanService"> <port binding="tns:BionexoInterfaceBinding" name="BionexoPort"> <soap:address location="http://app-br-ws-jboss.bionexo.com:8180/bionexo-wsEAR-bionexo-wsn/BionexoBean"/> </port> </service> </definitions></con:content>
<con:type>http://schemas.xmlsoap.org/wsdl/</con:type>
</con:part>
</con:definitionCache>
<con:endpoints>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
</con:endpoints>
<con:operation isOneWay="false" action="" name="post" bindingOperationName="post" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="1bf7de46-8a8e-4d4b-b6b3-ab27a46d85b2">
<con:settings/>
<con:call id="5201eefd-4f4f-4dea-9522-0b8a94879a8d" name="WHS - Upload Resposta">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:post> <login></login> <password></password> <operation>WHS</operation> <parameters>LAYOUT=WH</parameters> <xml> <Resposta> <Cabecalho> <Id_Pdc>33200164</Id_Pdc> <CNPJ_Hospital>04.069.709/0001-02</CNPJ_Hospital> <Faturamento_Minimo>750</Faturamento_Minimo> <Prazo_Entrega>3</Prazo_Entrega> <Validade_Proposta>31/12/2016</Validade_Proposta> <Id_Forma_Pagamento>4</Id_Forma_Pagamento> <Frete>CIF</Frete> <Observacoes/> </Cabecalho> <Itens_Pdc> <Item_Pdc> <Sequencia>1</Sequencia> <Id_Artigo>44010010</Id_Artigo> <Codigo_Produto>01000146</Codigo_Produto> <Preco_Unitario>1.85</Preco_Unitario> <Fabricante>CREMER</Fabricante> <Embalagem>UNIDADE</Embalagem> <Quantidade_Embalagem>1</Quantidade_Embalagem> <Comentario/> <Campo_Extra> <Nome>Codigo_Produto_Fornecedor</Nome> <Valor>1515</Valor> </Campo_Extra> </Item_Pdc> </Itens_Pdc> </Resposta> </xml> </web:post> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:authType>No Authorization</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/postRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
<con:call id="919e5bba-c065-4b05-a26b-84c3bbc00317" name="WHU - Alterar Cancelar Resposta">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:post> <login></login> <password></password> <operation>WHU</operation> <parameters>LAYOUT=WH</parameters> <xml> <Resposta> <Cabecalho> <Id_Pdc>33200164</Id_Pdc> <CNPJ_Hospital>04.069.709/0001-02</CNPJ_Hospital> <Faturamento_Minimo>750</Faturamento_Minimo> <Prazo_Entrega>3</Prazo_Entrega> <Validade_Proposta>31/12/2016</Validade_Proposta> <Id_Forma_Pagamento>4</Id_Forma_Pagamento> <Frete>CIF</Frete> <Observacoes/> </Cabecalho> <Itens_Pdc> <Item_Pdc> <Sequencia>1</Sequencia> <Id_Artigo>44010010</Id_Artigo> <Codigo_Produto>01000146</Codigo_Produto> <Preco_Unitario>1.85</Preco_Unitario> <Fabricante>CREMER</Fabricante> <Embalagem>UNIDADE</Embalagem> <Quantidade_Embalagem>1</Quantidade_Embalagem> <Comentario/> <Campo_Extra> <Nome>Codigo_Produto_Fornecedor</Nome> <Valor>1515</Valor> </Campo_Extra> </Item_Pdc> </Itens_Pdc> </Resposta> </xml> </web:post> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:authType>No Authorization</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/postRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
</con:operation>
<con:operation isOneWay="false" action="" name="request" bindingOperationName="request" type="Request-Response" inputName="" receivesAttachments="false" sendsAttachments="false" anonymous="optional" id="e9429ce9-f80e-477b-b8cc-faa5a086e98a">
<con:settings/>
<con:call name="WJG - Download Itens Confirmado" id="30596d1e-33f6-4dc3-b95c-d20986d5f15e">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:request> <login></login> <password></password> <operation>WJG</operation> <parameters>TOKEN=1</parameters> </web:request> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:selectedAuthProfile>Basic</con:selectedAuthProfile>
<con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes>
<con:authType>Global HTTP Settings</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/requestRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
<con:call name="WGA - Download Prorrogados" id="f8a7bbef-4577-4eb1-a8f2-8264f5b774b6">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:request> <login></login> <password></password> <operation>WGA</operation> <parameters> DT_BEGIN=01/12/2015 16:40:00:00;DT_END=07/12/2015 16:50:59</parameters> </web:request> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:selectedAuthProfile>Basic</con:selectedAuthProfile>
<con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes>
<con:authType>Global HTTP Settings</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/requestRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
<con:call name="WKN - Status Itens" id="e1b8d1df-373f-46ba-9c49-aee198776ffc">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:request> <login></login> <password></password> <operation>WKN</operation> <parameters>ID=22995452</parameters> </web:request> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:selectedAuthProfile>Basic</con:selectedAuthProfile>
<con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes>
<con:authType>Global HTTP Settings</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/requestRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
<con:call name="WGG - Download PDC Aberto" id="e0fe6c87-7fec-4188-897b-5d8b4d59fb28">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:request> <login></login> <password></password> <operation>WGG</operation> <parameters>TOKEN=33200164</parameters> </web:request> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:selectedAuthProfile>Basic</con:selectedAuthProfile>
<con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes>
<con:authType>Global HTTP Settings</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/requestRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
<con:call name="WMG - Download Dados Cadastrais" id="ce2c7b93-099f-49c6-b070-cf55974bb4e9">
<con:settings>
<con:setting id="com.eviware.soapui.impl.wsdl.WsdlRequest@request-headers"><xml-fragment/></con:setting>
</con:settings>
<con:encoding>UTF-8</con:encoding>
<con:endpoint>http://sandbox.bionexo.com.br/ws2/BionexoBean</con:endpoint>
<con:request><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:web="http://webservice.bionexo.com/"> <soapenv:Header/> <soapenv:Body> <web:request> <login></login> <password></password> <operation>WMG</operation> <parameters>CNPJ=11.111.111/0001-11</parameters> </web:request> </soapenv:Body> </soapenv:Envelope></con:request>
<con:credentials>
<con:selectedAuthProfile>Basic</con:selectedAuthProfile>
<con:addedBasicAuthenticationTypes>Basic</con:addedBasicAuthenticationTypes>
<con:authType>Global HTTP Settings</con:authType>
</con:credentials>
<con:jmsConfig JMSDeliveryMode="PERSISTENT"/>
<con:jmsPropertyConfig/>
<con:wsaConfig mustUnderstand="NONE" version="200508" action="http://webservice.bionexo.com/BionexoInterface/requestRequest"/>
<con:wsrmConfig version="1.2"/>
</con:call>
</con:operation>
</con:interface>
<con:properties>
<con:property>
<con:name>teste</con:name>
<con:value>teste</con:value>
</con:property>
<con:property>
<con:name>WASE</con:name>
<con:value>WASE</con:value>
</con:property>
<con:property>
<con:name>XML</con:name>
<con:value><Pedido layout="WA"> <Cabecalho> <Requisicao>07052013-1214</Requisicao> <Titulo_Pdc>Teste pre pedido</Titulo_Pdc> <Id_Forma_Pagamento>1</Id_Forma_Pagamento> <Data_Vencimento>23/05/2013</Data_Vencimento> <Hora_Vencimento>23:59</Hora_Vencimento> <Moeda>Reais</Moeda> <Observacao/> <Campo_Extra> <Nome>SETOR</Nome> <Valor>CENTRAL DE ABAST FARMACEUTICO</Valor> </Campo_Extra> </Cabecalho> <Itens_Requisicao> <Item_Requisicao> <Codigo_Produto>45460</Codigo_Produto> <Descricao_Produto>Agua Oxigenada</Descricao_Produto> <Quantidade>1</Quantidade> </Item_Requisicao> </Itens_Requisicao> </Pedido></con:value>
</con:property>
<con:property>
<con:name>TOKEN</con:name>
<con:value>15551069</con:value>
</con:property>
</con:properties>
<con:wssContainer/>
<con:oAuth2ProfileContainer/>
<con:sensitiveInformation/>
</con:soapui-project>
Grato.
GilbertoSilverio
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
gilbertosilverio@gmail.com
gilbertosilverio2003@yahoo.com.br
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Consumir Webservice ( SOAP )
A lógica é simples, os detalhes é que complicam.
É enviar um XML e receber outro como resposta.
Imagine um programa em Harbour:
O Webservice é algo assim.
Tem a parte padrão de se comunicar com o webservice, e tem os detalhes adicionais que dependem do que o programador colocou.
Com certeza a forma de indicar "variáveis"/valores é padrão, mas os nomes e conteúdo não.
Agora vamos ao seu arquivo:
à primeira vista, te passaram exatamente o XML que o seu aplicativo deve gerar pra transmissão.
Um começo seria trocar os valores dele pelos seus valores, ou até tentar com o que veio
Por exemplo aqui: código do produto, descrição e quantidade
<Codigo_Produto>45460</Codigo_Produto> <Descricao_Produto>Agua Oxigenada</Descricao_Produto> <Quantidade>1</Quantidade>
Não sou expert no assunto. Só me acertei com os webservices de NFE, CTE, MDFE porque os manuais são bem completos, e todos seguem o mesmo esquema.
No caso acima do Maranhão, é o único diferente de todos os outros, ainda não resolvi.
Então pode dividir seu problema em duas partes:
1. Comunicar com o webservice
É basicamente entregar o XML e receber resposta.
Existe um formato válido para o chamado "envelope de soap".
<envelope>este aqui é um envelope<conteudo>aqui o conteúdo</conteudo></envelope>
o envelope precisa estar correto pra ser aceito
Dependendo do webservice, não há nenhum tipo de resposta enquanto no mínimo o envelope não estiver correto
2. O conteúdo ser aceito
o conteúdo são os valores propriamente ditos, que ficam embutidos no xml principal.
Comparando com o webservice do governo, seria uma nota fiscal preenchida corretamente.
No caso da NFE, retornam mensagens dizendo qual informação está preenchida errada.
Acho que a soapaction dá uma idéia do endereço de comunicação, é o ponto de partida:
http://webservice.bionexo.com/BionexoIn ... ostRequest
E o ponto de partida do XML é esse XML que recebeu, pode tentar transmití-lo pra ver a resposta.
Mas é possível que tenha alguma senha ou identificação específica para sua empresa.
A partir daí é com quem tenha mais conhecimento do que eu.
A intenção foi só dar uma idéia do que se trata.
É enviar um XML e receber outro como resposta.
Imagine um programa em Harbour:
Código: Selecionar todos
PARAMETERS cXmlEntrada
DO CASE
CASE TemSoapAction( cXmlEntrada, "umacoisa" ) ; cXmlSaida := SoapActionUmaCoisa(Parte(cXmlEntrada))
CASE TemSoapAction( cXmlEntrada, "outracoisa" ) ; cXmlSaida := SoapActionOutraCoisa(Parte(cXmlEntrada))
OTHERWISE ; cXmlSaida := "SoapAction inexistente"
ENDCASE
RETURN cXmlSaida
Tem a parte padrão de se comunicar com o webservice, e tem os detalhes adicionais que dependem do que o programador colocou.
Com certeza a forma de indicar "variáveis"/valores é padrão, mas os nomes e conteúdo não.
Agora vamos ao seu arquivo:
à primeira vista, te passaram exatamente o XML que o seu aplicativo deve gerar pra transmissão.
Um começo seria trocar os valores dele pelos seus valores, ou até tentar com o que veio
Por exemplo aqui: código do produto, descrição e quantidade
<Codigo_Produto>45460</Codigo_Produto> <Descricao_Produto>Agua Oxigenada</Descricao_Produto> <Quantidade>1</Quantidade>
Não sou expert no assunto. Só me acertei com os webservices de NFE, CTE, MDFE porque os manuais são bem completos, e todos seguem o mesmo esquema.
No caso acima do Maranhão, é o único diferente de todos os outros, ainda não resolvi.
Então pode dividir seu problema em duas partes:
1. Comunicar com o webservice
É basicamente entregar o XML e receber resposta.
Existe um formato válido para o chamado "envelope de soap".
<envelope>este aqui é um envelope<conteudo>aqui o conteúdo</conteudo></envelope>
o envelope precisa estar correto pra ser aceito
Dependendo do webservice, não há nenhum tipo de resposta enquanto no mínimo o envelope não estiver correto
2. O conteúdo ser aceito
o conteúdo são os valores propriamente ditos, que ficam embutidos no xml principal.
Comparando com o webservice do governo, seria uma nota fiscal preenchida corretamente.
No caso da NFE, retornam mensagens dizendo qual informação está preenchida errada.
Acho que a soapaction dá uma idéia do endereço de comunicação, é o ponto de partida:
http://webservice.bionexo.com/BionexoIn ... ostRequest
E o ponto de partida do XML é esse XML que recebeu, pode tentar transmití-lo pra ver a resposta.
Mas é possível que tenha alguma senha ou identificação específica para sua empresa.
A partir daí é com quem tenha mais conhecimento do que eu.
A intenção foi só dar uma idéia do que se trata.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Consumir Webservice ( SOAP )
Depois de tanto tempo do primeiro post, agora vou ter que fazer essa mesma comunicação da ATM, que iniciou o post.
O manual mostra detalhes do retorno, mas NENHUM detalhe do envio.
É engraçado como as seguradoras são umas bost. nisso.
Orientaram que o usuário deveria ficar consultando no programa deles pra ver o número da averbação, e digitar no manifesto.
Só quando perguntei do webservice, é que falaram dele.
Resumindo: os bost. da seguradora criaram um programa pra fazer tudo diferente, tá assim faz tempo, CULPA DELES, e agora pedem urgência, porque a empresa pode ser fiscalizada e multada, por não estar como a lei manda. Bem estilo Brasil....
Agora começar isso, que virou pra ontem....
Se alguém tiver alguma informação que ajude... é exatamente o averba da ATM, que apareceu no começo do tópico...
O manual mostra detalhes do retorno, mas NENHUM detalhe do envio.
É engraçado como as seguradoras são umas bost. nisso.
Orientaram que o usuário deveria ficar consultando no programa deles pra ver o número da averbação, e digitar no manifesto.
Só quando perguntei do webservice, é que falaram dele.
Resumindo: os bost. da seguradora criaram um programa pra fazer tudo diferente, tá assim faz tempo, CULPA DELES, e agora pedem urgência, porque a empresa pode ser fiscalizada e multada, por não estar como a lei manda. Bem estilo Brasil....
Agora começar isso, que virou pra ontem....
Se alguém tiver alguma informação que ajude... é exatamente o averba da ATM, que apareceu no começo do tópico...
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
- JoséQuintas
- Administrador

- Mensagens: 20267
- Registrado em: 26 Fev 2007 11:59
- Localização: São Paulo-SP
Consumir Webservice ( SOAP )
Por enquanto peguei o PRG do Itamar, ajustei pro meu jeito, e testei com o endereço oficial, mas... vou precisar aguardar usuário/senha e ambiente de teste pra ir em frente.
Agora é aguardar.
Mas queria destacar uma coisa, que só o Harbour tem !!!!
'Sem declarar versão, entra automaticamente a que o Windows escolher.
indicando 5.0
O Windows tem a versão 3, 4 e 6.
Sacanagem ou não, a versão 5 só tem no Office, e é a única que trata assinatura digital.
Acho que não é o caso aqui, mas só vou confirmar depois que tiver usuário/senha pra fazer mais testes.
o DomDoc: talvez seja interessante se o XML não for gerado pelo aplicativo, pra evitar problemas de codepage, mas acho que também não é o caso ainda.
Código: Selecionar todos
FUNCTION main()
LOCAL cXml, cSoapAction, cWebservice, cOperation, cRetorno
SetMode(40,100)
CLS
cWebservice := "webservice.averba.com.br/20"
cSoapAction := "urn:ATMWebSvr#averbaCTe20"
cOperation := "averbaCTe20"
cXmlDoc := HB_Memoread( "meux.xml" )
cXmlEnvio := [ <usuario xsi:type="xsd:string">TESTES</usuario>] + hb_eol()
cXmlEnvio += [ <senha xsi:type="xsd:string">BASE</senha>] + hb_eol()
cXmlEnvio += [ <codatm xsi:type="xsd:string">11340073</codatm>] + hb_eol()
cXmlEnvio += [ <xmlCTe xsi:type="xsd:string"><!]
cXmlEnvio += "[" + [CDATA] + "[" + cXmlDoc + "]]" + [></xmlCTe>] + hb_eol()
cXmlSoap := SoapEnvelope( cXmlEnvio, cOperation )
cXmlRetorno := MicrosoftXmlSoapPost( cXmlSoap, cSoapAction, cWebservice )
? cXmlRetorno
RETURN
FUNCTION MicrosoftXmlSoapPost( cXmlSoap, cSoapAction, cWebService )
LOCAL oServer, oDOMDoc, nCont, cRetorno := "*ERRO*", cXmlRetorno := ""
oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP")
oServer:Open( "POST", cWebService, .F. )
oServer:SetRequestHeader( "SOAPAction", cSoapAction )
oServer:SetRequestHeader( "Content-Type", "text/xml; charset=utf-8" )
oServer:send( cXmlSoap )
oServer:WaitForResponse( 1000 )
cRetorno := oServer:responseText
IF ValType( cRetorno ) == "C"
cXmlRetorno := cRetorno
ELSEIF cRetorno == NIL
cXmlRetorno := "*ERRO*"
ELSE
cXmlRetorno := ""
FOR nCont = 1 TO Len( cRetorno )
cXmlRetorno += Chr( cRetorno[ nCont ] )
NEXT
ENDIF
RETURN cXmlRetorno
FUNCTION SoapEnvelope( cXml, cOperation )
LOCAL cXmlEnvelope
cXmlEnvelope := [<?xml version="1.0" encoding="utf-8"?>] + hb_Eol()
cXmlEnvelope += [<soapenv:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ]
cXmlEnvelope += [xmlns:xsd="http://www.w3.org/2001/XMLSchema" ]
cXmlEnvelope += [ xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" ]
cXmlEnvelope += [xmlns:urn="urn:ATMWebSvr">] + hb_eol()
cXmlEnvelope += [ <soapenv:Header/>] + hb_Eol()
cXmlEnvelope += [ <soapenv:Body>] + hb_Eol()
cXmlEnvelope += [ <urn:] + cOperation
cXmlEnvelope += [ soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">] + hb_Eol()
cXmlEnvelope += cXml
cXmlEnvelope += [ </urn:] + cOperation + [>] + hb_eol()
cXmlEnvelope += [ </soapenv:Body>] + hb_Eol()
cXmlEnvelope += [</soapenv:Envelope>]
RETURN cXmlEnvelope
FUNCTION AppUserName(); RETURN ""
FUNCTION AppVersaoExe(); RETURN ""
Mas queria destacar uma coisa, que só o Harbour tem !!!!
Código: Selecionar todos
oServer := win_OleCreateObject( "MSXML2.ServerXMLHTTP")
indicando 5.0
sem indicar versãoError WINOLE/1007 Erro de sistema: -2147012890.
(0x80072EE6): msxml5.dll (DOS Error -2147352567)
Called from WIN_OLEAUTO:OPEN(0)
Called from MICROSOFTXMLSOAPPOST(27)
Called from MAIN(17)
Sem indicar versão foi usada a 3.0 (msxml3.dll).Error WINOLE/1007 Erro de sistema: -2147012890.
(0x80072EE6): msxml3.dll (DOS Error -2147352567)
Called from WIN_OLEAUTO:OPEN(0)
Called from MICROSOFTXMLSOAPPOST(27)
Called from MAIN(17)
O Windows tem a versão 3, 4 e 6.
Sacanagem ou não, a versão 5 só tem no Office, e é a única que trata assinatura digital.
Acho que não é o caso aqui, mas só vou confirmar depois que tiver usuário/senha pra fazer mais testes.
o DomDoc: talvez seja interessante se o XML não for gerado pelo aplicativo, pra evitar problemas de codepage, mas acho que também não é o caso ainda.
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"
https://github.com/JoseQuintas/