Anfang des InhaltsbereichsVorgehensweisen Mehrzeilige Objektreferenz in Container schreiben Dokument im Navigationsbaum lokalisieren

Voraussetzungen

Folgende Voraussetzungen müssen erfüllt sein, um eine mehrzeilige Objektreferenz in einen Container zu schreiben:

Hinweis

Diese Voraussetzungen sind immer erfüllt, wenn Sie sich im Implementierungsprogramm befinden. Der Container wird dann unter dem Namen CONTAINER angesprochen.

Vorgehensweise

  1. Legen Sie eine Variable zur Aufnahme der mehrzeiligen Objektreferenz an. Verwenden Sie dazu folgenden Befehl:
  2. DATA <Objektliste> TYPE SWC_OBJECT OCCURS 0.

    Die so erzeugte interne Tabelle besitzt keinen Tabellenkopf. Sie füllen sie, indem Sie jede Objektreferenz einzeln erzeugen und an die Tabelle anhängen.

  3. Legen Sie eine Variable zur Aufnahme einer Objektreferenz an. Verwenden Sie dazu folgenden Befehl:
  4. DATA <Objekt> TYPE SWC_OBJECT.

  5. Erzeugen Sie die erste Objektreferenz. Verwenden Sie dazu folgenden Befehl:
  6. SWC_CREATE_OBJECT <Objekt> <Objekttyp> <Objektschlüssel>.

  7. Hängen Sie die Objektreferenz an die Tabelle an. Verwenden Sie dazu folgenden Befehl:
  8. APPEND <Objekt> TO <Objektliste>.

  9. Wiederholen Sie die vorhergehenden zwei Schritte, bis die Tabelle vollständig gefüllt ist.
  10. Schreiben Sie die mehrzeilige Objektreferenz in den Container. Verwenden Sie dazu folgenden Befehl:
  11. SWC_SET_TABLE <Container> <Containerelement> <Objektliste>.

    Achtung

    Bei der Kennung des Containerelements wird nicht zwischen Groß- und Kleinbuchstaben unterschieden. Wenn der Container im Datenfluss eines Workflow benutzt wird, müssen Sie darauf achten, dass in der Containerdefinition ein gleichnamiges Containerelement definiert ist.

  12. Machen Sie die Objektreferenz persistent. Verwenden Sie dazu folgenden Befehl:

SWC_CONTAINER_TO_PERSISTENT <Container>.

Hinweis

Sie benötigen persistente Objektreferenzen, wenn der Container in einem anderen Umfeld weiterverwendet wird. Dies ist der Fall, wenn Sie den Container bei einem Funktionsaufruf als Parameter übergeben, z.B. wenn Sie den Container

Ergebnis

Die erzeugten Objektreferenzen sind Laufzeitreferenzen, die nur im Umfeld des erzeugenden Programms existieren. Diese Objektreferenzen werden in einem Containerelement in den Container geschrieben. Wenn das Containerelement unter dieser Kennung noch nicht im Container vorhanden ist, wird es mit seinem Wert in den Container eingefügt. Wenn schon ein Containerelement unter dieser Kennung im Container vorhanden ist, wird der alte Wert mit dem neuen Wert überschrieben. Wenn der Container in einem anderen Programmkontext benötigt wird, müssen Sie die enthaltenen Objektreferenzen persistent machen.

Beispiel

Die Variable POSITIONLIST wird als mehrzeilige Objektreferenz deklariert:

* Typdeklarationen für mehrzeilige Objektreferenz
DATA POSITITONLIST TYPE SWC_OBJECT OCCURS 0.

Die Variable POSITION wird als Objektreferenz deklariert. Diese Variable dient als Hilfsvariable bei der Bearbeitung der mehrzeiligen Objektliste:

* Typdeklarationen für Objektreferenz
DATA POSITION TYPE SWC_OBJECT.

Die interne Tabelle POSITIONKEY wird mit Werten gefüllt. Für jeden Eintrag wird eine Objektreferenz Position erzeugt und in die mehrzeilige Objektreferenz POSITIONLIST geschrieben:

* Typdeklarationen für die Schlüsselfelder des
* Objektes "Position eines Auftrags"
DATA: BEGIN OF POSITIONKEY,
        DOCUMENT LIKE VBAP-VBELN, "Verkaufsbeleg
        ITEM LIKE VBAP-POSNR, "Verkaufsbelegposition
      END OF POSITIONKEY.

* mehrzeilige Objektreferenz bearbeiten
SELECT * FROM VBAP
  WHERE VBELN BETWEEN '0000002500' AND '0000002600'.

* Schlüsselfelder füllen
  POSITIONKEY-DOCUMENT = VBAP-VBELN.
  POSITIONKEY-ITEM = VBAP-POSNR.

* Objektreferenz erzeugen
  SWC_CREATE_OBJECT POSITION 'VBAP' POSITIONKEY.

* Objektreferenz in mehrzeilige Objektreferenz einfügen
  APPEND POSITION TO POSITIONS.
ENDSELECT.

Die mehrzeilige Objektreferenz POSITIONLIST wird im Containerelement Positionen in den Container MY_CONTAINER geschrieben:

* mehrzeilige Objektreferenz in Container schreiben
SWC_SET_TABLE MY_CONTAINER 'Positionen' POSITIONLIST.

Ein weiteres Beispiel finden Sie unter Implementierungsprogramm für ein virtuelles Attribut.

Ende des Inhaltsbereichs