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.