Mehrzeilige Objektreferenz in Container schreiben (BOR) 
Folgende Voraussetzungen müssen erfüllt sein, um eine mehrzeilige Objektreferenz eines klassischen Objekts (BOR) in einen Container zu schreiben:
Der Container muss angelegt und initialisiert sein.
Bei Funktionsbausteinen muss die Include-Datei <CNTN01> in das Programm eingebunden sein. Bei ABAP-Klassen müssen die Include-Dateien <CNTN02> und <CNTN03> eingebunden sein. Weitere Informationen finden Sie unter Makrobefehle zum Bearbeiten eines Containers.
Hinweis
Diese Voraussetzungen sind immer erfüllt, wenn Sie sich im Implementierungsprogramm befinden. Der Container wird dann unter dem Namen CONTAINER angesprochen.
Der zusammengesetzte Schlüssel der Objekte muss in einer Variable zur Verfügung stehen (hier als Objektschlüssel bezeichnet).
Legen Sie eine Variable zur Aufnahme der mehrzeiligen Objektreferenz an. Verwenden Sie dazu folgenden Befehl:
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.
Legen Sie eine Variable zur Aufnahme einer Objektreferenz an. Verwenden Sie dazu folgenden Befehl:
DATA <Objekt> TYPE SWC_OBJECT.
Erzeugen Sie die erste Objektreferenz. Verwenden Sie dazu folgenden Befehl:
SWC_CREATE_OBJECT <Objekt> <Objekttyp> <Objektschlüssel>.
Hängen Sie die Objektreferenz an die Tabelle an. Verwenden Sie dazu folgenden Befehl:
APPEND <Objekt> TO <Objektliste>.
Wiederholen Sie die vorhergehenden zwei Schritte, bis die Tabelle vollständig gefüllt ist.
Schreiben Sie die mehrzeilige Objektreferenz in den Container. Verwenden Sie dazu folgenden Befehl:
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.
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
als Ereigniscontainer in einem Check-Funktionsbaustein oder Verbrauchertyp-Funktionsbaustein auswerten oder verändern wollen
als Ereigniscontainer vorbereiten und ihn als Parameter der Funktionsbausteine SWE_EVENT_CREATE oder SAP_WAPI_CREATE_EVENT verwenden
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.
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:
Syntax
* 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.