Show TOC

Dependencies in Customer Exit VariablesLocate this document in the navigation structure

If you execute a query containing variables with the processing type Customer Exit, and these variables are filled depending on input-enabled variables, the variable exit will sometimes not run, or incorrect data will be selected. To avoid this, you can control the dependencies using parameter I_STEP.

Defining when the enhancement is called

Enhancement RSR00001 (customer exit Global Variables in Reporting; transaction SMOD; component or function module EXIT_SAPLRRS0_001) is called several times during execution of the report. Parameter I_STEP dictates when the enhancement is called.

The following table provides an overview of the values of parameter I_STEP:

Table 1: Value for Parameter I_STEP

Value for Parameter I_STEP

Description

I_STEP = 1

Call directly before the variable is entered.

I_STEP = 2

Call directly after the variable is entered.

This step is only executed if the same variable is not input-enabled and could not be filled for I_STEP = 1.

I_STEP = 3

Use this call to check the values of the variables. If an exception (RAISE) is triggered, the Variables screen appears again. I_STEP = 2 is then executed again.

I_STEP = 0

The enhancement is not called from the variables screen. The call can originate from the authorization check or from the monitor.

A variable to be filled depending on an input-enabled variable must not be filled in step I_STEP = 1. You have not yet entered values for the input-enabled variables. No variables have been entered yet.

By inserting the following statement, you can force execution of the variable in I_STEP = 2 instead of I_STEP = 1.

Sample Code
CASE I_VNAM.
...
IF I_STEP <> 2.
RAISE no_processing.
ENDIF.
...
Specifying values of other variables

When calling enhancement RSR00001 (customer exit Global Variables in Reporting), the system submits the current values for the other variables in table I_T_VAR_RANGE. The table type is RRS0_T_VAR_RANGE, and row type RRS0_S_VAR_RANGE. references structure RRRANGEEXIT.

The following table provides an overview of the values of the fields in structure RRRANGEEXIT:

Table 2: Field in Structure RRRANGEEXIT
Field Description

VNAM

Name of the variable

IOBJNM

Name of the InfoObject

SIGN

(I)ncluding [ ] or (E)xcluding ] [

OPT

Operator: EQ =, BT → →, LE →→, LT →, GE →→, GT →, CP, and so on

LOW

Characteristic value

HIGH

Characteristic value of upper limit for intervals or node InfoObject for hierarchy nodes

In the following example, the current month is taken from an input-enabled variable MONTH. This is then used to generate an interval that cumulates all months from January ('01') up to the current month. The customer exit variable CUMMONTH contains the interval as the value.

Sample Code
DATA: L_S_RANGE TYPE RSR_S_RANGESID.
DATA: L_S_VAR_RANGE TYPE RRRANGEEXIT.
CASE I_VNAM.
WHEN 'CUMMONTH'.
IF I_STEP = 2. "after the popup
READ TABLE I_T_VAR_RANGE INTO L_S_VAR_RANGE WITH KEY VNAM = 'MONTH'.
IF SY-SUBRC = 0.
CLEAR L_S_RANGE.
L_S_RANGE-LOW = LOC_VAR_RANGE-LOW(4)."low value, z. B. 200601
L_S_RANGE-LOW+4(2) = '01'.
L_S_RANGE-HIGH = LOC_VAR_RANGE-LOW. "high value = input
L_S_RANGE-SIGN = 'I'.
L_S_RANGE-OPT = 'BT'.
APPEND L_S_RANGE TO E_T_RANGE.
ENDIF.
ENDIF.
ENDCASE.