Show TOC

HintergrundOVS-Wertehilfe Dieses Dokument in der Navigationsstruktur finden

 

Eine Möglichkeit, die F4-Eingabehilfe zu nutzen, besteht in der Einbindung einer OVS-Wertehilfe (Object Value Selection). Die OVS-Wertehilfe ist durch eine systemseitig bereitgestellte Web-Dynpro-Component realisiert, die von jeder Anwendungs-Component verwendet werden kann (Sie finden grundlegende Informationen zum Thema Component-Verwendungen im Abschnitt Component-übergreifende Programmierung dieser Dokumentation).

Nachdem die OVS-Wertehilfe für ein Context-Attribut eingetragen wurde, steht sie automatisch für jedes InputField zur Verfügung, das an dieses Context-Attribut gebunden wird. Zur Laufzeit wird die OVS-Component immer dann automatisch instanziiert, wenn ein Benutzer bei markiertem InputField die F4-Taste drückt oder auf die Wertehilfe-Ikone neben dem InputField klickt. Auch die Erzeugung des Popups auf dem Bildschirm geschieht in diesem Moment automatisch.

System-Component WDR_OVS

Die Component WDR_OVS bietet eine View an, in der die Suchergebnisse als Tabelle dargestellt werden. Zusätzlich enthält die Component eine Selektions-View, die zur Einschränkung der Suchkriterien eingesetzt werden kann.

Sowohl die InputFields der Einschränkungsauswahl als auch die Struktur und die Inhalte der Tabelle der aus dieser Einschränkung resultierenden Ergebnis-View werden durch die verwendende Anwendungs-Component festgelegt. Daher muss die OVS-Component zu einem geeigneten Zeitpunkt wieder in die verwendende Component zurück rufen.

Ereignis OVS und sein Parameter OVS_CALLBACK_OBJECT

Der Rückruf in die verwendende Component wird durch das Ereignis OVS am Interface-Controller der OVS-Component realisiert. Dieses Ereignis wird automatisch vier mal hintereinander ausgelöst und übergibt den Parameter OVS_CALLBACK_OBJECT vom Typ IF_WD_OVS an den entsprechenden Ereignisbehandler in der Anwendungs-Component. Über das Instanzattribut PHASE_INDICATOR des Ereignisparameters wird dabei die jeweilige Phase übermittelt: Beim ersten Auslösen des Ereignisses hat das Attribut den Wert CO_PHASE_0, beim zweiten Auslösen CO_PHASE_1 usw. Im Folgenden sind die vier Zeitpunkte detailliert beschrieben.

Die Abbildung wird im Begleittext erläutert.

PHASE_INDICATOR = IF_WD_OVS=>CO_PHASE_0

Zu diesem Zeitpunkt kann die OVS-Component konfiguriert werden. So kann z.B. der Fenstertitel, die Überschrift oder die Spaltenüberschrift der Ausgabetabelle festgelegt werden. Außerdem kann jetzt eingestellt werden, ob aus der Ergebnistabelle eine oder mehrere Zeilen selektiert werden sollen. Dafür bietet der Ereignisparameter OVS_CALLBACK_OBJECT die Methode SET_CONFIGURATION, die ausdrücklich nur zu diesem Zeitpunkt benutzt werden kann, ein Aufruf dieser Methode zu einem anderen Zeitpunkt löst eine Fehlermeldung aus.

PHASE_INDICATOR = IF_WD_OVS=>CO_PHASE_1

Wenn die optionale Selektions-View der OVS-Component genutzt werden soll, muss in dieser Phase die Struktur der darzustellenden Selektionsfelder festgelegt und an die OVS-Component übergeben werden. Gleichzeitig können Inititalwerte für die Selektionsfelder mit übergeben werden. Die Methode SET_INPUT_STRUCTURE steht hierfür zur Verfügung. Auch für diese Methode gilt: Wird sie zu einem anderen Zeitpunkt aufgerufen, wird eine Fehlermeldung ausgelöst. Wenn die Methode überhaupt nicht gerufen wird, entfällt die Anzeige der Selektions-View und die Ergebnis-View wird direkt angezeigt.

PHASE_INDICATOR = IF_WD_OVS=>CO_PHASE_2

In dieser Phase muss die Ergebnismenge der Suche von der verwendenden Component ermittelt werden. Wurden auf einer Selektions-View Werte für die Selektionsparameter eingegeben, stehen diese nun als Instanzattribut QUERY_PARAMETERS des Ereignisparameters OVS_CALLBACK_OBJECT zur Verfügung.

Außerdem muss die Anwendungs-Component die Tabelle mit den zur Auswahl stehenden Werten an die OVS-Component übergeben. Dies wird mit Hilfe der Methode SET_OUTPUT_TABLE des Ereignisparameters OVS_CALLBACK_OBJECT realisiert.

Der Aufruf von SET_OUTPUT_TABLE ist zwingend und muss in dieser Phase erfolgen.

PHASE_INDICATOR = IF_WD_OVS=>CO_PHASE_3

Das Ergebnis der Suche wurde auf der Ergebnis-View der OVS-Component dargestellt. Der Anwender hat nun die Möglichkeit, eine oder mehrere Zeilen der Tabelle auszuwählen. Letzteres ist allerdings nur dann möglich, wenn über die Methode SET_CONFIGURATION in der ersten Phase des Ablaufs eine Mehrfachselektion für die Ergebnistabelle konfiguriert wurde. In der Standard-Konfiguration der OVS-Component kann nur eine Zeile der Ergebnistabelle ausgewählt werden. Der Inhalt der ausgewählten Zeile steht dann im Instanzattribut SELECTION des Ereignisparameters OVS_CALLBACK_OBJECT zum Auslesen bereit.

Anbindung der Wertehilfe an ein Context-Attribut

Um eine OVS-Wertehilfe an ein Context-Attribut anzubinden sind folgende Schritte nötig:

  1. Tragen Sie in Ihrer Anwendungs-Component eine Component-Verwendung für die OVS-Component ein.

  2. Legen Sie diese Verwendung auch auf der Registerkarte Eigenschaften der betreffenden View fest.

  3. In der Eigenschaftentabelle jedes einzelnen Context-Attributs der View können Sie nun in der Zeile Wertehilfe-Modus den Eintrag Object Value Selector auswählen. Mit einer neuen Zeile in der Eigenschaftentabelle müssen Sie die für die Wertehilfe vorgesehene Component-Verwendung eintragen.

    Sie können diese Einstellungen auch bereits beim Anlegen des Attributs vornehmen.

  4. Für die View Ihrer Anwendungs-Component muss ein Ereignisbehandler für das Ereignis OVS der verwendeten OVS-Component angelegt werden. Dabei werden Sie weitgehend unterstützt, da ein Gerüst an Quelltext bereits durch die Zuordnung der Behandlermethode zum Ereignis OVS generiert wird.

Context-Change-Log bei OVS-Wertehilfen

Auch bei der Verwendung einer OVS-Wertehilfe können Sie die Context-Change-Log-Funktion nutzen. Beachten Sie jedoch Folgendes:

In der Phase PHASE_INDICATOR = IF_WD_OVS=>CO_PHASE_3 müssen die ausgewählten Daten explizit in die Change-Log-Tabelle eingetragen werden, da dies automatisch nur für Benutzereingaben geschieht. Außerdem enthält das Paket SWDP_DEMO in Ihrem System eine Beispielanwendung DEMO_VALUE_HELP, an der Sie sich bei der Programmierung Ihrer Anwendung orientieren können.