
Bei InputFields ist es Benutzern häufig nicht klar, was genau sie eingeben sollen. Daher werden bei InputFields oft Wertehilfen angeboten. Die Wertehilfen enthalten Filteroptionen und eine große Menge möglicher Werte zur Auswahl. Hier wünschen einige Benutzer eine einfachere Benutzerführung für die Wertehilfen. Dies steht in Form von Vorschlagswerten zur Verfügung. Sie ermöglichen die Vorschlagswerte für ein InputField folgendermaßen:
Sie setzen die Eigenschaft InputField.valueSuggest auf TRUE
Sie binden den Wert der Eigenschaft valueSuggest gegen ein vorhandenes Context-Attribut mit einem ABAP-Dictionary-Typ (oder Sie definieren eine Wertemenge für das Context-Attribut)
Sie aktivieren den Applikationsparameter WDALLOWVALUESUGGEST für Ihr System oder Ihre Anwendung
Sie deaktivieren den Modus für die Barrierefreiheit
Im Gegensatz zu den klassischen ABAP-Dictionary-Suchhilfen stehen die Vorschlagswerte für InputFields immer lokal zur Verfügung, d.h. sie beeinflussen lediglich das InputField, das gerade bearbeitet wird, aber niemals andere InputFields, selbst wenn sie mit einer ABAP-Dictionary-Suchhilfe über mehrere Output-Parameter verbunden sind.
Achtung
Vorschlagswerte versuchen so schnell wie möglich zu sein. Die Vorschlagswerte lösen einen Roundtrip aus, ohne das Phasenmodell zu durchlaufen. Daher können Sie auch nicht die Resultate durch Action-Handler oder WDDOMODIFYIEW beeinflussen.
Andererseits führen die Vorschlagswerte zu mehr Verkehr und können den Server verlangsamen. Daher gibt es den Anwendungsparameter WDALLOWVALUESUGGEST. Wie alle anderen Anwendungsparameter auch, können Sie ihn über die Web-Dynpro-ABAP-Applikation WD_GLOBAL_SETTING setzen. Alternativ können Sie die Einstellungen in Ihrere Applikation oder Konfiguration übersteuern.
Beachten Sie auch, dass Vorschlagswerte keine OVS und keine frei-programmierten Wertehilfen unterstützen.
Beachten Sie zusätzlich, dass Vorschlagswerte keine Datenelemente mit einer Domäne unterstützt, die zwischen Groß- und Kleinschreibung unterscheidet.
Beachten Sie, dass nicht alle ABAP-Dictionary-Suchhilfen für die Vorschlagswerte geeignet sind. Bei komplexen ABAP-Dictionary-Suchhilfen können die Vorschlagswerte unübersichtlich werden.
Sie haben beispielsweise die Vorschlagswerte für ein InputField mit einer ABAP-Dictionary-Suchhilfe eingeschaltet, indem Sie das InputField an ein Attribut binden, dessen Typ mit einem der Felder der ABAP-Dictionary-Suchhilfe übereinstimmt. Dieses InputField wird in diesem Beispiel einfach Vorschlagsfeld genannt.
Die Funktion der Vorschlagswerte versucht nun, alle Einträge zu ermitteln, bei denen das Vorschlagsfeld mit den Benutzereingaben beginnt. Alle weiteren Felder der Suchhilfe werden konkateniert und in Form eines Beschreibungstextes neben den selektierten Werten ausgegeben.
Wenn das Vorschlagsfeld kein Schlüsselfeld ist, dann können mehrere Einträge im Suchhilfe-Resultat mit ein und demselben Vorschlagsfeld auftreten. Das Web-Dynpro-ABAP-Framework sucht lediglich einen Eintrag heraus und bringt ihn zur Anzeige. Derartige Suchhilfen sind nicht so gut für die Vorschlagswerte geeignet. Beispielsweise könnten Sie eine ABAP-Dictionary-Suchhilfe mit zwei Feldern für Mitarbeiter und Wohnort verwenden. Die Suchhilfe basisert auf einer Datenbanktabelle, in der alle Mitarbeiter mit ihrem Wohnort aufgelistet sind. In diesem Fall werden Vorschlagswerte für ein InputField, dass an Mitarbeiter gebunden ist, gut funktionieren. Ist das InputField jedoch an Wohnort gebunden, dann ist das Resultat für die Vorschlagswerte eine Liste von Städten mit irgend einem Mitarbeiter, der dort wohnt, als Beschreibungstext. Dies kann für den Benutzer verwirrend sein.
Sie finden ein Beispiel im System in der Component DEMO_VALUE_SUGGEST:
(DEMO_VALUE_SUGGEST)
Wenn der Benutzer in das InputField für die Fluggesellschaft den Wert A eingibt, wird sofot eine Drop-Down-Liste angezeigt, die alle Fluggesellschaften der Suchhilfe auflistet, die mit A beginnen. Der Stern vor einem der Einträge kennzeichnet die Fluggesellschaft, die bei diesem Benutzer in der persönlichen Werteliste enthalten ist.