Show TOC

Objektreferenz aus Container lesenLocate this document in the navigation structure

Voraussetzungen

Folgende Voraussetzungen müssen erfüllt sein, um eine Objektreferenz eines BOR-Objekts aus einen Container zu lesen:

  • 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.

  • Die Objektreferenzen des Containers dürfen nicht persistent sein.

    Hinweis

    Container, die über eine Funktionsbaustein-Schnittstelle übergeben werden, enthalten immer persistente Objektreferenzen. Bevor Sie Objektreferenzen aus einem Container lesen und in einer Variable ablegen, müssen Sie alle Objektreferenzen im Container zu Laufzeitreferenzen machen. Führen Sie dazu folgenden Makrobefehl aus:

    SWC_CONTAINER_TO_RUNTIME <Container>.

    Beispiel

    Sie müssen einen Container mit diesem Makro bearbeiten, wenn Sie

    • einen Regelcontainer zur Regelauflösung auslesen

    • einen Ereigniscontainer innerhalb eines Check-Funktionsbausteins oder eines Verbrauchertyp-Funktionsbausteines auslesen

Vorgehensweise
  1. Legen Sie eine Variable zur Aufnahme der Objektreferenz an. Verwenden Sie dazu folgenden Befehl:

    DATA <Objekt> TYPE SWC_OBJECT.

  2. Lesen Sie die Objektreferenz aus dem Container. Verwenden Sie dazu folgenden Befehl:

    SWC_GET_ELEMENT <Container> <Containerelement> <Objekt>.

Sie können aus der Objektreferenz den Objekttyp und den Schlüssel herauslesen. Verwenden Sie dazu die Makros SWC_GET_OBJECT_TYPE bzw. SWC_GET_OBJECT_KEY. Weitere Informationen finden Sie unter Makrobefehle zum Zugriff auf Objekte, Attribute und Methoden.

Hinweis

Wollen Sie nur eine Objektreferenz lesen, sollten Sie aus Performance-Gründen auch nur diese Objektreferenz in eine Laufzeitreferenz umwandeln. Gehen Sie dazu wie folgt vor:

DATA <Objekt>   TYPE SWC_OBJECT
     <Variable> LIKE SWOTOBJID.
SWC_GET_ELEMENT <Container> <Containerelement> <Variable>.
SWC_OBJECT_FROM_PERSISTENT <Variable> <Objekt>.