Datenbindung
UI-Elemente besitzen eine Reihe von Eigenschaften. Für alle UI-Elemente, die zur Übergabe oder Darstellung von Daten genutzt werden können, beschreibt jeweils eine dieser Eigenschaften den Wert einer Benutzereingabe bzw. die Quelle der darzustellenden Daten.
Diese Eigenschaften können entweder zur Design-Zeit durch die Angabe eines Festwertes statisch festgelegt werden oder sie können auf ein Context-Element verweisen. Letzteres wird Bindung an ein Context-Element genannt. Zur Laufzeit wird dann der Wert des Context-Elementes angezeigt bzw. der Inhalt eines Eingabefeldes vom Bildschirm in das zum View-Element gehörige Context-Element transportiert.
Zwei einfache Beispiele veranschaulichen diese Prinzip:
Der Wert
eines Eingabefeldes (die Eigenschaft value) wird
an ein Context-Attribut gebunden welches den vom Benutzer eingegebenen Wert
aufnimmt und ihn zur weiteren Bearbeitung vorhält.

Der Wert der Eigenschaft DataSource des UI-Elements Tabelle wird an einen Context-Knoten gebunden.

Die beiden oben dargestellten Beispiele skizzieren zwei nahe liegende Anwendungsfälle: Den Transport eines Eingabewertes sowie die Versorgung eines UI-Elementes mit Anwendungsdaten. Zusätzlich lassen sich jedoch viele weitere Eigenschaften eines UI-Elementes an ein Context-Element binden. Als Beispiel sei and dieser Stelle noch die Länge eines Textfeldes oder die Breite einer Tabelle erwähnt. Ob der Wert einer Eigenschaft eines UI-Elementes festgelegt wird und damit in jeder Darstellung der View konstant ist oder ob der Wert an ein Context-Element gebunden wird, hängt von Gestaltung der Web-Dynpro-Component ab. Für Eigenschaften wie etwa value oder dataSource der beiden o.g. UI-Elemente ist eine Bindung an ein Context-Element zwingend vorgesehen.
Im Referenzteil dieser Dokumentation
finden Sie eine tabellarische Beschreibung aller verfügbaren UI-Elemente, u.a.
jeweils mit einer Verwendungserläuterung jeder einzelnen Eigenschaft. Im
Rahmen der weiterführenden
Konzepte von Web Dynpro für ABAP wird noch einmal detailliert auf die
Datenbindung von
Oberflächen-Eigenschaften eingegangen.
Die Datenbindung einer UI-Elemente-Eigenschaft wird im Layout der View eingerichtet. In der Eigenschaftentabelle der eingebetteten UI-Elemente gibt es hierfür eigens eine Spalte Binding. Durch Klicken der jeweiligen Schaltfläche öffnet sich ein Dialogfenster welches Ihnen die zu dieser View gehörende Context-Struktur zur Auswahl eines Elementes anbietet.
Bei
solchen Eigenschaften, für die die Bindung an ein Conext-Element zwingend
erforderlich ist, ist die Binding-Schaltfläche der
Eigenschaftentabelle mit folgender Ikone versehen:

Für einige UI-Elemente gibt es zusätzlich einen Wizard, der die Gestaltung des UI-Elementes vereinfacht indem er die Struktur des zugehörigen Context-Knotens beim Gestalten des Layouts berücksichtigt. Ein Beispiel:
Wird eine Tabelle mit Hilfe des Wizards an einen
Context-Knoten gebunden ist es nicht nötig, die Spalten der Tabelle einzeln
anzulegen. Statt dessen bietet der Wizard zunächst den zugehörigen Context und
nach der Auswahl des Context-Knotens alle darin enthaltenen Attribute zur
Auswahl an. An dieser Stelle können Sie entscheiden, welche Attribute des
Knotens tatsächlich in der Tabelle dargestellt werden sollen. Außerdem können
Sie einige Eigenschaften der Spaltenelemente beeinflussen. Durch Abschluss des
Wizard-Vorgangs werden alle notwendigen Tabellenspalten im Layout der View
erzeugt und alle notwendigen Datenbindungen werden eingerichtet.
Sie starten den Wizard indem Sie im Kontextmenü eines geeigneten UI-Elementes in der Baumstruktur unter dem Root-Container den Eintrag Binding erzeugen wählen.
Context-Aspekt (z.B. Suchfelder)
Motivation: Bei Suchfeldern ist relevant, ob ein Benutzer einen Wert im Suchfeld eingegeben hat, ob also der Inhalt des Suchfelds für die Suche benutzt werden soll. Solange das Suchfeld leer ist, hat es den Status NULL und wird nicht für die Suche verwendet.
UI-Aspekt
Ein als NULL-Feld gekennzeichentes Feld soll bei der Ausgabe nichts/ein leeres Feld aufweisen. Für einige UI-Elemente, die an ein Context-Attribut (beispielweise solche von einem numerischen Typ oder auch vom Typ T), gebunden sind, werden die Felder, für die kein Wert vorhanden ist, automatisch mit einem Null-Wert ausgegeben. Im Fall des Typs NUM4C ist dies der Wert „0000“, im Fall des Typs T „00:00:00“, usw. Für alle anderen UI-Elemente müssen Sie dieses Verhalten selbst implementieren.
1. Zunächst muss der Wert in der Nodeinfo mit Hilfe der Methode IF_WD_CONTEXT_NODE_INFO=>SET_NULLABLE( ) als Nullable gekennzeichnet werden. Es können entweder einzelne Attribute oder auch alle Attribute eines Knotens als Nullable gekennzeichnet werden.
2. In einem zweiten Schritt muss der nun setzbare Wert tatsächlich auf "Null" gesetzt werden. Das Interface IF_WD_CONTEXT_NODE bietet hierfür die Methode SET_ATTRIBUTE_NULL( '”Node_Name”' )an. Eine andere Möglichkeit besteht darin, dass der so genannte Leer-String in das Eingabefeld geschrieben wird (also jeglicher Inhalt gelöscht wird). Bei der Verwendung eines InputFields beispielsweise wird das Attribut auf NULL gesetzt, wenn der Benutzer die Eingabe komplett löscht.

Sie können in der Workbench bei den Context-Attribut-Eigenschaften auch den Eintrag Null-Wert deklarativ setzen. Siehe auch Context-Attribute anlegen und pflegen.
Dies gilt für alle Datentpyen, bei denen der Initialwert bei der Ausgabe auf dem Bildschirm ungleich dem Leer-String ist. Für String und Char-Datentypen gilt analog: Wenn das Attribut auf NULLABLE gestetzt ist und der Benutzer die Eingabe löscht, dann wird ebenfalls das dazugehörige Context-Attribut auf NULL gesetzt.