Show TOC Anfang des Inhaltsbereichs

Funktionsdokumentation Abhängigkeiten bei Variablen vom Typ Customer-Exit  Dokument im Navigationsbaum lokalisieren

Verwendung

Wenn Sie eine Query ausführen, welche Variablen mit dem Ersetzungspfad Customer-Exit enthält, die in Abhängigkeit von eingabebereiten Variablen gefüllt werden, dann kann es unter Umständen dazu kommen, dass der Variablen-Exit nicht ausgeführt wird oder falsche Daten selektiert werden. Um das zu verhindern, können Sie die Abhängigkeiten mit dem Parameter I_STEP steuern.

Funktionsumfang

Die Erweiterung RSR00001 (BI: Erweiterungen für globale Variablen im Reporting; Transaktion SMOD; Komponente bzw. Funktionsbaustein EXIT_SAPLRRS0_001) wird während der Berichtsausführung mehrfach aufgerufen. Dabei gibt der Parameter I_STEP an, wann die Erweiterung gerufen wird.

Es gelten folgende Werte für I_STEP:

      I_STEP = 1

Aufruf direkt vor der Variableneingabe

      I_STEP = 2

Aufruf direkt nach der Variableneingabe. Dieser Schritt wird nur dann angesprungen, wenn dieselbe Variable nicht eingabebereit ist und bei I_STEP = 1 nicht gefüllt werden konnte.

      I_STEP = 3

In diesem Aufruf können Sie die Werte der Variablen prüfen. Das Auslösen einer Exception (RAISE) führt dazu, dass das Variablenbild noch einmal erscheint. Auch I_STEP = 2 wird danach noch einmal ausgeführt.

      I_STEP = 0

Die Erweiterung wird nicht vom Variablenbild gerufen. Der Aufruf kann aus der Berechtigungsprüfung oder aus dem Monitor stammen.

Werte von anderen Variablen

Beim Aufruf der Erweiterung RSR00001 (BI: Erweiterungen für globale Variablen im Reporting) werden die aktuell verfügbaren Werte der anderen Variablen in der Tabelle I_T_VAR_RANGE übergeben. Der Typ der Tabelle ist RRS0_T_VAR_RANGE und der Zeilentyp RRS0_S_VAR_RANGE verweist auf die Struktur RRRANGEEXIT.

Diese Struktur hat folgende Felder:

Feld

Beschreibung

VNAM

Name der Variable

IOBJNM

Name des InfoObjects

SIGN

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

OPT

Operator: EQ =, BT [ ], LE <=, LT <, GE >=, GT >, CP etc.

LOW

Merkmalswert

HIGH

Merkmalswert der Obergrenze bei Intervallen bzw. Knoten-InfoObject bei Hierarchieknoten

Aktivitäten

Eine Variable, die in Abhängigkeit einer eingabebereiten Variable gefüllt werden soll, sollte nie im Schritt I_STEP = 1 gefüllt werden. Zu diesem Zeitpunkt befinden Sie sich direkt vor der Variableneingabe und Werte für die eingabebereite Variable wurden noch nicht eingegeben.

Durch Einfügen folgendes Statements können Sie erzwingen, dass die Variable nicht bei I_STEP = 1, sondern bei I_STEP = 2 ausgeführt wird:

CASE I_VNAM.

IF I_STEP <> 2.

RAISE no_processing.

ENDIF.

Beispiel

Im nachfolgenden Beispiel wird der aktuelle Monat aus einer eingabebereiten Variable MONTH genutzt, um ein Intervall zu erzeugen, das sämtliche Monate von Januar (‚01’) bis zum aktuellen Monat kumuliert. Die Customer-Exit Variable CUMMONTH erhält als Wert das Intervall.

 

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.

Ende des Inhaltsbereichs