Web service listener on SAP BC 4.6

Hi all,

I am new in SOAP so can you help me somebody with this issue?

When saw example in WMPublic package for web service listener. There are 2 input fileds: soapRequestData(object), soapResponseData(object) and one output parameter: soapResponseData(object) . I am using SOAP default processor.
But when I extract WSDL for our partner(using Apache-Axis) it has strange format I when I get message from him I can’t get soap body from message.

Here is structure:

<soapenv:Envelope xmlns:soapenv=“http://schemas.xmlsoap.org/soap/envelope/” xmlns:xsd=“XML Schema” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”>
<ns1:ediSalesOrder soapenv:encodingStyle=“http://schemas.xmlsoap.org/soap/encoding/” xmlns:ns1=“http://www.xyz.com/eB2/edi”>



[/highlight] Question is::
Do I need these input and output parameters on my flow?
How can I get body from SOAP? only with “getBody” flow?
What’s the formast of SOAP envelope?

Can somebody send me example of web service listener which is functional for calling from Java or Apache-Axis?

Thank you.


Soap messages are sent to IS on one of two URL’s:

  • Soap-rpc messages should be sent to the soap-rpc processor at http://{hostname:port}/soap/rpc
  • Document/literal or soap-msg soap messages should be sent to http://{hostname:port}/soap/default

If you want to expose an IS Flow or java service as a document/literal soap message, you have to first create a wrapper service for it that will process the soap message to extract the payload of the soap message, convert it to a document (IData) and invoke your “wrapped” service. The wrapper service is the one that must accept an object-type input called “soapRequestData” and return an object-type oupt called “soapResponseData”.

If you need to expose a large number (OK, more than three) Flow services as document / literal web services, you will probably want to create a custom soap processor. See other posts in this forum for discussion on how to create a custom soap processor to overcome the limitations of Integration Server document/literal web services support. Each custom soap processor will have its own URL in the format http://{hostname:port}/soap/{directive} where directive is the name that you give when you register your custom soap processor with IS.


Thank you MCarlson,

but I am not sure what you mean. I am using SOAP Default processor
I want to know if I have to add soapRequestData(object-type) and soapResponseData(object-type) also to input and output(soapResponseData) parameters page.
Or these parameters are like “imaginary” parameters which SOAP Default processor automatically sends to destination(my) flow?
When I had these parameters as an input/output parametrs in input/outpage in Developer on my flow I was not able to get body from envelope.
My flow starting with getBody from pub/soap/utils and I have also soapResponseData there - pasted.

thanks for answer

Are you asking about how to generate the WSDL that describes a document/literal (soap-msg) web service in IS?

If so, once you have manufally created a wrapper service for the service that you want to expose, then you can use Developer’s Tools->Generate WSDL menu option to create a WSDL file for the wrapper service. Before doing this you should have created document types that contain a single document type reference corresponding to the documents that are the input and output of the service you want to expose. You should have also populated the Universal Name settings of the wrapper service with a namespace and local name.

When prompted to enter the input and output document types, browse to the document types corresponding to the input and output messages.

You do NOT need to specify the soapRequestData and soapResponseData objects in the WSDL generation process.

There are many posts in the Web Services forum here that discuss the requirements for a wrapper service. In addition, the SOAP Programmer’s Guide and Web Services Developer’s Guide are also useful.



I’m with the same problem
Someone has already found a solution?