Issue using CXF soap to send idoc xml to SAP ERP

We created our own function module which just takes an arbitrary idoc in xml format as input parameter. The function module maps the idoc xml to the corresponding IDOC structure in SAP and afterwards calls standard function modules to send the IDOC to core SAP.

In transaction we had to set “trigger immediately” because of business restrictions.

When we are sending IDOC messages with the below code (fragment) we could detect different results for the status of the IDOC in WE02 when varying the timeout values.

If the timeouts are big enough the idoc gets status IDOC processed was wanted.

Decreasing the timeouts leads first to an IDOC with status 64 (Doc ready to be transferred to application) and it will never be processed without other actions.

Further decreasing the timeout leads to a situation where the IDOC could not at all be saved in SAP.

In any case the timeout exception looks like

 

With the special code above it is possible to set the timeout values to your needs so that the IDOCs are processed like wanted in SAP.

Attention: In the case of a timeout exception you can not simply resent the IDOC because of the above described scenarios. Before sending the IDOC again further checks have to done:

For example:

1) Check the table EDIDC

2) Get the content of the last IDOCs send to the system (info from 1) and check the content using a remote enabled function module with the following code

One thought on “Issue using CXF soap to send idoc xml to SAP ERP

Leave a Reply

Your email address will not be published. Required fields are marked *

This blog is kept spam free by WP-SpamFree.