Anfang des Inhaltsbereichs

Eingabehilfen des ABAP Dictionary Dokument im Navigationsbaum lokalisieren

Die primäre Eingabehilfen des ABAP Dictionary sind sogenannte Strukturlink 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 Strukturlink elementare Suchhilfe repräsentiert einen Suchpfad. Eine elementare Suchhilfe definiert, woher die Daten der Trefferliste gelesen werden, wie der Werteaustausch zwischen Bildschirmmaske und Selektionsmethode realisiert ist und wie der Dialog bei der Eingabehilfe gestaltet wird. Eine Strukturlink Sammelsuchhilfe besteht aus mehreren elementaren Suchhilfen. Eine Sammelsuchhilfe faßt alle Suchpfade zusammen, die für ein Feld sinnvoll sind. Die Sammelsuchhilfe stellt die Verbindung zwischen Bildschirmbild und den elementaren Suchhilfen her.

Im ABAP Dictionary können Beziehungen zwischen Tabellen durch das Anlegen von Strukturlink Fremdschlüssel abgebildet werden. Eine abhängige Tabelle heißt Fremdschlüsseltabelle und eine referierte Tabelle heißt Prüftabelle. Jedem Schlüsselfeld der Prüftabelle entspricht ein Feld der Fremdschlüsseltabelle. Ein solches Feld heißt Fremdschlüsselfeld. Für die Werteüberprüfung ist eines der Fremdschlüsselfelder als Prüffeld ausgezeichnet. Für ein Prüffeld können die Schlüsselfelder der Prüftabelle als Eingabehilfe dienen.

Der Wertebereich der Strukturlink Domänen des ABAP Dictionary kann durch Festwerte eingeschränkt werden. Diese Festwerte können als Eingabehilfe für die Felder dienen, die sich auf die Domäne beziehen. Die Wertetabelle einer Domäne wird dagegen nicht für die Eingabehilfe verwendet. Sie dient rein als Vorschlagswert für die Prüftabellen der Felder, welche sich auf die Domäne beziehen.

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:

  1. Kalender- und Uhrzeithilfen
  2. Wenn keinerlei andere Eingabehilfen für Felder vom Typ DATS oder TIMS definiert sind, wird die Kalender- oder Uhrzeithilfe angezeigt.

  3. Festwerte der Domäne
  4. Falls für ein Feld weder eine Prüftabelle noch eine Suchhilfe definiert ist, werden die eventuellen Festwerte der Domäne als Eingabehilfe angezeigt.

  5. Suchhilfe des Datenelements
  6. Für eine Suchhilfe besteht die Möglichkeit der Strukturlink Anbindung an ein Datenelement. Falls für ein Feld keine Prüftabelle und keine eigene Suchhilfe angegeben ist, wird die Suchhilfe des Datenelements angezeigt.

  7. Prüftabelle
  8. 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.

  9. Prüftabelle mit Texttabelle
  10. Zu Tabellen können Strukturlink 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.

  11. Prüftabelle mit Suchhilfe
  12. Für eine Suchhilfe besteht die Möglichkeit der Strukturlink 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.

  13. Suchhilfe des Felds

Für eine Suchhilfe besteht die Möglichkeit der direkten Strukturlink Anbindung an ein Feld einer Struktur oder einer Datenbanktabelle. Diese Anbindung hat die höchste Priorität und wird immer als Eingabehilfe angezeigt. Bei der Anbindung sollte deshalb darauf geachtet werden, daß die Suchhilfe nur solche Werte anbietet, die auch in der Prüftabelle vorhanden sind, damit es nicht zu einem Fehler bei der automatischen Eingabeüberprüfung kommt.

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 Strukturlink 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:

  1. Vor der Anzeige des Dialogfensters zur Auswahl des gewünschten Suchpfades.
  2. 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.

  3. Nach der Auswahl einer elementaren Suchhilfe.
  4. 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.

  5. Vor der Anzeige des Dialogfensters zur Eingabe der Suchbedingungen.
  6. Zeitpunkt PRESEL. Hier kann der Inhalt des Dialogfensters anders vorbelegt oder aber das Dialogfenster vollständig unterdrückt werden.

  7. Vor der Datenselektion.
  8. 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.

  9. Vor der Anzeige der Trefferliste.
  10. 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.

  11. Vor dem Zurückstellen der vom Benutzer gewählten Werte in die Eingabemaske.

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

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:

Diese Grafik wird im zugehörigen Text erklärt

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:

 

 

Ende des Inhaltsbereichs