Anfang des InhaltsbereichsVorgehensweisen Lektion 6: Mehrzeiliges virtuelles Attribut anlegen Dokument im Navigationsbaum lokalisieren

Verwendung

Sie legen in dieser Lektion das mehrzeilige, objektwertige virtuelle Attribut Verkaufsbelegpositionen an und implementieren es. Dieses Attribut wertet die Positionen des Kundenauftrags aus und liefert eine Liste mit Referenzen auf Objekte vom Typ VBAP ( Verkaufsbelegposition) zurück.

Ein virtuelles Attribut erfordert stets eine Implementierung im Implementierungsprogramm.

Voraussetzungen

Bei der Implementierung dieser Attribute verwenden Sie Makrobefehle, die vom System bereitgestellt werden.

Weitere Informationen zu bereitgestellten Makrobefehlen finden Sie unter:

Vorgehensweise

  1. Positionieren Sie den Cursor auf dem Eintrag Attribute.
  2. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt und beantworten Sie die Frage Anlegen mit ABAP/4-Dictionary Feldvorgaben? mit Nein.
  3. Geben Sie für das anzulegende Attribut folgende Texte ein:
  4. Attribut: Items
    Bezeichnung:
    Auftragspositionen
    Kurzbeschreibung: Positionen eines Kundenauftrags

  5. Markieren Sie Virtuell im Bereich Quelle.
  6. Markieren Sie mehrzeilig im Bereich Attributeigenschaft.
  7. Markieren Sie Objekttyp im Bereich Datentypreferenz.
  8. Geben Sie VBAP in das Feld Objekttyp ein.
  9. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.

Attribut im Implementierungsprogramm implementieren

Prüfen Sie die bisher vorgenommene Definition des Objekttyps. Wählen Sie dazu Diese Grafik wird im zugehörigen Text erklärt.

Das System erkennt die fehlende Implementierung und bietet Ihnen die automatische Erzeugung eines Musters für den fehlenden Quelltext an.

Nehmen Sie das Angebot unbedingt an!

Der automatisch erzeugte Quelltext für die Implementierung von virtuellen Attributen ist immer unvollständig und beschränkt sich auf das Setzen des entsprechenden Containerelementes. Sie müssen hier noch Änderungen vornehmen und im Programm des Objekttyps die Leseprozedur implementieren, die zur Laufzeit den Attributwert durch die Auswertung von Datenbankinhalten bestimmt.

Das System verzweigt in das Implementierungsprogramm des von Ihnen angelegten Objekttyps.

Virtuelles Attribut

Ein virtuelles Attribute wird zwischen den Makrobefehlen GET_PROPERTY <Attributname> CHANGING CONTAINER und END_PROPERTY implementiert. Dort ist programmiert, wie der Wert des virtuellen Attributes zur Laufzeit gebildet wird.

Analysieren Sie das bisher vorhandene Implementierungsprogramm. Als Vergleich kann Ihnen das im Anhang wiedergegebene Implementierungsprogramm dienen.

die Struktur VBAP_KEY wird gefüllt

eine Objektreferenz ITEM wird erzeugt

ITEM wird an die Tabelle OBJECT-ITEMS angehängt

Ergebnis

Virtuelles Attribut Items testen

  1. Positionieren Sie den Cursor auf dem gerade definierten Attribut.
  2. Wählen Sie Bearbeiten ® Freigabestatus ändern ® Objekttypkomponente ® in Implementiert.
  3. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.

Wenn der Objekttyp noch Fehler hat, werden Sie darauf hingewiesen. Versuchen Sie dann, über die Fehlerübersicht (Springen ® Fehlerliste) diese Fehler zu beheben.

Jetzt können die bisher angelegten Attribute getestet werden.

  1. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.
  2. Sie gelangen auf das Bild Testen Objekttyp <Objektname>: keine Instanz gebunden.

  3. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt Instanz.
  4. Identifizieren Sie ein Objekt vom Typ Kundenauftrag, indem Sie die Nummer eines beliebigen Kundenauftrags eintragen. Lassen Sie sich ggf. durch die F4-Eingabehilfe unterstützen.

  5. Wählen Sie Diese Grafik wird im zugehörigen Text erklärt.

Sie gelangen auf das Bild Testen Objekttyp <Objektname>, auf dem Sie Ihren Objekttyp testen können (Methoden ausführen, Werte der Attribute überprüfen).

Exkurs: Der Objekttyp VBAP (Verkaufsbelegposition)3

Der Objekttyp VBAP beschreibt die einzelnen Positionen eines Verkaufsbelegs. Die Schlüsselfelder des Objekttyps VBAP sind:

Diese Schlüsselfelder referenzieren die Schlüsselfelder VBELN und POSNR der Tabelle VBAP (Verkaufsbeleg: Positionsdaten).

Alternative Implementierung

Eine alternative Implementierung, die ohne zusätzliche interne Tabelle auskommt, ist nachfolgend wiedergegeben:

Syntax

get_property items changing container.

  tables vbap.
  refresh object-items. clear object-items.

  data item type swc_object.
  data: begin of vbap_key,
         vbeln like vbap-vbeln,
         posnr like vbap-posnr,
       end of vbap_key.

  vbap_key-vbeln = object-key-salesdocument.

  select * from vbap where vbeln = object-key-salesdocument.
    vbap_key-posnr = vbap-posnr.
    swc_create_object item 'VBAP' vbap_key.
    append item to object-items.
  endselect.

  swc_set_table container 'Items' object-items.
end_property.

Ende des Inhaltsbereichs