BAdI für TMS Objektfilter

Funktionsumfang 

Sofern die vordefinierten Filter für komplexe kundeneigene Szenarien nicht ausreichen sollten, können zusätzliche Prüfungen über eine kundeneigene Implementierungen des BAdIs /GAL/SH_TMS_OBJECT_FILTER erfolgen. Denkbare Szenarien sind zum Beispiel die Identifizierung von Customer-Exit Includes oder BAdI Implementierungen als kritische Objekte. Für das BAdI /GAL/SH_TMS_OBJECT_FILTER können mehrere Implementierungen angelegt werden, die über eine frei definierbare Filter ID getrennt werden. 

Für die kundeneigenen Prüfungen auf die Inhalte eines Transportauftrags sind die Methoden "CHECK_OBJECTS", zur Prüfung von Objekteinträgen,  und "CHECK_KEYS", zur Prüfung von Tabellenschlüssel, vorgesehen. Wenn für kundeneigene Prüfungen auf die Objektliste eine Bedingung eingetreten ist, muss eine Exception vom Typ /GAL/CX_TMS_OBJ_FILTER geworfen werden. Alternativ können auch mehrere Exceptions mithilfe der Ausnahme /GAL/CX_AGGREGATE_EXCEPTION gesammelt ausgegeben werden. 

Die nachstehende Tabelle bildet die Definition der Methode CHECK_OBJECTS ab.

Parameter

Parametertyp

Datentyp

Beschreibung

RULE_SET_ID

Importing

TYPE STRING

Der Parameter enthält die Filter ID der BAdI Implementierung

OBJECTS

Importing

TYPE TR_OBJECTS

Die Objektliste eines Transportauftrags als Tabelle vom Zeilentyp E071

/GAL/CX_TMS_OBJ_FILTER

Ausnahme


Allgemeine Exception des TMS Objektfilters

/GAL/CX_AGGREGATE_EXCEPTION

Ausnahme

Aggregierte Exception

Die nachstehende Tabelle bildet die Definition der Methode CHECK_KEYS ab. 

Parameter

Parametertyp

Datentyp

Beschreibung

RULE_SET_ID

Importing

TYPE STRING

Der Parameter enthält die Filter ID der BAdI Implementierung

KEYS

Importing

TYPE TR_KEYS

Schlüsseleinträge eines Transportauftrags als Tabelle vom Zeilentyp E071K

/GAL/CX_TMS_OBJ_FILTER

Ausnahme


Allgemeine Exception des TMS Objektfilters

/GAL/CX_AGGREGATE_EXCEPTION

Ausnahme

Aggregierte Exception

Vorgehensweise für die Implementierung 

Zuerst muss eine Implementierung über die Transaktion SE19 für den Enhancement Spot /GAL/SH_TMS_OBJECT_FILTER angelegt werden. Definieren Sie eine Filter ID, z. B. "CRITICAL" und implementieren Sie die gewünschten kundeneigenen Prüfungen über die Methoden CHECK_OBJECTS und CHECK_KEYS. 

Sobald die Implementierung des Enhancement Spots abgeschlossen und in alle relevanten Systeme durchtransportiert wurde, muss in dem zugehörigen TMS Objektfilter eine neue Regel vom Typ "BAdI Implementation" angelegt werden. Als BAdI Filter ID ist dabei der definierte Filterwert aus der BAdI-Implementierung zu hinterlegen. Optional kann die Option "Ausnahmen in BAdI als Meldung ausgeben" markiert und ein Meldungstyp zugeordnet werden. Ist diese Option aktiv, wird jede Ausnahme, die in der kundeneigenen Implementierung geworfen wird, als Meldung im Repository Browser angezeigt. 

Im obigem Beispiel einer Blacklist werden Objekte, die zu einer Ausnahme in der kundeneigenen Implementierung des Enancement Spots  /GAL/SH_TMS_OBJECT_FILTER mit Filter ID "CRITICAL" führen, verboten, und alle anderen Objekte werden erlaubt. Die aufgetretenen Ausnahmen werden dabei als Warnungen im Meldungsfenster des Repository Browsers angezeigt.