SAP Jobsuche bei DV-Treff
Papst BenR
vor 10 Jahre
Hallo,

ich möchte gerne mehrere Tabellen für das Befüllen einer itab benutzen.

Grundlage ist die VBUP mit dem Feld LFSTA. Wenn in LFSTA ein a steht, dann möchte ich gerne das Feld VBELN benutzen für die Selects auf die VBAP und VBAK.

In VBAP möchte ich gerne das Felder MATNR (wenn VBELN gleich ist) und aus VBAK das Feld KUNNR (wenn VBELN gleich ist).

Ist dies in einer Select Abfrage möglich?

Förderer

M&Mler
vor 10 Jahre
SELECT vbup~lfsta FROM vbup

INTO was_auch_immer_für_eine_variable

INNER JOIN VBAK

ON vbak~vbeln = vbup~vbeln

INNER JOIN abcdef

ON abcdef~zzz = VBAK~zzzz

WHERE vbup~lfsta = 'a'

Entweder machst du das mit einem JOIN oder einem Subquery

http://help.sap.com/saphelp_470/helpdata/de/dc/dc7614099b11d295320000e8353423/content.htm 

http://help.sap.com/abapdocu_702/de/abapselect_join.htm 

Grüße

Papst BenR
vor 10 Jahre
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 😞