WebService 4.7 / WAS 620 XSTRING BASE 64
Hi all,
I am working on WebAS 620 and have to call from ABAP side a Webservice via SOAP.
The webservice belongs to a third party tool and is placed on a different server in the internet.
This webservice contains coomlpex parameter. I will include the WSDL to this thread.
Reading the documentation it says that every webservice can be called from ABAP on WAS 602.
(but i don't know how ...)
One of the parameter is a table which can contain many pdf streams. This streams have to be
in BASE64 format
I found an example (SMS) at the forum/blogs, but i didn't found a way to manage this complex
parameter in a WebService call on 620 ...
Do you know if this is possible and how I can do it?
Method Parameters:
Name -Type -Mandatory -Description
*files FileContainer -required -The files to process
*FileContainer. -base64 -required -The base64 encoded file
SourceFileContent
*FileContainer. -string [ ] -required -file name of the file to
SourceFileName be processed
*FileContainer. -int -for xyzmoSeal ONLY to manage
CustomId attachments (see u201Cmanage
Attachmentsu201D)
*FileContainer. -int -for xyzmoSeal ONLY to manage
CustomRefId attachments (see u201Cmanage
Attachments")
*FileContainer. -int -readonly -status of this file in the response
Status only.
*selectedWorkflow -string [ ] -selected workflow name as
result from Name Method x
WSDL
<?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://com.xyzmo.server.inputinterface.webservice/" 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://com.xyzmo.server.inputinterface.webservice/" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><b>xyzmo Webservice Advanced Interface</b><br/> Document is sent in for processing. Processing may be signing, verification, conversion...<br/>The document is processed via a predefined 'workflow' configuration.<br/>For example:<dir>com.xyzmo.server.documentworkflow._06_signSealPDF::_global.xml<br/>com.xyzmo.server.documentworkflow._06_signAdobePDF::_global.xml<br/>com.xyzmo.server.documentworkflow._06_signXMLdSIG::_global.xml<br/>com.xyzmo.server.documentworkflow._06_signPKCS7::_global.xml<br/>com.xyzmo.server.DocumentWorkflow._06_signSealPDF_dig2P::_global.xml<br/>com.xyzmo.server.DocumentWorkflow._06_dig2Pstandalone::_global.xml<br/>com.xyzmo.server.DocumentWorkflow._06_MimeParser::_global.xml<br/>com.xyzmo.server.documentworkflow._36_verify::_global.xml<br/>com.xyzmo.server.documentworkflow._56_convertFile2Pdf::_global.xml<br/>com.xyzmo.server.documentworkflow._96_verify_Type_02<br/>com.xyzmo.server.documentworkflow._96a_verify_Type_13</dir></wsdl:documentation> <wsdl:types> <s:schema elementFormDefault="qualified" targetNamespace="http://com.xyzmo.server.inputinterface.webservice/"> <s:element name="Process"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="files" type="tns:ArrayOfFileContainer" /> <s:element minOccurs="0" maxOccurs="1" name="selectedWorkflowName" type="s:string" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfFileContainer"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="FileContainer" nillable="true" type="tns:FileContainer" /> </s:sequence> </s:complexType> <s:complexType name="FileContainer"> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="SourceFileContent" type="s:base64Binary" /> <s:element minOccurs="0" maxOccurs="1" name="SourceFileName" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="CustomId" type="s:string" /> <s:element minOccurs="0" maxOccurs="1" name="CustomRefId" type="s:string" /> <s:element minOccurs="1" maxOccurs="1" name="Status" type="s:int" /> </s:sequence> </s:complexType> <s:element name="ProcessResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ProcessResult" type="tns:ProcessResult" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ProcessResult"> <s:sequence> <s:element minOccurs="1" maxOccurs="1" name="ProcessingPolicyStatus" type="s:int" /> <s:element minOccurs="0" maxOccurs="1" name="ProcessedFiles" type="tns:ArrayOfFileContainer" /> </s:sequence> </s:complexType> <s:element name="ProcessMail"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="mimeMessage" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:complexType name="ArrayOfString"> <s:sequence> <s:element minOccurs="0" maxOccurs="unbounded" name="string" nillable="true" type="s:string" /> </s:sequence> </s:complexType> <s:element name="ProcessMailResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="ProcessMailResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> <s:element name="GetWorkflowList"> <s:complexType /> </s:element> <s:element name="GetWorkflowListResponse"> <s:complexType> <s:sequence> <s:element minOccurs="0" maxOccurs="1" name="GetWorkflowListResult" type="tns:ArrayOfString" /> </s:sequence> </s:complexType> </s:element> </s:schema> </wsdl:types> <wsdl:message name="ProcessSoapIn"> <wsdl:part name="parameters" element="tns:Process" /> </wsdl:message> <wsdl:message name="ProcessSoapOut"> <wsdl:part name="parameters" element="tns:ProcessResponse" /> </wsdl:message> <wsdl:message name="ProcessMailSoapIn"> <wsdl:part name="parameters" element="tns:ProcessMail" /> </wsdl:message> <wsdl:message name="ProcessMailSoapOut"> <wsdl:part name="parameters" element="tns:ProcessMailResponse" /> </wsdl:message> <wsdl:message name="GetWorkflowListSoapIn"> <wsdl:part name="parameters" element="tns:GetWorkflowList" /> </wsdl:message> <wsdl:message name="GetWorkflowListSoapOut"> <wsdl:part name="parameters" element="tns:GetWorkflowListResponse" /> </wsdl:message> <wsdl:portType name="xyzmoWebServiceSoap"> <wsdl:operation name="Process"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Method executes the selected workflow, for each fileContainer entry.<br/> PARAMETER (required) FileContainer[] 'files': contains the files to be processed. At least one FileContainer is required.<br/> PARAMETER (optional) string 'selectedWorkflowName': holds the selected workflow name as a result from method GetWorkflowList(). If no value is given the default value in the Interface Configuration is used.</wsdl:documentation> <wsdl:input message="tns:ProcessSoapIn" /> <wsdl:output message="tns:ProcessSoapOut" /> </wsdl:operation> <wsdl:operation name="ProcessMail"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Method executes the 06_MimeParser workflow, for each mimeMessage entry.<br/>PARAMETER (required) string[] 'mimeMessage': string representation of mime message to be parsed.</wsdl:documentation> <wsdl:input message="tns:ProcessMailSoapIn" /> <wsdl:output message="tns:ProcessMailSoapOut" /> </wsdl:operation> <wsdl:operation name="GetWorkflowList"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">Method returns all permitted workflows (as string array) for the calling URL respectively port.<br/>No PARAMETERS.</wsdl:documentation> <wsdl:input message="tns:GetWorkflowListSoapIn" /> <wsdl:output message="tns:GetWorkflowListSoapOut" /> </wsdl:operation> </wsdl:portType> <wsdl:binding name="xyzmoWebServiceSoap" type="tns:xyzmoWebServiceSoap"> <soap:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="Process"> <soap:operation soapAction="http://com.xyzmo.server.inputinterface.webservice/Process" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="ProcessMail"> <soap:operation soapAction="http://com.xyzmo.server.inputinterface.webservice/ProcessMail" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="GetWorkflowList"> <soap:operation soapAction="http://com.xyzmo.server.inputinterface.webservice/GetWorkflowList" style="document" /> <wsdl:input> <soap:body use="literal" /> </wsdl:input> <wsdl:output> <soap:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:binding name="xyzmoWebServiceSoap12" type="tns:xyzmoWebServiceSoap"> <soap12:binding transport="http://schemas.xmlsoap.org/soap/http" /> <wsdl:operation name="Process"> <soap12:operation soapAction="http://com.xyzmo.server.inputinterface.webservice/Process" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="ProcessMail"> <soap12:operation soapAction="http://com.xyzmo.server.inputinterface.webservice/ProcessMail" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> <wsdl:operation name="GetWorkflowList"> <soap12:operation soapAction="http://com.xyzmo.server.inputinterface.webservice/GetWorkflowList" style="document" /> <wsdl:input> <soap12:body use="literal" /> </wsdl:input> <wsdl:output> <soap12:body use="literal" /> </wsdl:output> </wsdl:operation> </wsdl:binding> <wsdl:service name="xyzmoWebService"> <wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"><b>xyzmo Webservice Advanced Interface</b><br/> Document is sent in for processing. Processing may be signing, verification, conversion...<br/>The document is processed via a predefined 'workflow' configuration.<br/>For example:<dir>com.xyzmo.server.documentworkflow._06_signSealPDF::_global.xml<br/>com.xyzmo.server.documentworkflow._06_signAdobePDF::_global.xml<br/>com.xyzmo.server.documentworkflow._06_signXMLdSIG::_global.xml<br/>com.xyzmo.server.documentworkflow._06_signPKCS7::_global.xml<br/>com.xyzmo.server.DocumentWorkflow._06_signSealPDF_dig2P::_global.xml<br/>com.xyzmo.server.DocumentWorkflow._06_dig2Pstandalone::_global.xml<br/>com.xyzmo.server.DocumentWorkflow._06_MimeParser::_global.xml<br/>com.xyzmo.server.documentworkflow._36_verify::_global.xml<br/>com.xyzmo.server.documentworkflow._56_convertFile2Pdf::_global.xml<br/>com.xyzmo.server.documentworkflow._96_verify_Type_02<br/>com.xyzmo.server.documentworkflow._96a_verify_Type_13</dir></wsdl:documentation> <wsdl:port name="xyzmoWebServiceSoap" binding="tns:xyzmoWebServiceSoap"> <soap:address location="http://testlab.xyzmo.com:50006/com.xyzmo.server.inputinterface.webservice.asmx" /> </wsdl:port> <wsdl:port name="xyzmoWebServiceSoap12" binding="tns:xyzmoWebServiceSoap12"> <soap12:address location="http://testlab.xyzmo.com:50006/com.xyzmo.server.inputinterface.webservice.asmx" /> </wsdl:port> </wsdl:service> </wsdl:definitions>
Best regards,
Michael Handschuh