Show TOC

Implementierungsprogramm für ein virtuelles Attribut (BOR)Locate this document in the navigation structure

Verwendung

Die Erweiterungen im Implementierungsprogramm für ein virtuelles Attribut finden Sie zwischen den Makrobefehlen GET_TABLE_PROPERTY und END_PROPERTY

Sie müssen programmieren, wie der Wert des virtuellen Attributes zur Laufzeit entsteht. Der ermittelte oder errechnete Wert wird unter seiner Attributkennung im Container CONTAINER gespeichert. Verwenden sie dazu bei einzeiligen Attributen den Makrobefehl SWC_SET_ELEMENT bzw. bei mehrzeiligen Attributen den Makrobefehl SWC_SET_TABLE .

* Zugriff auf virtuelles Attribut
************************************************************
GET_PROPERTY Attribut CHANGING CONTAINER.
...
    WC_SET_ELEMENT CONTAINER <Attribut> <Wert>.
END_PROPERTY.
         
Achtung

Der Quelltext wird als Vorschlag aus den Angaben, die Sie bei der Objekttypdefinition gemacht haben, automatisch erzeugt. Sie müssen bei der Implementierung von virtuellen Attributen den Quelltext bearbeiten.

Virtuelles Attribut als Objektreferenz und mehrzeiliges virtuelles Attribut

Virtuelle Attribute sind insbesondere in folgenden Fällen von Bedeutung:

  • wenn das Attribut zur Laufzeit eine Referenz auf ein Objekt liefern soll, das mehrere Schlüsselfelder hat

    Bauen Sie im Implementierungsprogramm den Schlüssel des referenzierten Objektes auf, erzeugen Sie eine Objektreferenz und geben Sie diese an den Aufrufer zurück.

  • wenn das Attribut als mehrzeiliges Attribut definiert ist

Beispiel

Implementierung des virtuellen, mehrzeiligen Attributes Items ( Verkaufsbelegpositionen ) beim Objekttyp VBAK ( Verkaufsbeleg ).

Das Schlüsselfeld des Objekttyps VBAK ist SalesDocument ( Verkaufsbeleg ). Dieses Schlüsselfeld referenziert das Feld VBAK-VBELN .

Das Attribut Items liefert eine mehrzeilige Referenz auf ein Objekt vom Typ VBAP ( Verkaufsbelegposition ) zurück. Die Schlüsselfelder des Objekttyps VBAP sind SalesDocumentNo ( Verkaufsbeleg ) und ItemNo ( Verkaufsbelegposition ). Diese Schlüsselfelder referenzieren die Felder VBAP-VBELN (bzw. VBAK-VBELN ) und VBAP-POSNR .

Das System hat die Tabelle Object-Items im Datendeklarationsteil automatisch hinzugefügt.

Definieren Sie im Implementierungsprogramm, aus welchen Informationen sich diese mehrzeilige Objektreferenz zur Laufzeit aufbaut und wie sie in den Container eingetragen wird.

Mit dem Makrobefehl SWC_CREATE_OBJECT wird aus Objekttyp und zusammengesetztem Objektschlüssel eine Objektreferenz aufgebaut und diese Objektreferenz der mit SWC_OBJECT deklarierten Variable zugewiesen:

* virtuelles, mehrzeiliges Attribut Items GET_PROPERTY ITEMS CHANGING CONTAINER.
* Datendeklarationen 
***********************************************************
DATA ITEM TYPE SWC_OBJECT.
DATA:
   BEGIN OF VBAP_KEY,
     VBELN LIKE VBAP-VBELN,
     POSNR LIKE VBAP-POSNR,
   END OF VBAP_KEY.
 DATA BEGIN OF VBAP_TAB OCCURS 0.
   INCLUDE STRUCTURE VBAP.
 DATA END OF VBAP_TAB.
* Datenselektion
***********************************************************
  IF OBJECT-ITEMS IS INITIAL.
     SELECT * FROM VBAP INTO TABLE VBAP_TAB
       WHERE VBELN = OBJECT-KEY-SALESDOCUMENT.
     IF SY-SUBRC NE 0.
       EXIT.
     ENDIF.
     VBAP_KEY-VBELN = OBJECT-KEY-SALESDOCUMENT.
     LOOP AT VBAP_TAB.
       VBAP_KEY-POSNR = VBAP_TAB-POSNR.
* Erzeugen einer Objektreferenz aus Objekttyp und Objektschlüssel
************************************************************
       SWC_CREATE_OBJECT ITEM 'VBAP' VBAP_KEY.
       APPEND ITEM TO OBJECT-ITEMS.
     ENDLOOP.
   ENDIF.
* Zuweisung der Objektreferenz an Containerelement
************************************************************
  SWC_SET_TABLE CONTAINER 'Items' OBJECT-ITEMS.
 END_PROPERTY.