Skip to main content

Debugging for Functional Consultants Part - 1

There is a common requirement from functional consultants on how to do debugging. Below is the raw info on the debugging and different ways of doing it.

Debugging is a common tool used by the technical team to analyze dumps during transactional processing and program behavior. Through debugging we will come to know the run values of the program as well.

Debugging can be performed in two different ways :

1. Debugging by watchpoint
2. Debugging by Breakpoint

Debugging based on watchpoint

At times, we are unsure about how the value is getting determined for a variable then we can put the watchpoint on the variable deriving the value so that the system will stop at all points where the value is being fetched for the variable.

Debugging based on Breakpoint

Debugging based on break point will be done only when the consultant is aware of the exact piece of code where a breakpoint can be enabled.

The breakpoint can be done in two ways.
  • Internal breakpoint
  • External breakpoint
Internal Breakpoint
  • Static Breakpoints
Static breakpoints are always user-independent if there is no specification of a user name. Once a user has inserted the statement BREAK-POINT or BREAK name in an ABAP program, the system always interrupts the program at that point for that user or only for the user name

It is not recommended to use statement BREAK-POINT as it will be applicable for all users and will annoy other users as breakpoint will be triggered for them as well.

Just for that reason, the technical consultant should use statement BREAK as this will enable breakpoint on specific user and breakpoint will not be triggered for other users.

External Breakpoint
  • Dynamic Breakpoints
Dynamic breakpoints are user-specific. Therefore, you should use them if you only want the program to be interrupted when you run it yourself, not when it is being executed by other users. All dynamic breakpoints are deleted when you log off from the R/3 System.
The breakpoint can be enabled at below different levels: 
  • Breakpoints at statements
  • Breakpoints at subroutines
  • Breakpoints at function modules
  • Breakpoints at methods
  • Breakpoints at messages (Error, Warning or Information)




Comments

Popular posts from this blog

M7021 : Deficit of stock relevant error message during Material Document Cancellation

Issue : When posting a Cancellation for a Material Document in transaction MIGO, you see error 'M7021 Deficit of not stock relevant' although the Purchase Order is setup with an Account assignment. Material / Batch is not managed on Stock Level even though material is valuated. Resolution : The issue is due to program bug and require to implement note - 2502183 - Slog: correction for quantity check. This note is applicable for S/4 HANA 1610 (S4CORE 101) and 1709 (S4CORE 102).

Add Custom fields to sales order screen in Additional Tab B - Header

SAP has provided Additional data Tab A and Tab B for the addition of custom fields to the Standard sales order screen. Screens 8309, 8310 are used for header level and 8459,8460 for item level. Prior to this, we are required to append the custom fields of the Sales order sub screen in VBAK or VBAP. Pass Custom field values in PAI of screen 8309 within Chain statement CHAIN. FIELD: VBAK-<Custom Field 1>         VBAK-<Custom Field 2>         VBAK-<Custom Field 3> ENDCHAIN. Thank you.

User Exits in Delivery

FORM routine USEREXIT_REFRESH_DOCUMENT (include MV50AFZ1) Purpose The FORM routine USEREXIT_REFRESH_DOCUMENT is used for the initialization of your own data areas before the processing of a new delivery document. Call The routine is called from within the standard routine BELEG_DATEN_INIT (SAPMV50A). Basically, the data initialization is called on the following occasions: FORM routine USEREXIT_DELETE_DOCUMENT (include MV50AFZ1) Purpose If a delivery is deleted, you can delete your own dependent data using this FORM routine. Call The FORM routine is called from the FORM routine BELEG_LOESCHEN (SAPMV50A) if the document can be deleted completely. Immediately after the FORM routine  USEREXIT_DELETE_DOCUMENT is called, the document backup is called for which the logically deleted delivery is removed from the database. FORM routine USEREXIT_READ_DOCUMENT (include MV50AFZ1) Purpose The exit is used to make your own data availabl...