When IDOC processing raises request errors like " execute_processing 1008:SRT: Couldn't create Object: ("ICF Error when creating object for HTTP DESTINATION "xxx": UNKNOWN ERROR")", it's difficult to find the root cause for two reasons:
- pressing "Process" again on the failed IDOC will not actually trigger reprocessing but simplly show the previous error message. This is because, report RBDAGAIN (which is triggered in the background) silently filters out HTTP errors, unless you check the "HTTP Communication Error" checkbox (which the "Process" button doesn't do)
- the processing itself is buried deep in the standard
The best way to reprocess these IDOCs is by executing RBDAGAIN in SE38 with the following options:
- IDOC => enter the IDOC number you want to reprocess
- uncheck import in background
- check HTTP Communication Error
- Execute
- Then press Process and you'll be able to debug the processing and your session breakpoints will be hit
Here are some places to set breakpoints:
- program SAPLEDI7, form SET_SOAP_CLIENT: this is where the construction of the HTTP request starts
- class CL_SOAP_APPLICATION_CLIENT, method IF_SOAP_APPLICATION_CS~EXECUTE_PROCESSING: this is where the execution of the prepared HTTP requests starts
- the actual sending (including reading connection details from RFC etc.) is in class CL_SOAP_HTTP_TPBND_ROOT, method IF_SOAP_TRANSPORT_BINDING~SEND