Hallo,
danke erstmal für deine Hilfe. Leider komme ich nicht ganz so gut voran.
* Datendeklarationen
* Object Map
data: lo_object_map type ref to cl_object_map.
* Business-Objekt-Referenz
data: lo_auftrag type ref to zvg_bo_auftrag.
* Interne Tabelle vom Typ ZVG__ST_AUFTRAG
data: lt_auftraege type table of zvg_st_auftrag.
* Field-Symbol für einen Datensatz
field-symbols: <auftrag> type zvg_ST_AUFTRAG.
* Erzeugen der Object-Map
create object LO_OBJECT_MAP.
* Datenbankselektion
SELECT vbap~matnr
vbak~kunnr
vbup~vbeln
vbap~erdat
INTO CORRESPONDING FIELDS OF TABLE lt_auftraege
FROM vbup AS vbup
INNER JOIN vbap AS vbap ON vbup~vbeln EQ vbap~vbeln
INNER JOIN vbak AS vbak ON vbup~vbeln EQ vbak~vbeln
WHERE vbup~lfsta EQ 'a'.
* Befüllen der Objekt-Map im Loop
loop at LT_AUFTRAEGE ASSIGNING <AUFTRAG>.
create OBJECT LO_AUFTRAG.
if LO_AUFTRAG is BOUND.
LO_AUFTRAG->SET_DATA( IS_DATA = <AUFTRAG> ).
LO_OBJECT_MAP->PUT( key = <AUFTRAG>-VBELN
value = LO_AUFTRAG ).
endif.
clear LO_AUFTRAG.
endloop.
* Belege Rückgabestrukur
RETURN ?= LO_OBJECT_MAP.
Mein Struktur sieht so aus:
LFSTA
VBELN
MATNR
ERDAT
Aktivieren lässt sich das ganze bereits. Jedoch bekomme ich in der Testumgebung, wenn ich die Methode ausführe als aller erstes ein Fenster mit dem Titel "Setzen der generischen Parameter". Das machte mich schon stuzig.
Dannach hab ich das Fenster einfach mit OK bestätigt und wollte mir die Object Map angucken. Diese ist jedoch leider leer 😞