Application Development Blog Posts
Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
Showing results for 
Search instead for 
Did you mean: 
Note: This blog post is purposefully intended for the beginners.


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.


  • 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.

*& 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.

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.


  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.


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!!