Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

Although this is an old topic, I've continued to receive questions on this subject. The question is "how can I read the SOAP header elements in PI and use them in mapping?"

Then, the follow-up question always related to how do I write an user-defined function in Message Mapping to access those header information, which might be accessible through the Global Container object?

But, in fact, the solution is much simpler. No coding is required. It is merely a check in the SOAP communication channel configuration.

The SOAP sender communication channel gives us an option to send the complete SOAP XML, including the header. Then, we just need to construct a message type in the Enterprise Service Repository (ESR) or Integration Repository (IR) to represent the XML. With that, message mapping can be performed.

Let us use the example below.

By default, the communication channel configuration is below:

The XML of the SOAP message is below, when retrieved from SXBM_MONI in PI:

By making two changes we can send the complete XML of the SOAP message, including the header:

  1. Check the option, "Do Not Use SOAP Envelope":

  2. Add "nosoap=true" to the SOAP's WSDL URL:

As a result, the XML payload as seen in SXMB_MONI:

Reference: Configuring the Sender SOAP Adapter: http://help.sap.com/saphelp_nw04/helpdata/en/fc/5ad93f130f9215e10000000a155106/frameset.htm

17 Comments