Saturday, March 27, 2010

Debugging an RFC or Proxy driven programs

I always used to worry, if I'm given a chance to work in any interface team how am I going to handle the error cases when any RFC program is used.


A very special thanks to Mr Vijayanand Poreddy, Yash Technologies who posted this information in internet, helped me to solve my issue in exactly 10mins itself.


When ever any remote enabled ABAP program is called remotely, through XI or Informatica or any Non-ABAP system, call any SAP RFC function module from any integration tool, it will be processed on any available application server in the backend, where a user breakpoint can not be triggered to debug the ABAP code in the backend system. The situation becomes worst to the developers/testers when they want to test the scenarios like HTTP-XI-RFC, HTTP-XI-PROXY, and FTP-XI-RFC so on. But we have a simple solution to debug the ABAP code when we are working on Remote function calls. 



PRE-REQUISITE:  
  • The backend SAP system should be ECC 6.0 with latest patch updates.
  • It is assumed that user has developed a simple scenario HTTP-XI-PROXY/HTTP-XI-RFC or any similar scenario where XI makes a RFC or Proxy call to SAP R/3 system. 
  • When developing the scenario, in the integration directory configuration, while creating the Receiver communication channel with RFC adapter or Proxy Adapter user has to use own SAP R/3 user id / password as authentication parameters with which user wants to login to the SAP system to debug the code. i.e the same user id has to use to login the sap system to set the break-point in the ABAP Code.
 
SOLUTION:
Log in to the sap system where RFC function module or Proxy class implemented.  
Open the Function module/ Proxy class and set a break-point. It is not mandatory that break-point has to set only at the initial line of the code; user can set any where in the entire code, which will be executed on RFC call.  
Execute the transaction code “SRDEBUG” (Note: this tcode is available only in latest ECC 6.0 system)  
Click on the button Activate Debugging. A pop-up screen will be opened. Fill the User-ID with which break-point has been set. (The same user-id should be used as authentication data in the XI while creating RFC communication channel).  Select the radio buttons “all Appl. Servers” and “External breakpoints already set”. Click on OK.  
Another pop-up will be opened with a message “End debugging?” Leave the pop-up as it is. (Don’t close the transaction).  
Now start sending a message from HTTP client. When the message arrives to SAP R/3 system, a debug session will be started from the point where user kept the break-point in the step-2. From this point user can start debugging the code as usual.
Thus, concluding setup of Remote ABAP debugging.