Show TOC

Makrobefehle zum Zugriff auf Objekte, Attribute, Methoden (BOR)Locate this document in the navigation structure

Verwendung

Sie können diese Makros für einen vereinfachten Zugriff auf Objekte des Business Object Repository nutzen.

Voraussetzungen

Um die Makros nutzen zu können muss die Include-Datei <cntain> in das Programm eingebunden sein.

Funktionsumfang

Variablen, in denen eine Objektreferenz abgelegt werden soll, müssen Sie mit folgendem Befehl deklarieren:

DATA: <Objekt> TYPE SWC_OBJECT.

Allgemeine Makros

  • SWC_CREATE_OBJECT <Objekt> <Objekttyp> <Objektschlüssel>.

    Erstellt eine Objektreferenz zu einem Objektschlüssel eines Objekttyps.

    Sie müssen den objektspezifischen Schlüssel in <Objektschlüssel> und die Kennung des Objekttyps in <Objekttyp> übergeben. <Objekttyp> müssen Sie entweder als Zeichenkette oder als Variable übergeben, die mit LIKE SWOTOBJID-OBJTYPE deklariert ist.

    In der Variablen <Objekt> wird die erzeugte Objektreferenz zurückgeliefert. <Objekt> müssen Sie mit Typ SWC_OBJECT deklarieren.

    Hinweis

    Wenn die Variable <Objektschlüssel> den Wert SPACE besitzt, wird in <Objekt> eine Referenz auf den Objekttyp zurückgegeben. Sie können diesen nutzen, um Eigenschaften des Objekttyps (Attribute, Methoden, Ereignisse) abzufragen.

  • SWC_REFRESH_OBJECT <Objekt>.

    Attribute des Objekts, die ein Datenbankfeld referenzieren, werden beim nächsten Zugriff erneut von der Datenbank gelesen.

    Sie müssen die Objektreferenz in <Objekt> übergeben. <Objekt> müssen Sie mit Typ SWC_OBJECT deklarieren.

    Hinweis

    Sie sollten diesen Makrobefehl nach der Ausführung von Methoden anwenden, die Attribute ändern können (z.B. Edit , Update , Change ).

  • SWC_GET_OBJECT_TYPE <Objekt> <Objekttyp>.

    Der zu einer Objektreferenz gehörende Objekttyp wird ermittelt.

    Sie müssen die Objektreferenz in <Objekt> übergeben. <Objekt> müssen Sie mit Typ SWC_OBJECT deklarieren.

    In der Variablen <Objekttyp> wird der zugehörige Objekttyp zurückgeliefert. <Objekttyp> können Sie mit LIKE SWOTOBJID-OBJTYPE deklarieren.

  • SWC_GET_OBJECT_KEY <Objekt> <Objektschlüssel>.

    Der zu einer Objektreferenz gehörende Objektschlüssel wird ermittelt.

    Sie müssen die Objektreferenz in <Objekt> übergeben. <Objekt> müssen Sie mit Typ SWC_OBJECT deklarieren.

    In der Variablen <Objektschlüssel> wird der zugehörige Objektschlüssel zurückgeliefert. <Objektschlüssel> können Sie mit LIKE SWOTOBJID-OBJKEY deklarieren.

  • SWC_CALL_METHOD <Objekt> <Methode> <Container>.

    Die zu einem beliebigen Objekttyp definierte Methode wird auf einem Objekt dieses Objekttyps ausgeführt.

    Sie müssen die Objektreferenz in <Objekt> und die auszuführende Methode in <Methode> übergeben. <Objekt> müssen Sie mit Typ SWC_OBJECT deklarieren.

    In der Variablen <Container> werden die Importparameter der Methode übergeben. Das Ergebnis und die Exportparameter der ausgeführten Methode werden ebenfalls in <Container> abgelegt. Falls die aufgerufene Methode eine Ausnahme auslöst, wird die Nummer der Ausnahme in der Systemvariablen SY-SUBRC und eventuelle Werte in den Variablen SY-MSGV1 , ..., SY-MSGV4 abgelegt.

    Ein Beispiel für einen solchen Aufruf finden Sie unter Programmierter Aufruf einer Methode .

    Hinweis

    Wenn Sie für <Methode> SPACE übergeben, wird die Defaultmethode ausgeführt.

    Auch wenn für die aufgerufene Methode keine Parameter definiert sind, müssen Sie einen Container übergeben. Erzeugen und initialisieren Sie deswegen einen leeren Container mit folgenden Makrobefehlen:

    SWC_CONTAINER <Container>. SWC_CREATE_CONTAINER <Container>.

  • SWC_GET_PROPERTY <Objekt> <Attribut> <Attributwert>. SWC_GET_TABLE_PROPERTY <Objekt> <Attribut> <Attributwert>.

    Der Wert des angegebenen Attributs wird ermittelt. Falls es sich um ein virtuelles Attribut handelt, erfolgt die Ermittlung dynamisch.

    Sie müssen die Objektreferenz in <Objekt> und das zu lesende Attribut oder Schlüsselfeld in <Attribut> übergeben. <Objekt> müssen Sie mit Typ SWC_OBJECT deklarieren.

    In der Variablen <Attributwert> wird der Wert des Attributs oder des Schlüsselfelds zurückgeliefert. SWC_GET_PROPERTY liefert dabei einen einfachen Wert zurück, SWC_GET_TABLE_PROPERTY liefert einen mehrzeiligen Wert in einer internen Tabelle zurück.

    Ein Beispiel für einen solchen Aufruf finden Sie unter Programmierter Zugriff auf ein Attribut .

Ausführung der Makros auf dem eigenen Objekt

Alle im Abschnitt Allgemeine Makros aufgeführten Makros können Sie im Implementierungsprogramm auch direkt auf dem Objekt selbst ausführen. Dazu ersetzen Sie in den Makroaufrufen <Objekt> durch SELF .

Beispiel

Mit dem Aufruf SWC_GET_PROPERTY SELF <Attribut> <Attributwert>. können Attributwerte des aktuellen Objekts gelesen werden.

Objektschlüssel setzen

In der Implementierung von Methoden, mit denen ein Objekt erzeugt wird, muss der Schlüssel des Objektes neu gesetzt werden. Dies betrifft typischerweise die Methoden Create oder Find . Verwenden Sie dazu folgenden Makrobefehl:

SWC_SET_OBJECTKEY <Objektschlüssel>.

In der Variablen <Objektschlüssel> wird der zu setzende Objektschlüssel übergeben. Ein Beispiel für einen solchen Aufruf finden Sie unter Programmierung von instanzunabhängigen Methoden .

Ausnahmen auslösen

Innerhalb des Implementierungsprogramms können Sie die Ausnahmen auslösen, die zu einer Methode definiert sind. Verwenden Sie dazu folgenden Makrobefehl:

EXIT_RETURN <Ausnahme> <Var1> <Var2> <Var3> <Var4>.

Übergeben Sie in <Ausnahme> die Nummer der Ausnahme und in <Var n > die vier angezeigten Parameter der Ausgabe. Die Parameter können auch SPACE sein. <Ausnahme> muss mit LIKE SWOTINVOKE-CODE deklariert sein.

Ein Beispiel für die Verwendung finden Sie unter Implementierung der Methode ExistenceCheck .