Show TOC

Daten für die ALV-Anzeige bereitstellenLocate this document in the navigation structure

Verwendung

Um die Daten bereitzustellen, die Sie in der ALV-Anzeige anzeigen möchten, müssen Sie nun den Context-Knoten Ihrer Anwendung, der die Daten für die Ausgabe in der Tabelle hält, mit dem Context-Knoten DATA der ALV-Component verknüpfen. Dies geschieht über externes Context-Mapping.

Der Context-Knoten DATA im Context der ALV-Component enthält nur eine Referenz auf den entsprechenden Context-Knoten Ihrer Anwendung. Dieser wiederum ist eine Referenz auf die interne Datentabelle.

Standardmäßig wird die ALV-Component mit ihrer Referenz der Daten arbeiten. Durch verschiedene Mechanismen werden Filter, Berechnungen und andere ALV-Standardfunktionen auf den Daten der internen Datentabelle durchgeführt und die so veränderte ALV-Anzeige anschließend am Bildschirm angezeigt.

Wichtige Ausnahme: Das Sortieren

Hier muss ALV den gesamten Datenbestand heranziehen, damit die Datensätze in die neue Reihenfolge gesetzt werden können. Zu diesem Zweck übernimmt die ALV-Component vorübergehend die Kontrolle über die interne Datentabelle und invalidiert für diesen Zeitraum den entsprechenden Context-Knoten Ihrer Anwendung. Dies stellt sicher, dass die Anwendung nicht auf den Context-Knoten zugreifen kann, während die ALV-Component die interne Datentabelle bearbeitet.

Erst wenn die interne Datentabelle neu sortiert ist, baut ALV den Context-Knoten neu auf, gibt ihn wieder für die Anwendung frei und zeigt die Daten entsprechend an.

Auf diese Weise ist sichergestellt, dass von der internen Datentabelle niemals eine Kopie erzeugt wird. Denn bei großen Datenmengen würde dies zwangsläufig zu erheblichen Beeinträchtigungen der Performance und der Speicherkapazität führen.

Beachten Sie die folgenden Nebeneffekte dieses Mechanismus, wenn Sie Ihre Anwendung planen:

  • Beim Invalidieren des Context-Knotens gehen auch Informationen über aktuelle Markierungen, insbesondere die Lead-Selection, verloren.

  • Wenn Ihre Anwendung für den Context-Knoten Unterknoten erzeugt hat (Master-Detail-Szenario), so gehen diese Unterknoten verloren, sobald die ALV-Component den Context-Knoten invalidiert. Will nun die Anwendung auf die Unterknoten zugreifen, wird sie damit einen Laufzeitfehler verursachen.

Voraussetzungen

Für den Context-Knoten, der die Daten für den ALV enthält, gelten folgende Regeln:

  • Der Knoten darf nur für die Anzeige des ALV verwendet werden, das heißt:

    • Es dürfen keine anderen View-Elemente an Attribute dieses Context-Knotens gebunden werden

    • Es darf keine andere ALV-Instanz an diesen Context-Knoten gebunden werden

  • Der Knoten muss die Kardinalität 0..n besitzen.

  • Der Knoten darf keine Unterknoten enthalten, das heißt, dass der ALV nicht als Master in einem Master-Detail-Szenario fungieren kann.

  • Es dürfen keine dynamischen Attribute verwendet werden, nur statische.

  • Für jede Spalte Ihrer internen Datentabelle erzeugen Sie genau ein Attribut gleichen Namens und Datentyps.

  • Auch die Daten der internen Datentabelle, die an diesen Context-Knoten gebunden ist, müssen in flachen Strukturen vorliegen. Am einfachsten verwenden Sie hierzu eine bereits existierende DDIC-Struktur.

Vorgehensweise
  1. Öffnen Sie im Web Dynpro Explorer Anfang des Navigationspfads Component-Verwendungen Nächster Navigationsschritt MY_ALV_COMP_USAGE Nächster Navigationsschritt INTERFACECONTROLLER_USAGE Ende des Navigationspfads

    Web Dynpro Explorer: Struktur für Component-Verwendungen

    Da Sie möglicherweise für mehrere verschiedene ALV-Components je eine Component-Verwendung definiert haben, müssen Sie für das Context-Mapping genau die ALV-Component-Verwendung angeben, die die Daten Ihres Context-Knotens erhalten soll.

  2. Klicken Sie auf Controller-Verwendung, wählen Sie Ihren Component Controller aus und bestätigen Sie.

  3. Selektieren Sie den Context-Knoten DATA des INTERFACECONTROLLERs, öffnen Sie das Kontextmenü und wählen Sie Definieren externes Mapping. Wählen Sie nun den gewünschten Context-Knoten Ihres Component Controllers. Der Context-Knoten DATA wird nun mit einem kleinen Pfeil dargestellt, der das Mapping symbolisiert:

Methode SET_DATA

Eine andere Möglichkeit, die Daten an die ALV-Component zu übergeben, ist die Methode SET_DATA (Bezugstyp IF_WD_CONTEXT_NODE). Damit können Sie nachträglich eine andere Struktur für Ihre ALV-Anzeige angeben. Als Parameter geben Sie den passenden Context-Knoten Ihrer Anwendung an.

Hinweis

Die Methode SET_DATA löscht immer ein eventuell vorhandenes ALV Configuration Model. Wenn Sie die ALV-Anzeige konfigurieren möchten, müssen Sie im Anschluss an SET_DATA erneut das ALV Configuration Model holen.