
Im Rahmen der Web-Dynpro-Architektur lassen sich die Contexte der verschiedenen Controller auf unterschiedliche Weise verknüpfen:
Ein UI-Element der Benutzungsoberfläche der View kann an ein Element eines View-Contexts gebunden werden.
Ein Mapping kann zwischen zwei Contexten globaler Controller bzw. von einem View-Context zu einem globalen Controller-Context definiert werden.
Mapping definieren zwischen zwei Contexten
Die Elemente eines View-Contexts können lokal deklariert werden. In diesem Fall (in der nachstehenden Grafik angedeutet durch einen lokalen Knoten) sind alle enthaltenen Attribute nur innerhalb der betreffenden View sichtbar und mit Verschwinden der View werden die Werte der Attribute gelöscht.
Eine weitere Möglichkeit, Context-Elemente zu definieren, ist die Verknüpfung eines Context-Knotens mit einem Knoten eines anderen Contextes. Die obenstehende Grafik zeigt symbolisch die Definition eines Mappings des Knotens Node1 des Contextes der View1 auf einen gleichnamigen Knoten im Context des Component-Controllers. Entsprechend dargestellt ist ein Mapping des Knotens Node2 des Contextes der View2 auf einen ebenfalls gleichnamigen Knoten des Component-Controller-Contextes. Der globale Context des Component-Controllers ist für beide View-Controller sichtbar und alle beteiligten Controller haben einen lesenden wie schreibenden Zugriff auf die enthaltenen Attribute. Die Werte für die Attribute des Component-Controller-Contextes bleiben erhalten, so lange die Component vom Anwender nicht verlassen wird. Sie stehen also auch dann noch zur Verfügung, wenn die View, die sie zuletzt verwendet hat, bereits wieder vom Bildschirm verschwunden ist. Dadurch ist es möglich, Daten innerhalb einer Component über verschiedene Contexte hinweg zu transportieren. Ein Datenwert, der beispielsweise über ein InputField der ersten View eingelesen wurde, kann über ein geeignetes Mapping an den Context des Component-Controllers weiter gereicht werden. Er existiert auch dann noch im Speicher, wenn die Navigation bereits zur nächsten View geführt hat. Ist auch für die Folge-View ein entsprechendes Mapping definiert, kann die View diesen Datenwert verarbeiten.
Sollte der Wert von der zweiten View wiederum geändert worden sein, findet eine eventuell folgende View, für die ein entsprechendes Mapping definiert wurde, dann den aktuellen Wert in ihrem Context vor.
Alle globalen, also Component-weit sichtbaren Controller-Contexte, können untereinander verbunden werden. Außerdem kann ein Mapping eines View-Context-Elementes auf ein Element eines globalen Contextes definiert werden. Umgekehrt ist es jedoch nicht möglich, ein Mapping eines globalen Context-Elements auf ein Element eines View-Contextes zu definieren, da die Lebensdauer des View-Contextes im allgemeinen kürzer ist als die des globalen Controller-Contextes.
Bindung eines Oberflächenelements an ein Context-Attribut
Eigenschaften der in der View enthaltenen Oberflächenelemente können an Attribute eines View-Contexts gebunden werden. Dadurch können die Daten des Contextes im Browser angezeigt und Änderungen, die ein Anwender in der im Browser angezeigten View vornimmt, im Context abgelegt werden. Es können auch mehrere Eigenschaften an ein Context-Element gebunden werden.
Alle elementaren Datentypen stehen zur Definition von Attributen innerhalb eines Contexts zur Verfügung. Die dort hinterlegten Informationen werden von einer Web-Dynpro-Anwendung auch zur Erstellung einer Wertehilfe und zur Erstellung von Fehlermeldungen bei ungültigen Eingaben genutzt.