Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
former_member181985
Active Contributor
Hello Everyone !!

Well, it has been a long while I am not blogging in SAP community. So, I hope this blog will help me to fuel myself and gain some momentum to post few blogs in the community ?

In this blog, I will mainly focus on a new feature - on how to track Asynchronous IDOC's pushed from SAP CPI to SAP backend ERP over IDOC/SOAP adapters.

Scenario: Source System --> SAP CPI (via IDOC/SOAP Adapter) --> SAP Cloud Connector --> SAP ERP

In our traditional SAP PI/PO middleware case, the SAP PI message Id would be part of SAP Idoc control record EDI archive key i.e., EDI_DC40 - ARCKEY (shown below). So this means that the standard SAP inbound idoc processing Function Module is considering SAP PI message ID header field

urn:sap.com:msgid=<SAP PI Message ID>

e.g., urn:sap.com:msgid=1B575D45472848AA92CA4588E2E8FDF3

However, in case of SAP CPI we have a different message ID header SAP_MessageProcessingLogID and hence the CPI message doesn't get logged in SAP ERP idoc control record ARCKEY (probably the FM module is not designed for this yet). And tt seems like the SAP inbound idoc processing Function module generates a new 32 bit Hex Id

So, the trick is to set standard SAP header: SapMessageId with a value same as CPI message ID header: SAP_MessageProcessingLogID. This can be done in the mapping step with a groovy script or with help of a content modifier step as shown below



Of course, the same can be achieved by mapping /IDOC/EDI_DC40/ARCKEY field with a value urn:sap.com:msgid=< CPIMessageID > in CPI message mapping . Please note that static string urn:sap.com:msgid= (prefix) is required for ARCKEY, otherwise the idoc adapter will throw an error such as the below

org.apache.cxf.binding.soap.SoapFault: E/EA/728/SOAP_MSGID_PREFIX_INVALID (IDoc SOAP Namespace - Violation (SOAP_MSGID_PREFIX_INVALID))

Result:



In CPI Moni,



So, we can search for the corresponding IDOC number in SAP ERP using CPI message Id (Shown below).

Tcode: WE02 (search with *CPIMessageID )





References:

 

That's all ?. Hope this helps you !!

 

 
5 Comments
Labels in this area