Eingabehilfen des ABAP Dictionary
Die primäre Eingabehilfen des ABAP Dictionary sind sogenannte
Suchhilfen. Eine Suchhilfe ist ein eigenständiges Objekt des R/3-Repository, das mit dem Werkzeug Dictionary der ABAP Workbench angelegt wird, und dient speziell der Bereitstellung von Eingabehilfe auf Bildschirmfeldern. Suchhilfen können mit Tabellenfeldern und Datenelementen verknüpft werden. Statt Suchhilfen können ausnahmsweise auch noch der Inhalt von Prüftabellen, Festwerte oder statische Eingabehilfen verwendet werden:Auflistung der möglichen Eingabehilfen
Es gibt elementare und Sammelsuchhilfen. Eine
Im ABAP Dictionary können Beziehungen zwischen Tabellen durch das Anlegen von
Der Wertebereich der
Für Felder vom Typ DATS und TIMS sind Kalender- und Uhrzeithilfen vorprogrammiert, die als Eingabehilfen dienen können.
Hierarchie der Eingabehilfen des ABAP Dictionary
Suchhilfen können auf verschiedene Arten mit Feldern von Datenbanktabellen oder Komponenten von Stukturen des ABAP Dictionary verknüpft werden. Je nach Anbindung einer Suchhilfe werden verschiedene Eingabehilfen verwendet. Die folgende Liste zeigt mit steigender Priorität, welche Eingabehilfe verwendet wird:
Wenn keinerlei andere Eingabehilfen für Felder vom Typ DATS oder TIMS definiert sind, wird die Kalender- oder Uhrzeithilfe angezeigt.
Falls für ein Feld weder eine Prüftabelle noch eine Suchhilfe definiert ist, werden die eventuellen Festwerte der Domäne als Eingabehilfe angezeigt.
Für eine Suchhilfe besteht die Möglichkeit der
Falls die Prüftabelle keine Texttabelle und keine eigene Suchhilfe hat und für ein Feld keine eigene Suchhilfe angegeben ist, wird der Inhalt der Schlüsselfelder der Prüftabelle als Eingabehilfe angezeigt.
Zu Tabellen können
Texttabellen definiert werden. Ist zu einer Prüftabelle eines Felds eine Texttabelle definiert, so werden in der Eingabehilfe zusätzlich zu den Schlüsseleinträgen der zugehörige Text aus der Texttabelle in der Anmeldesprache des Benutzers angezeigt.Für eine Suchhilfe besteht die Möglichkeit der
Anbindung an die Prüftabelle eines Felds. Die Suchhilfe wird zwar mit den Werten aus der Prüftabelle angezeigt, ermöglicht aber zusätzlich den Wertetransport mehrere Parameter.Für eine Suchhilfe besteht die Möglichkeit der direkten
Wertetransport bei Verwendung von Suchhilfen
Suchhilfen haben eine Schnittstelle (Suchhilfeparameter), die steuern, welche vom Benutzer auf dem Bildschirm schon vorgenommenen Eingaben berücksichtigt und welche Felder des Bildschirmbilds mit Daten aus der gewählten Zeile der Trefferliste gefüllt werden sollen. Parameter einer Suchhilfe können als Import- und Export-Parameter klassifiziert werden. Ein Parameter kann gleichzeitig Import- und Export-Parameter sein.
Beim Aufruf der Eingabehilfe findet ein Wertetransport zwischen den Feldinhalten auf dem Dynpro und den Import-Parametern der Suchhilfe statt. Ist eine Suchhilfe an ein Datenelement oder direkt mit einem Bildschirmfeld des Dynpros angebunden, so ist dem Feld nur ein Suchhilfeparameter zugeordnet. Der Wertetransport findet dann ausschließlich zwischen dem Feld und diesem Parameter statt. Ist die Suchhilfe an das Tabellen bzw. Strukturfeld oder an die Prüftabelle des Felds angebunden, so sind eventuell mehrere Parameter der Suchhilfe mit Werten zu versorgen. Beim Aufruf der Eingabehilfe wird versucht für jeden Import-Parameter der Suchhilfe, der mit einem Tabellen- bzw. Strukturfeld verbunden ist, ein namensgleiches Feld zu ermitteln. Falls ein solches gefunden wird, wird der Inhalt des Feldes in den Suchhilfe-Parameter übertragen.
Bei Auswahl einer Zeile der Trefferliste der Suchhilfe findet ein Wertetransport zwischen den Export-Parametern der Suchhilfe den zugeordneten Bildschirmfeldern statt. Die Werte der Trefferliste werden nur in eingabebereite Felder und in Felder, die mit nur einem Export-Parameter der Suchhilfe verbunden sind, zurückgestellt.
Anpassen von Suchhilfen
Um den Standardablauf einer Eingabehilfe für ein Feld zu modifizieren, kann man ausnahmsweise einen
Suchhilfe-Exit verwenden. Ein Suchhilfe-Exit ist ein Funktionsbaustein mit vordefinierter Schnittstelle, der während der Eingabehilfe zu festgesetzten Zeitpunkten aufgerufen wird. Im Suchhilfe-Exit kann eigene Programmlogik hinterlegt werden, die den weiteren Ablauf beeinflußt oder durch eigene Ablaufschritte ersetzen kann.Zu den Daten, auf die der Funktionsbaustein Einfluß nehmen kann, gehören die Eigenschaften der Suchhilfe(n), die Selektionsoptionen zur Vorselektion der Treffermenge, die Treffermenge selbst und auch der gewünschte Folgeschritt im weiteren Ablauf.
Jedes Suchhilfe-Exit muß die gleiche Schnittstelle haben wie der Funktionsbaustein F4IF_SHLP_EXIT_EXAMPLE, der als Muster für alle anzulegenden Suchhilfe-Exits dient. Es dürfen allerdings noch weitere optionale Parameter, insbesondere beliebige Exporting-Parameter definiert werden. Genauere Informationen zur Schnittstelle kann man der Dokumentation dieses Funktionsbausteins entnehmen.
Ist einer Suchhilfe ein Suchhilfe-Exit zugeordnet, so wird dieses zu folgenden Zeitpunkten vom Hilfeprozessor aufgerufen. Diese Zeitpunkte sind die Stellen, an denen die Eingabehilfe Benutzeraktionen zuläßt denn dort sind die für den Benutzer relevanten Eingriffe in den Ablauf möglich:
Zeitpunkt SELONE, nur bei Sammelsuchhilfen. Über das Suchhilfe-Exit können hier z.B. die angebotenen Suchhilfen abhängig von der Anwendungstransaktion, von anderen Systemvariablen oder z.B. sogar vom Zustand der auf dem Dynpro befindlichen Auswahlknöpfe eingeschränkt werden. Dies ist der einzige Zeitpunkt, zu dem das Suchhilfe-Exit der Sammelsuchhilfe aufgerufen wird. Alle weiteren Zeitpunkte rufen den Suchhilfe-Exit der elementaren Suchhilfen auf.
Zeitpunkt PRESEL1. Hier kann in die Anbindung der Suchhilfe an das Dynpro eingegriffen werden, indem beispielsweise die Zuordnung von der Suchhilfe-Parameter zu Dynprofeldern geändert wird.
Zeitpunkt PRESEL. Hier kann der Inhalt des Dialogfensters anders vorbelegt oder aber das Dialogfenster vollständig unterdrückt werden.
Zeitpunkt SELECT. Die Selektion der Werte beinhaltet zwar keine Interaktion mit dem Benutzer, kann aber teilweise oder vollständig vom Suchhilfe-Exit übernommen werden. Dies kann notwendig sein, falls die Datenselektion nicht über eine SELECT-Anweisung auf eine Tabelle oder einen View realisiert werden kann.
Zeitpunkt DISP. Die Anzeige der Trefferliste kann in diesem Schritt durch den Suchhilfe-Exit beeinflußt werden. Hier besteht z.B. die Möglichkeit, abhängig von Berechtigungen bestimmte Spalten oder Zeilen vor dem Benutzer zu verbergen.
Zeitpunkt RETURN. Ein Eingriff zu diesem Zeitpunkt kann sinnvoll sein, wenn die Steuerung des weiteren Ablaufs der Transaktion vom gewählten Wert abhängig gemacht werden soll. Ein typisches Beispiel ist das Setzen von SPA/GPA-Parametern.
Bestimmte Anforderungen an die Suchhilfe kommen in ähnlicher Weise wiederholt vor. Ein Beispiel hierfür ist die Möglichkeit, die zu verwendende Suchhilfe zum F4-Zeitpunkt noch dynamisch bestimmen zu können. Daher sind für solche Fälle Standard-Funktionsbausteine definiert worden, die entweder direkt als Suchhilfe-Exits genutzt werden oder aber in Suchhilfe-Exits aufgerufen werden können. Als Namenskonvention für solche Funktionsbausteine wird das Präfix F4UT_ verwendet.
Zur Rolle der Wertetabelle von Domänen
Vor Release 4.0 konnte eine Eingabehilfe auch über die Anzeige der Wertetabelle der Domäne eines Felds erfolgen. Dieser Mechanismus ist nicht mehr möglich, da insbesondere bei Wertetabellen mit mehreren Schlüsselfeldern diese Art der Eingabehilfe zu unerwarteten Ergebnissen führen kann. Für die zusätzlichen Schlüsselfelder konnte nämlich keine Einschränkung angegeben werden, wodurch die sonst bei Prüftabellen gewohnte Berücksichtigung des Umfeldes nicht vorlag.
Wo diese Art der Wertehilfe bisher sinnvoll war, kann sie wieder eingerichtet werden, indem an die Datenelemente, welche sich auf die Domäne beziehen, eine entsprechende Suchhilfe angebunden und die Wertetabelle als Selektionsmethode angegeben wird.
Beispiel
Eingabehilfe aus dem Dictionary.
REPORT demo_dynpro_f4_help_dictionary.
TABLES demof4help.
CALL SCREEN 100.
MODULE cancel INPUT.
LEAVE PROGRAM.
ENDMODULE.
Die statische Folgedynpronummer von Dynpro 100 ist 100 und sein Layout ist wie folgt:
Den Eingabefeldern sind die Komponenten der Struktur DEMOF4HELP aus dem ABAP Dictionary. Der Funktionscode der Drucktaste ist CANCEL mit dem Funktionstyp E.
Die Bildschirmablauflogik ist:
PROCESS BEFORE OUTPUT.
PROCESS AFTER INPUT.
MODULE cancel AT EXIT-COMMAND.
Bei Auswahl der F4-Hilfe für die einzelnen Felder erhält der Benutzer folgende Eingabehilfen: