Die Objekt-Selektion des Code-Inspectors kann durch einen eigenen Object Collector erweitert werden. Der Standard bietet zwar viele Selektionsmöglichkeiten, manchmal reichen dies aber einfach nicht aus.
Die notwendige Erweiterung gestaltet sich relativ einfach. Es muss lediglich eine Klasse mit dem Interface IF_CI_COLLECTOR implementiert werden. Üblicherweise wird die Super-Klasse CL_CI_COLLECTOR_ROOT vererbt. Das Interface verfügt über folgende Methoden:
Interface IF_CI_COLLECTOR Methoden
- COLLECT In dieser Methode ist die Objekt-Selektion auszuprogrammieren und dem Export-Parameter P_OBJSLIST zu übergeben. Anwender können den Objekt-Collector mit Filterwerten starten, diese Werte stehen in den Parametern P_CONFINE_* zur Verfügung.
- QUERY_ATTRIBUTES In dieser Methode werden Attribute wie der Titel der Selektion bzw. die Select-Options/Parameter definiert. Als Vorlage bei der Implementierung kann man sich die Implementierung der Klasse CL_CI_COLLECTOR_ST22 ansehen.
- GET_ATTRIBUTES/SET_ATTRIBUTES Die Methoden dienen der Kommunkation zwischen Code Inspector Framework und dier implementierten Klasse. Mittels EXPORT/IMPORT from MEMORY werden die Attribute übergeben. Auch hier kann die Klasse CL_CI_COLLECTOR_ST22 als Vorlage verwendet werden.
- DISPLAY_DOCUMENTATION Wenn der Collector über eine Dokumentation verfügt, kann hier die Anzeige der Dokumentation gestartet werden.
Interface IF_CI_COLLECTOR Attribute
Das Interface verfügt über einige Steuerparameter welche als globale Attribute umgesetzt wurden. Hier die wichtigsten Attribute:
- DESCRIPTION Kurzbeschreibung des Object Collector.
- NAME Name des Object Collectors
- HAS_DOCUMENTATION ABAP_TRUE bzw. ABAP_FALSE je nachdem, ob der Collector über eine Dokumentation verfügt. Wenn ABAP_TRUE ist im Popup der Button für die Dokumentation aktiv. (siehe Methode DISPLAY_DOCUMENTATION)
- HAS_ATTRIBUTES ABAP_TRUE/ABAP_FALSE je nachdem, ob der Collector über Attribute verfügt. Wenn ABAP_TRUE ist im Popup der Button für die Parameter aktiv.
Meine Empfehlung
Am Einfachsten und Schnellsten gestaltet sich die Implementierung, wenn man die vorhandenen Code Inspector Collectoren (CL_CI_COLLECTOR*) der SAP als Vorlage verwendet.