Skip to Content

Archived discussions are read-only. Learn more about SAP Q&A

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/">&lt;b&gt;xyzmo Webservice Advanced Interface&lt;/b&gt;&lt;br/&gt; Document is sent in for processing. Processing may be signing, verification, conversion...&lt;br/&gt;The document is processed via a predefined 'workflow' configuration.&lt;br/&gt;For example:&lt;dir&gt;com.xyzmo.server.documentworkflow._06_signSealPDF::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._06_signAdobePDF::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._06_signXMLdSIG::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._06_signPKCS7::_global.xml&lt;br/&gt;com.xyzmo.server.DocumentWorkflow._06_signSealPDF_dig2P::_global.xml&lt;br/&gt;com.xyzmo.server.DocumentWorkflow._06_dig2Pstandalone::_global.xml&lt;br/&gt;com.xyzmo.server.DocumentWorkflow._06_MimeParser::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._36_verify::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._56_convertFile2Pdf::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._96_verify_Type_02&lt;br/&gt;com.xyzmo.server.documentworkflow._96a_verify_Type_13&lt;/dir&gt;</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.&lt;br/&gt; PARAMETER (required) FileContainer[] 'files': contains the files to be processed. At least one FileContainer is required.&lt;br/&gt; 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.&lt;br/&gt;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.&lt;br/&gt;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/">&lt;b&gt;xyzmo Webservice Advanced Interface&lt;/b&gt;&lt;br/&gt; Document is sent in for processing. Processing may be signing, verification, conversion...&lt;br/&gt;The document is processed via a predefined 'workflow' configuration.&lt;br/&gt;For example:&lt;dir&gt;com.xyzmo.server.documentworkflow._06_signSealPDF::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._06_signAdobePDF::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._06_signXMLdSIG::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._06_signPKCS7::_global.xml&lt;br/&gt;com.xyzmo.server.DocumentWorkflow._06_signSealPDF_dig2P::_global.xml&lt;br/&gt;com.xyzmo.server.DocumentWorkflow._06_dig2Pstandalone::_global.xml&lt;br/&gt;com.xyzmo.server.DocumentWorkflow._06_MimeParser::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._36_verify::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._56_convertFile2Pdf::_global.xml&lt;br/&gt;com.xyzmo.server.documentworkflow._96_verify_Type_02&lt;br/&gt;com.xyzmo.server.documentworkflow._96a_verify_Type_13&lt;/dir&gt;</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

Tags:
Not what you were looking for? View more on this topic or Ask a question