One of the more confounding aspects of developing in the SAP space is the lack of good, low-level, helpful instructions. While this post is merely regurgitating information that is readily available elsewhere, it will be done in a manner that (hopefully) will actually be useful to vast majority of ABAP developers out there that, like me, find a lot of SAP’s implementation of web services on the ABAP stack confusing.
Debugging a web service on the ABAP stack of SAP Web Application Server is a very useful procedure to know. Here’s how you do it.
Note: This example is for ECC 5.0
- Locate the web service definition in the HTTP Service Hierarchy. There are two ways to do this:
- Regardless of the method used to get to the service definition for your web service enabled function module, you should have it selected as in this example.
- Next, enable the debugger by selecting the Edit\Debugging\Activate Debugging menu.
- In the ensuing dialog box, confirm the debugging options (the defaults are usually OK).
- To exercise the debugger, test your web service. For this example, I will use the SAP WAS web service test tool, but the application calling the web service can be anything as long as it connects with the debugger’s user ID.
- When the web service is executed, the debugger will start in a new SAPGUI session (make sure you are already logged in via the SAPGUI prior to executing the web service).
- In the debugger, choose Breakpoints\Breakpoint at\Function Module from the menu to create a new breakpoint.
- Specify the function module that implements your web service. In the debugger, press F8 to run to your newly created breakpoint.
If the debugger doesn’t get to your breakpoint, the most likely culprit is malformed input XML. Check the payload of the message to ensure that it conforms to the specifications of the web service.
Once the debugger has started, it is just like debugging any other SAP application. If you have any specific tips or tricks regarding debugging web services, please share them in the comments section of this blog.