Show TOC

Dokumentation zur VorgehensweiseTeil 4: Implemtierung des Datentransports Dieses Dokument in der Navigationsstruktur finden

Vorgehensweise

Um den Wert des Attributs CARRID im Context der View Suchen für den Context der View Anzeigen sichtbar zu machen, müssen Sie zunächst einen View-übergreifenden Context einrichten.

  1. Doppelklicken Sie in der Objektliste auf das Objekt ComponentController.

    Im Editor wird Ihnen nun der Context des Component-Controllers angezeigt.

  2. Markieren Sie den noch leeren Wurzelknoten des Contexts.

  3. Kopieren Sie über das Kontextemnü mittels Anlegen über Wizard den Knoten data aus der View Suchen (oder auch aus Anzeigen) in den Wurzelknoten des Contexts des Component-Controllers.

  4. Sichern Sie Ihre Eingaben.

  5. Wechseln Sie in der Objektliste durch Doppelklicken auf die Anzeige der View Suchen, dort auf die Registerkarte Context.

    Im zweigeteilten Editor wird Ihnen in der rechten Hälfte der Context des Component-Controllers angezeigt.

  6. Definieren Sie ein Mapping für den Knoten data des View-Contextes auf den gleichnamigen Knoten des Component-Controller-Contexts:

    Markieren Sie dafür den Knoten data des Component-Controllers und ziehen Sie ihn mit gedrückter linker Maustaste auf den Knoten data des View-Contextes. Nach Loslassen der Maustaste wird das durch diesen Vorgang definierte Mapping angezeigt durch einen kleinen schwarzen Pfeil in der Ikone des View-Context-Knotens. Außerdem wird in der Eigenschaftentabelle dieses Knotens der Mapping-Pfad zum Knoten des Component-Controllers angegeben.

    Der Wert, den das Attribut CARRID zur Laufzeit erhält, kann nun über das Mapping an den Component-Controller weiter gereicht werden.

    Sichern Sie die View.

  7. Öffnen Sie durch Doppelklicken in der Objektliste die View Anzeigen und wechseln Sie auf die Registerkarte Context.

  8. Definieren Sie auch hier ein Mapping für den Knoten data des View-Contextes auf den gleichnamigen Knoten des Component-Controller-Contexts.

    Der Wert für das Attribut CARRID, den der Component-Controller von der View Suchen erhält, kann so dem Context der View Anzeigen übergeben werden.

    Als nächstes müssen Sie dessen Context-Knoten flights mit einer Supply-Funktion ausstatten.

  9. Markieren Sie den Knoten flights und geben Sie in der Zeile Supply-Funktion der Eigenschaftentabelle den Namen getflights ein.

    Die benötigte Methode wird beim Sichern automatisch angelegt.

  10. Verzweigen Sie per Doppelklick auf den Namen der Funktion in den ABAP Editor, um die Methode getflights geeignet auszuprogrammieren (Quell-Code siehe unten).

Das Layout der beiden Views ist jetzt gestaltet und der Datentransport implementiert.

Zum Fertigstellen der Anwendung fahren Sie fort mit Teil 5: Einrichten der Navigation.

Quell-Code für die Methode GETFLIGHTS

Achtung Achtung

Die Programmierung der Datenbeschaffung in diesem Beispiel ist zu Gunsten des besseren Verständnisses von Web Dynpro erheblich verkürzt worden. In einer realen Anwendung sollten Sie beispielsweise niemals innerhalb einer Methode des Web-Dynpro-Frameworks einen select-Aufruf auf eine Datenbanktabelle implementieren. Zur Beschaffung der Daten sollten Sie unbedingt zumindest eine eigene Klasse anlegen.

Ende der Warnung.

Syntax Syntax

  1. method GETFLIGHTS.
  2.   data: 	datanode type ref to if_wd_context_node,
  3.       		value type string,
  4.       		flighttab type standard table of sflight.
  5. * Einlesen der Referenz auf den Knoten des lokalen Contextes:
  6.   datanode = wd_context->get_child_node( name = 'DATA' ).
  7. * Auf Grund des Mappings auf den Knoten 'DATA' des Component-Controllers
  8. * enthält dieser Knoten den vom Benutzer eingegebenen Wert für das Attribut
  9. * 'CARRID'.
  10. * Dieser Wert wird dann folgenden Schritt ausgelesen:
  11.   datanode->get_attribute( exporting name = 'CARRID' importing value = value ).
  12. * Jetzt kann die interne Tabelle 'flighttab' gefüllt werden:
  13.   select * from sflight into table flighttab
  14.   where CARRID = value.
  15. * Die interne Tabelle muss nun noch an den aktuellen Context-Knoten gebunden
  16. * werden:
  17.   node->bind_elements( flighttab ).
  18. endmethod.
Ende des Codes