Skip to Content
Technical Articles

Find the variant of a program causing dump

Note: This blog post is purposefully intended for the beginners.

Introduction

In the area of SAP interfaces, particularly report programs having complex selection screens; it practically becomes impossible to remember the screen values, every time the user run the report.

Thus to solve, this problem, SAP came up with the concept of variants long ago, which enables the user to store the selection screen value combinations into a logical object.

But, what if the report contains several selection screen variants and one of them is running into a run time dump/exception. And sometimes it becomes very difficult and crucial to know the selection screen variant in such case, particularly when the report is executed in the background.

In this blog post you, especially the beginners will learn how to find the selection screen variant of a program causing dump by navigating through transaction ST22.

Prerequisite

  • Create a test program for example “ZTEST_VARIANT_DUMP” containing as less as 2 parameters of integer type. Please find below the code for the above program used in this blog.
REPORT  ZTEST_VARIANT_DUMP.
*&---------------------------------------------------------------------*
*& Data Declaration
*&---------------------------------------------------------------------*
DATA: v_result TYPE p DECIMALS 2.

*&---------------------------------------------------------------------*
*& Selection Screen Declaration
*&---------------------------------------------------------------------*
PARAMETERS: p_num1 TYPE i, "Text: Num-1
            p_num2 TYPE i. "Text: Num-2

*&---------------------------------------------------------------------*
*& Perform calculation and print the result
*&---------------------------------------------------------------------*
v_result = p_num1 / p_num2.

"Result
WRITE: v_result.

Now if you will execute this report with a variant such that v_result should calculate (1 / 0 ), we will get a dump “COMPUTE_INT_ZERODIVIDE with exception: CX_SY_ZERODIVIDE”.

Please find below the screenshot of the selection screen:

You can maintain at least 2 selection screen variant for this report as follows:

Values in respective variants:

In case you straightaway want to check your program variant for background job, then you can save your variant for background job.

Steps

  1. Run your report and select the variant2(which will give us a dump 😛 )

2. Execute the report in foreground and expect a dump 😛

Ladies and gentlemen, let me have the honor to introduce you to the best friend of an ABAPer(or a software developer in generic :-P)….. Errorrrr!!

 

3. Now, if you want to see, for which variant we got this dump, then you can go to transaction ST22 and first find the error corresponding to your report.

Navigate to your respective error:

Double click on it.

Here you will see the details of the dump you got:

4. Now navigate to the left hand side panel Runtime Error -> BASIS developer view -> Directory of Application Tables

and here you will find the variant for which you got the dump. In our case it is VARIANT2.

Conclusion

Yes!! In this way we can find the variant for which we are getting the dump. This is a very simple way to identify the variant for such cases.

For any issues, improvements, additions or any other concerns, please feel free to contact me.

I look forward for your feedback and suggestions.

Keep learning!! Keep improving!!

2 Comments
You must be Logged on to comment or reply to a post.