[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: A great help for a dummy guy in this task....



I completely agree with Scott. Trying to work with web services without soapUI is almost impossible. 
Why make things harder than possible? ;-)

Thomas.

Scott Klement schrieb:
> Hello Mario,
> 
> The basic idea behind a web service and the way a web service works is 
> something like this:
> 
> a) You create an XML document containing information ("input parameters")
> 
> b) You upload the XML to a program on an HTTP server.
> 
> c) (while you wait) the prgoram on the HTTP server extracts the 
> parameters from the XML.
> 
> d) (while you wait) the program on the HTTP server does some sort of 
> calculations or database lookups -- whatever business logic is needed.
> 
> e) (white you wait) the program on the HTTP server creates an XML 
> document and returns it to your program.
> 
> f) Your program parses the returned XML to get back the response.
> 
> 
> With that in mind, SOAP is the format of the XML that you 
> upload/download to the web service.  The exact specifications of which 
> SOAP messages should be sent at which times are coded in the WSDL (which 
> is another XML document).  Most WSDLs also contain an XML "schema" which 
> can be used to validate that the XML document is valid.
> 
> When you look at the code for EXAMPLE18, what you are seeing is a 
> relatively simple RPG program that builds an XML message and calls the 
> HTTPAPI routine to send it to a web server.  It also asks HTTPAPI to 
> parse the XML as it comes back, and so the 'Incoming' subprocedure is 
> called for each XML tag containing the parsed tag information.
> 
> To do the same thing for your own web service, I strongly recommend 
> SoapUI.  SoapUI is a free (open source) program that you can download 
> from http://soapui.org   (everything you need is in the free version)
> 
> In SoapUI, you tell it the pathname to your WSDL document.  It then 
> builds the appropriate SOAP messages and shows them to you.  Lets you 
> change them, copy/paste them, whatever you want to do.  You can even try 
> sending them to the web service.
> 
> Once you've used SoapUI and understand what needs to be sent to the web 
> service and what needs to be received back, you can copy/paste the XML 
> from SOAPUI into your RPG program and code something similar to 
> EXAMPLE18 that automates the entire process.
> 
> more detail about the SoapUI/HTTPAPI process can be found here:
> http://systeminetwork.com/article/rpg-consuming-web-services-httpapi-and-soapui
> 
> 
> 
> 
> Mario Rodrigues wrote:
>>    Hi, everyone
>>
>>
>>    I try for my one, put Example18 work like I want, but until now I
>>    don't have success, and I appreciated a lot if anybody teach me how
>>    can I put this work well.
>>
>>
>>    This is my first time that I work with XML and WSDL structure.
>>
>>
>>    I received this WSDL structure from a client, and I pretend used from
>>    an RPG program, I only need known a feedback in this parms, for better
>>    understand I put here these programs for help:
>>
>>
>>
>>    <?xml version="1.0" encoding="utf-8"?>
>>
>>    <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/";
>>
>>    xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/";
>>
>>    xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/";
>>
>>    xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/";
>>
>>    xmlns:tns="http://AML.BPN.org/AMLFiltragemService/";
>>
>>    xmlns:s="http://www.w3.org/2001/XMLSchema";
>>
>>    xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/";
>>
>>    xmlns:http="http://schemas.xmlsoap.org/wsdl/http/";
>>
>>    targetNamespace="http://AML.BPN.org/AMLFiltragemService/";
>>
>>    xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/";>
>>
>>
>>    <wsdl:types>
>>
>>        <s:schema elementFormDefault="qualified"
>>    targetNamespace="http://AML.BPN.org/AMLFiltragemService/";>
>>
>>          <s:element name="ForceLoadSettings">
>>
>>            <s:complexType />
>>
>>          </s:element>
>>
>>          <s:element name="ForceLoadSettingsResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="1" maxOccurs="1"
>>    name="ForceLoadSettingsResult" type="s:boolean" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="CancelaOperacao">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_transf"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="notas"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="utilizador"
>>    type="s:string" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="CancelaOperacaoResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="CancelaOperacaoResult" type="tns:AMLServiceResult" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:complexType name="AMLServiceResult">
>>
>>            <s:sequence>
>>
>>              <s:element minOccurs="1" maxOccurs="1" name="resultado"
>>    type="s:int" />
>>
>>              <s:element minOccurs="0" maxOccurs="1" name="mensagem_erro"
>>    type="s:string" />
>>
>>            </s:sequence>
>>
>>          </s:complexType>
>>
>>          <s:element name="AMLContextHeader" type="tns:AMLContextHeader"
>>    />
>>
>>          <s:complexType name="AMLContextHeader">
>>
>>            <s:sequence>
>>
>>              <s:element minOccurs="0" maxOccurs="1" name="sessionid"
>>    type="s:string" />
>>
>>            </s:sequence>
>>
>>            <s:anyAttribute />
>>
>>          </s:complexType>
>>
>>          <s:element name="CancelaOperacaoTimestamp">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_transf"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="notas"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="utilizador"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="timestamp"
>>    type="s:string" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="CancelaOperacaoTimestampResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="CancelaOperacaoTimestampResult"
>>    type="tns:AMLServiceResultTimestamp" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:complexType name="AMLServiceResultTimestamp">
>>
>>            <s:sequence>
>>
>>              <s:element minOccurs="1" maxOccurs="1" name="resultado"
>>    type="s:int" />
>>
>>              <s:element minOccurs="0" maxOccurs="1" name="mensagem_erro"
>>    type="s:string" />
>>
>>              <s:element minOccurs="0" maxOccurs="1" name="timestamp"
>>    type="s:string" />
>>
>>            </s:sequence>
>>
>>          </s:complexType>
>>
>>          <s:element name="ActualizaOperacao">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_transf"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo"
>>    type="s:string" />
>>
>>                <s:element minOccurs="1" maxOccurs="1" name="result_oper"
>>    type="s:int" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="notas"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="utilizador"
>>    type="s:string" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ActualizaOperacaoResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="ActualizaOperacaoResult" type="tns:AMLServiceResult" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ActualizaOperacaoTimestamp">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_transf"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo"
>>    type="s:string" />
>>
>>                <s:element minOccurs="1" maxOccurs="1" name="result_oper"
>>    type="s:int" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="notas"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="utilizador"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="timestamp"
>>    type="s:string" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ActualizaOperacaoTimestampResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="ActualizaOperacaoTimestampResult"
>>    type="tns:AMLServiceResultTimestamp" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ValidaOperacao">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_transf"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="nome_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo_id_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="nome_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo_id_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="sentido"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="montante"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="moeda"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="tipo_conta_ord" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="conta_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="tipo_conta_ben" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="conta_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="pais_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="pais_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="codigo_banco_ord" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="banco_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="codigo_banco_ben" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="banco_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="dt_hora"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="utilizador"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="agencia"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="notas"
>>    type="s:string" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ValidaOperacaoResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="ValidaOperacaoResult" type="tns:AMLServiceResult" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ValidaOperacaoTimestamp">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_transf"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="nome_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo_id_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="nome_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="id_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="tipo_id_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="sentido"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="montante"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="moeda"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="tipo_conta_ord" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="conta_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="tipo_conta_ben" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="conta_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="pais_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="pais_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="codigo_banco_ord" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="banco_ord"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="codigo_banco_ben" type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="banco_ben"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="dt_hora"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="utilizador"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="agencia"
>>    type="s:string" />
>>
>>                <s:element minOccurs="0" maxOccurs="1" name="notas"
>>    type="s:string" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>          <s:element name="ValidaOperacaoTimestampResponse">
>>
>>            <s:complexType>
>>
>>              <s:sequence>
>>
>>                <s:element minOccurs="0" maxOccurs="1"
>>    name="ValidaOperacaoTimestampResult"
>>    type="tns:AMLServiceResultTimestamp" />
>>
>>              </s:sequence>
>>
>>            </s:complexType>
>>
>>          </s:element>
>>
>>        </s:schema>
>>
>>      </wsdl:types>
>>
>>
>>    <wsdl:message name="ForceLoadSettingsSoapIn">
>>
>>        <wsdl:part name="parameters" element="tns:ForceLoadSettings" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ForceLoadSettingsSoapOut">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:ForceLoadSettingsResponse" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="CancelaOperacaoSoapIn">
>>
>>        <wsdl:part name="parameters" element="tns:CancelaOperacao" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="CancelaOperacaoSoapOut">
>>
>>        <wsdl:part name="parameters" element="tns:CancelaOperacaoResponse"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="CancelaOperacaoAMLContextHeader">
>>
>>        <wsdl:part name="AMLContextHeader" element="tns:AMLContextHeader"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="CancelaOperacaoTimestampSoapIn">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:CancelaOperacaoTimestamp" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="CancelaOperacaoTimestampSoapOut">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:CancelaOperacaoTimestampResponse" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="CancelaOperacaoTimestampAMLContextHeader">
>>
>>        <wsdl:part name="AMLContextHeader" element="tns:AMLContextHeader"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ActualizaOperacaoSoapIn">
>>
>>        <wsdl:part name="parameters" element="tns:ActualizaOperacao" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ActualizaOperacaoSoapOut">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:ActualizaOperacaoResponse" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ActualizaOperacaoAMLContextHeader">
>>
>>        <wsdl:part name="AMLContextHeader" element="tns:AMLContextHeader"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ActualizaOperacaoTimestampSoapIn">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:ActualizaOperacaoTimestamp" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ActualizaOperacaoTimestampSoapOut">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:ActualizaOperacaoTimestampResponse" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ActualizaOperacaoTimestampAMLContextHeader">
>>
>>        <wsdl:part name="AMLContextHeader" element="tns:AMLContextHeader"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ValidaOperacaoSoapIn">
>>
>>        <wsdl:part name="parameters" element="tns:ValidaOperacao" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ValidaOperacaoSoapOut">
>>
>>        <wsdl:part name="parameters" element="tns:ValidaOperacaoResponse"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ValidaOperacaoAMLContextHeader">
>>
>>        <wsdl:part name="AMLContextHeader" element="tns:AMLContextHeader"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ValidaOperacaoTimestampSoapIn">
>>
>>        <wsdl:part name="parameters" element="tns:ValidaOperacaoTimestamp"
>>    />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ValidaOperacaoTimestampSoapOut">
>>
>>        <wsdl:part name="parameters"
>>    element="tns:ValidaOperacaoTimestampResponse" />
>>
>>      </wsdl:message>
>>
>>      <wsdl:message name="ValidaOperacaoTimestampAMLContextHeader">
>>
>>        <wsdl:part name="AMLContextHeader" element="tns:AMLContextHeader"
>>    />
>>
>>      </wsdl:message>
>>
>>
>>    <wsdl:portType name="AMLFiltragemServiceSoap">
>>
>>        <wsdl:operation name="ForceLoadSettings">
>>
>>          <wsdl:input message="tns:ForceLoadSettingsSoapIn" />
>>
>>          <wsdl:output message="tns:ForceLoadSettingsSoapOut" />
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="CancelaOperacao">
>>
>>          <wsdl:input message="tns:CancelaOperacaoSoapIn" />
>>
>>          <wsdl:output message="tns:CancelaOperacaoSoapOut" />
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="CancelaOperacaoTimestamp">
>>
>>          <wsdl:input message="tns:CancelaOperacaoTimestampSoapIn" />
>>
>>          <wsdl:output message="tns:CancelaOperacaoTimestampSoapOut" />
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ActualizaOperacao">
>>
>>          <wsdl:input message="tns:ActualizaOperacaoSoapIn" />
>>
>>          <wsdl:output message="tns:ActualizaOperacaoSoapOut" />
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ActualizaOperacaoTimestamp">
>>
>>          <wsdl:input message="tns:ActualizaOperacaoTimestampSoapIn" />
>>
>>          <wsdl:output message="tns:ActualizaOperacaoTimestampSoapOut" />
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ValidaOperacao">
>>
>>          <wsdl:input message="tns:ValidaOperacaoSoapIn" />
>>
>>          <wsdl:output message="tns:ValidaOperacaoSoapOut" />
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ValidaOperacaoTimestamp">
>>
>>          <wsdl:input message="tns:ValidaOperacaoTimestampSoapIn" />
>>
>>          <wsdl:output message="tns:ValidaOperacaoTimestampSoapOut" />
>>
>>        </wsdl:operation>
>>
>>      </wsdl:portType>
>>
>>
>>     <wsdl:binding name="AMLFiltragemServiceSoap"
>>    type="tns:AMLFiltragemServiceSoap">
>>
>>        <soap:binding transport="http://schemas.xmlsoap.org/soap/http"; />
>>
>>        <wsdl:operation name="ForceLoadSettings">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ForceLoadSettings";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="CancelaOperacao">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/CancelaOperacao";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>            <soap:header message="tns:CancelaOperacaoAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="CancelaOperacaoTimestamp">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/CancelaOperacaoTime
>>    stamp" style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>            <soap:header
>>    message="tns:CancelaOperacaoTimestampAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ActualizaOperacao">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ActualizaOperacao";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>            <soap:header message="tns:ActualizaOperacaoAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ActualizaOperacaoTimestamp">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ActualizaOperacaoTi
>>    mestamp" style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>            <soap:header
>>    message="tns:ActualizaOperacaoTimestampAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ValidaOperacao">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ValidaOperacao";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>            <soap:header message="tns:ValidaOperacaoAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ValidaOperacaoTimestamp">
>>
>>          <soap:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ValidaOperacaoTimes
>>    tamp" style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap:body use="literal" />
>>
>>            <soap:header
>>    message="tns:ValidaOperacaoTimestampAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>      </wsdl:binding>
>>
>>
>>    <wsdl:binding name="AMLFiltragemServiceSoap12"
>>    type="tns:AMLFiltragemServiceSoap">
>>
>>        <soap12:binding transport="http://schemas.xmlsoap.org/soap/http";
>>    />
>>
>>        <wsdl:operation name="ForceLoadSettings">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ForceLoadSettings";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="CancelaOperacao">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/CancelaOperacao";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>            <soap12:header message="tns:CancelaOperacaoAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="CancelaOperacaoTimestamp">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/CancelaOperacaoTime
>>    stamp" style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>            <soap12:header
>>    message="tns:CancelaOperacaoTimestampAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ActualizaOperacao">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ActualizaOperacao";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>            <soap12:header message="tns:ActualizaOperacaoAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ActualizaOperacaoTimestamp">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ActualizaOperacaoTi
>>    mestamp" style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>            <soap12:header
>>    message="tns:ActualizaOperacaoTimestampAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ValidaOperacao">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ValidaOperacao";
>>    style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>            <soap12:header message="tns:ValidaOperacaoAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>        <wsdl:operation name="ValidaOperacaoTimestamp">
>>
>>          <soap12:operation
>>    soapAction="http://AML.BPN.org/AMLFiltragemService/ValidaOperacaoTimes
>>    tamp" style="document" />
>>
>>          <wsdl:input>
>>
>>            <soap12:body use="literal" />
>>
>>            <soap12:header
>>    message="tns:ValidaOperacaoTimestampAMLContextHeader"
>>    part="AMLContextHeader" use="literal" />
>>
>>          </wsdl:input>
>>
>>          <wsdl:output>
>>
>>            <soap12:body use="literal" />
>>
>>          </wsdl:output>
>>
>>        </wsdl:operation>
>>
>>      </wsdl:binding>
>>
>>
>>      <wsdl:service name="AMLFiltragemService">
>>
>>        <wsdl:port name="AMLFiltragemServiceSoap"
>>    binding="tns:AMLFiltragemServiceSoap">
>>
>>          <soap:address
>>    location="http://localhost/AMLFiltragem/AMLFiltragemService.asmx"; />
>>
>>        </wsdl:port>
>>
>>        <wsdl:port name="AMLFiltragemServiceSoap12"
>>    binding="tns:AMLFiltragemServiceSoap12">
>>
>>          <soap12:address
>>    location="http://localhost/AMLFiltragem/AMLFiltragemService.asmx"; />
>>
>>        </wsdl:port>
>>
>>      </wsdl:service>
>>
>>    </wsdl:definitions>
>>
>>
>>      FIELDS:
>>
>>
>>    Campos de entrada:
>>
>>
>>    <id_transf> Identificador único da transferência </id_trasnf>
>>    string[15], Obrigatório
>>
>>    <tipo>Tipo de transferência </tipo> string[6], Obrigatório
>>
>>    Valores possíveis [TEIS, SWIFT, AT2]
>>
>>    <nome_ben> Nome do beneficiário </nome_ben> string[128]
>>
>>    <id_ben> Identificação do beneficiário </id_ben> string[30],
>>    [Opcional]
>>
>>    <tipo_id_ben> Tipo de documento de Identificação do beneficiário
>>    </tipo_id_ben> string[30], [Opcional]
>>
>>    <nome_ord> Nome do ordenante </nome_ord> string[128] , [Opcional]
>>
>>    <id_ord> Identificação do ordenante </id_ord> string[30], [Opcional]
>>
>>    <tipo_id_ord> Tipo de documento de Identificação do ordenante
>>    </tipo_id_ord> string[30], [Opcional]
>>
>>    <sentido> Sentido da transferência, entrada ou saída </sentido>
>>    string[1], [Obrigatório]
>>
>>     Valores possíveis  [E, S]
>>
>>    <montante> Montante da transferência </montante> string[17],
>>    [Opcional]
>>
>>    Formato [XXXXXXXXXXXX,XXXX], casas decimais separadas por uma virgula
>>    da parte inteira. Sem limite de casas decimais, desde que se cumpra o
>>    tamanho do campo.
>>
>>    <moeda> Moeda </moeda> string[3],  [Opcional]
>>
>>    <tipo_conta_ord> tipo do número de conta do ordenante
>>    </tipo_conta_ord> string[3] , [Opcional]
>>
>>    Tipo de n.º da conta do Ordenante. Obrigatório se for especificado o
>>    n.º de conta do ordenante.
>>
>>     NIB = NIB, IBN = IBAN, INT = Interno, OUT = Outro.
>>
>>    <conta_ord> Número de conta do ordenante </conta_ord> string[34] ,
>>    [Opcional]
>>
>>    <tipo_conta_ben> tipo do número de conta do beneficiário
>>    </tipo_onta_ben> string[3] , [Opcional]
>>
>>    Tipo de n.º da conta do Beneficiário. Obrigatório se for especificado
>>    o n.º do ordenante.
>>
>>    NIB = NIB, IBN = IBAN, INT = Interno, OUT = Outro.
>>
>>    <conta_ben> Número de conta do beneficiário </conta_ben> string[34],
>>    [Opcional]
>>
>>    <pais_ord> País do ordenante </pais_ord> string[3], [Opcional]
>>
>>    <pais_ben> País do beneficiário </pais_ben> string[3] , [Opcional]
>>
>>    <codigo_banco_ord> Codigo do Banco do ordenante </codigo_banco_ord>
>>    string[11],  [Opcional]
>>
>>    <banco_ord> Banco do ordenante </banco_ord> string[40],  [Opcional]
>>
>>    <codigo_banco_ben> Codigo do Banco do beneficiário </codigo_banco_ben>
>>    string[11],  [Opcional]
>>
>>    <banco_ben> Banco do beneficiário </banco_ben> string[40], [Opcional]
>>
>>    <dt_hora> Data e hora da ordem </dt_hora> string[14],  [Opcional]
>>    Formato [aaaammddhhmmss]
>>
>>    <utilizador> Utilizador que introduziu a ordem </utilizador>
>>    string[64], [Opcional]
>>
>>    <agencia> Agência da ordem </agencia> string[32],  [Opcional]
>>
>>    <notas> Notas </notas> string[256], [Opcional]
>>
>>
>>
>>    Campos de Saída
>>
>>
>>    <resultado> Resultado da operação </resultado> [int]
>>
>>                    Valores possíveis:
>>
>>                                   0: Operação pode continuar
>>
>>                                   1: Operação ficou pendente para análise
>>    posterior
>>
>>                                   2: Impedir a realização da operação
>>
>>                                   -1: Aconteceu um erro ao validar a
>>    operação
>>
>>    <mensagem_erro>Descritivo do erro no caso de existir </mensagem_erro>
>>    string[128]
>>
>>
>>
>>    With these information, first of all I don't know if I need anything
>>    else, and like I say with these I starting made this in EXAMPLE18 for
>>    call in future from my rpg pgm IS4055.
>>
>>
>>          *  This is an example of calling a SOAP Web service w/HTTPAPI.
>>
>>          *
>>
>>          *  This sample calls the Currency Exchange Rate Web service
>>
>>          *  provided by WebserviceX.net. For more info, search for it
>>
>>          *  at   http://www.WebserviceX.net
>>
>>          *
>>
>>          *  To Compile (requires V5R1):
>>
>>          *     CRTBNDRPG PGM(EXAMPLE18) SRCFILE(libhttp/QRPGLESRC)
>>
>>          *
>>
>>          *  To Run:
>>
>>          *     CALL EXAMPLE18 PARM('USD' 'JPY' 12.00)
>>
>>          *
>>
>>          *  (This shows the value of USD 12.00 in Japanese currency.)
>>
>>          *
>>
>>         H DFTACTGRP(*NO) BNDDIR('HTTPAPI':'QC2LE')
>>
>>
>>         D WSSINP          DS
>>
>>         D   id_transf                   15A   const
>>
>>         D   tipo                         6A   const
>>
>>         D   nome_ben                   128A   const
>>
>>         D   id_ben                      30A   const
>>
>>         D   tipo_id_ben                 30A   const
>>
>>         D   nome_ord                   128A   const
>>
>>         D   id_ord                      30A   const
>>
>>         D   tipo_id_ord                 30A   const
>>
>>         D   sentido                      1A   const
>>
>>         D   montante                    17A   const
>>
>>         D   moeda                        3A   const
>>
>>         D tipo_conta_ord                 3A   const
>>
>>         D   conta_ord                   34A   const
>>
>>         D tipo_conta_ben                 3A   const
>>
>>         D   conta_ben                   34A   const
>>
>>         D   pais_ord                     3A   const
>>
>>         D   pais_ben                     3A   const
>>
>>         Dcodigo_banco_or                11A   const
>>
>>         D  banco_ord                    40A   const
>>
>>         Dcodigo_banco_be                11A   const
>>
>>         D  banco_ben                    40A   const
>>
>>         D  dt_hora                      14A   const
>>
>>         D  utilizador                   64A   const
>>
>>         D  agencia                      32A   const
>>
>>         D   notas                      256A   const
>>
>>         D WSSOUT          DS
>>
>>         D   resultado                    1s 0 value
>>
>>         D   mensagem                   128A   const
>>
>>
>>         D IN_OUT          PR                  ExtPgm('IS4050')
>>
>>         D   p_entra                            likeds(wssinp)
>>
>>         D IN_OUT          PI
>>
>>         D   p_saida                            likeds(wssout)
>>
>>
>>          /copy httpapi_h
>>
>>
>>         D Incoming        PR
>>
>>         D   rate                         8F
>>
>>         D   depth                       10I 0 value
>>
>>         D   name                      1024A   varying const
>>
>>         D   path                     24576A   varying const
>>
>>         D   value                    65535A   varying const
>>
>>         D   attrs                         *   dim(32767)
>>
>>         D                                     const options(*varsize)
>>
>>
>>         D SOAP            s          32767A   varying
>>
>>         D rc              s             10I 0
>>
>>         D rate            s              8F
>>
>>         D Result          s             12P 2
>>
>>
>>          /free
>>
>>
>>           if ( %parms < 3 );
>>
>>              http_comp( 'Please pass parms. e.g. CALL EXAMPLE18 '
>>
>>                       + 'PARM(USD JPY 12.00)');
>>
>>              return;
>>
>>           endif;
>>
>>
>>           // Note:  http_debug(*ON/*OFF) can be used to turn debugging
>>
>>           //        on and off.  When debugging is turned on, diagnostic
>>
>>           //        info is written to an IFS file named
>>
>>           //        /tmp/httpapi_debug.txt
>>
>>
>>           http_debug(*ON);
>>
>>
>>           // Note:  http_XmlStripCRLF(*ON/*OFF) controls whether or not
>>
>>           //        the XML parser removes CR and LF characters from the
>>
>>           //        Xml data that's passed to your 'Incoming' procedure.
>>
>>
>>           http_XmlStripCRLF(*ON);
>>
>>
>>           SOAP =
>>
>>            '<?xml version="1.0" encoding="iso-8859-1" standalone="no"?>'
>>
>>           +'<SOAP:Envelope'
>>
>>           +'    xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/";'
>>
>>           +'    xmlns:tns="http://www.webserviceX.NET/";>'
>>
>>           +'<SOAP:Body>'
>>
>>           +'  <tns:ConversionRate>'
>>
>>           +'      <tns:FromCurrency>'+ %trim(Country1)
>>    +'</tns:FromCurrency>'
>>
>>           +'      <tns:ToCurrency>'+ %trim(Country2) +
>>    '</tns:ToCurrency>'
>>
>>           +'  </tns:ConversionRate>'
>>
>>           +'</SOAP:Body>'
>>
>>           +'</SOAP:Envelope>';
>>
>>
>>           http_debug(*ON);
>>
>>
>>           rc = http_url_post_xml(
>>
>>                      'http://www.webservicex.net/CurrencyConvertor.asmx'
>>
>>                             : %addr(SOAP) + 2
>>
>>                             : %len(SOAP)
>>
>>                             : *NULL
>>
>>                             : %paddr(Incoming)
>>
>>                             : %addr(rate)
>>
>>                             : HTTP_TIMEOUT
>>
>>                             : HTTP_USERAGENT
>>
>>                             : 'text/xml'
>>
>>                             :
>>    'http://www.webserviceX.NET/ConversionRate');
>>
>>
>>           if (rc <> 1);
>>
>>              http_crash();
>>
>>           else;
>>
>>              Result = %dech(Amount * rate: 12: 2);
>>
>>              http_comp(%trim(Country1) + ' ' + %char(%dec(Amount:12:2))
>>
>>                        + ' = ' + %trim(Country2) + ' '+ %char(Result));
>>
>>           endif;
>>
>>
>>           *inlr = *on;
>>
>>
>>          /end-free
>>
>>
>>         P Incoming        B
>>
>>         D Incoming        PI
>>
>>         D   rate                         8F
>>
>>         D   depth                       10I 0 value
>>
>>         D   name                      1024A   varying const
>>
>>         D   path                     24576A   varying const
>>
>>         D   value                    65535A   varying const
>>
>>         D   attrs                         *   dim(32767)
>>
>>         D                                     const options(*varsize)
>>
>>
>>         D atof            PR             8F   extproc('atof')
>>
>>         D   string                        *   value options(*string)
>>
>>
>>          /free
>>
>>              if (name = 'ConversionRateResult');
>>
>>                 rate = atof(value);
>>
>>              endif;
>>
>>          /end-free
>>
>>         P                 E
>>
>>
>>    In conclusion I need help for teach me made a right modifications in
>>    EXAMPLE18.
>>
>>
>>    Many thanks in advanced.
>>
>>
>>
>>    Mário Rodrigues
>>    Analista/Programador
>>    Promosoft Financial
>>    [1]mario.rodrigues@xxxxxxxxxxxxx
>>    Tel.: (+351) 211 107 100 Fax: (+351) 211 107 103
>>
>>      _________________________________________________________________
>>
>>    Disclaimer/Implicações legais
>>    www.promosoft.com/disclaimer/e-mail
>>
>> References
>>
>>    1. mailto:mario.rodrigues@xxxxxxxxxxxxx
>>
>>
>>
>> ------------------------------------------------------------------------
>>
>> -----------------------------------------------------------------------
>> This is the FTPAPI mailing list.  To unsubscribe, please go to:
>> http://www.scottklement.com/mailman/listinfo/ftpapi
>> -----------------------------------------------------------------------
> 
> -----------------------------------------------------------------------
> This is the FTPAPI mailing list.  To unsubscribe, please go to:
> http://www.scottklement.com/mailman/listinfo/ftpapi
> -----------------------------------------------------------------------
> 
-----------------------------------------------------------------------
This is the FTPAPI mailing list.  To unsubscribe, please go to:
http://www.scottklement.com/mailman/listinfo/ftpapi
-----------------------------------------------------------------------