Skip to main content

SAP - Debugging middleware - OSS Note 847964

Just for my note and quick reference :)

UPDATE: Quick note on ABAP to recreate BDOCis called CRM_START_REQUEST_FROM_CRM.
                         FM: CRM_SRV_R3_LOGISTIC_UPLOAD is called to update PREQ etc.


You want to debug the data exchange between CRM and R3 for service documents.

Reason and Prerequisites

Data is sent to the R3 system via the CRM Middleware. The data is sent asynchronously


Before you save the service document, enter /h and set a breakpoint in
Go into the first method, CALL METHOD cl_smw_mflow=>process_outbound (line 33), and set ls_header-dbg_mode to X (line 37). With F8, you'll return to the service order.
Now click on the Doc_flow. You'll see an outbund BDOC with the date BUS_TRANS_MSG and D01.
(If you can't see the BDOC, set the user parameter CRM_USER_LEVEL to 9 in your user parameters).
Double click the BDOC.

Enter /h and set a breakpoint at one of the following function modules:
CRM_R3_ACCOUNTING_UPLOAD passes Controlling information for service contracts and service orders
CRM_R3_SERVICECONF_UPLOAD passes Controlling information for service confirmations
CRM_R3_SRV_RESERVATION_UPLOAD is called for material reservations
CRM_R3_SALESDOCUMENT_UPLOAD is called for sales relevant information (for example, if you have sales items in a service document)
CRM_R3_SERVICE_BILLING_UPLOAD for billing of service orders in R3 (only available with the SIE add-on).
Reprocess the BDOC.
Set a breakpoint at the line IF lv_synchronous_call IS INITIAL or IF gv_synchronous_call IS INITIAL. F8 brings you to this breakpoint.
Set lv_synchronous_call/gv_synchronous_call to X and with F5 you'll enter R3 debugging. Make sure that the RFC user used for communicating between the systems is defined as a dialog user.



Popular posts from this blog

Raspberry Pi + svxlink = Low power echolink node

What is the easiest way to get echolink node up and running on raspberry pi? Surely, get a premade image which has everything inside. I've created one image which can fit into 2GB SD card for this, just follow the following steps to get it up and running:

For hardware, you need to have the following:
Raspberry Pi for sure, with a minimum 4GB SD cardA USB echolink interface, can be commercially sourced or DIY. There are many DIY schematics out there that you could follow.  Here is the configuration on how to get the things working together, courtesy of website:

For software:
Download the following prepared image from google drive, it is based on raspbian-2015-02-16 image and has pre-installed svxlink-14.08. raspi-wheezy-svxlink.img.zipUnzip the file and copy it to your SD card using the following instructions that can be found here.Boot up the RasPi, if you do not have an HDMI monitor, you may want to access the RasPi from your terminal emulator (putty or the like), connec…

Configuring TechniColor TG784N V3 (Maxis issued broadband router) to use different DNS servers

Previous write up deleted. It seems to change the DNS servers in as shown on the status, but it does not really work.

Check the following website, this seems to work:

This can be done from the WEB GUI too, go into the following configuration path:

In my example above, I'm using paid service unblock-us instead of google public DNS servers.

Debugging DMEE

I've come across many posting on the Internet (via google search), people asking on how to debug a DMEE for payment program. One of the few suggestion was to create a user exit just before the node that we would like to debug and put our breakpoint there. It seems that SAP has built-in this feature without needing us to create a user exit (available in ECC 6, have no idea if this is available on prior releases). Here is how you can put your breakpoint without any coding.

1. Display your DMEE tree using transaction: DMEE_DEBUG.

2. Click on the node that you would like to debug.
3. Go to conditions tab, you could see the Set Breakpoint button. Click to set.

4. Run the SAPFPAYM and specified the payment run date/id, payment format etc. SAP will stop at the node which you point your breakpoint at, as in 2.
5. To remove your breakpoint, just run the DMEE_DEBUG again, there is an option to delete all own breakpoints or all.