Code: Alles auswählen.
Perform f_nast using gt_sap changing gt_nast.
Form f_nast
using p_table type STANDARD TABLE ty_vbrk changing p_nast.
SELECT objky kschl erdat vstat parnr
INTO CORRESPONDING FIELDS OF TABLE p_nast
FROM nast FOR ALL ENTRIES IN p_table
WHERE objky EQ p_table-vbeln AND
kschl EQ 'X'.
endform.
Code: Alles auswählen.
Form f_nast
using p_table type STANDARD TABLE ty_vbrk changing p_nast.
Code: Alles auswählen.
TYPES:
ty_vbrk TYPE TABLE OF vbrk.
DATA:
tab_sap TYPE STANDARD TABLE OF vbrk,
tab_nast TYPE STANDARD TABLE OF nast.
Perform f_nast using tab_sap changing tab_nast.
Form f_nast
using p_table type ty_vbrk changing p_nast.
SELECT objky,kschl,erdat, vstat,parnr
INTO CORRESPONDING FIELDS OF TABLE @p_nast
FROM nast FOR ALL ENTRIES IN @p_table
WHERE objky EQ @p_table-vbeln AND
@kschl EQ 'X'.
endform.
Code: Alles auswählen.
perform f_nast using CORRESPONDING ty_objky(gt_sap mapping objky = vbeln) changing gt_nast.
Code: Alles auswählen.
types: BEGIN OF ty_nast,
objky TYPE c LENGTH 50,
kschl TYPE nast-kschl,
erdat TYPE nast-erdat,
vstat TYPE nast-vstat,
parnr TYPE c LENGTH 10,
END OF ty_nast,
BEGIN OF ty_vbrk,
vbeln TYPE c LENGTH 30,
fkart TYPE vbrk-fkart,
fkdat TYPE vbrk-fkdat,
rfbsk TYPE vbrk-rfbsk,
END OF ty_vbrk.
data: gt_sap type Standard table of ty_vbrk,
gt_nast type Standard table of ty_nast.
perform f_nast using gt_sap changing gt_nast.
form f_nast
using p_table type ty_vbrk changing p_nast type ty_nast.
SELECT objky kschl erdat vstat parnr
INTO CORRESPONDING FIELDS OF table p_nast
FROM nast FOR ALL ENTRIES IN p_table
WHERE objky EQ p_table-vbeln AND
kschl EQ 'x'.
endform.
gt_sap und p_table sind bei dir aktuell nicht gleich deklariert.Bei PERFORM bzw. CALL FUNCTION "F_NAST" ist der Aktualparameter "GT_SAP" zum Formalparameter "P_TABLE" inkompatibel.
Aber eigentlich sind doch gt_sap und p_table komplett gleich deklariert.
Code: Alles auswählen.
types: tty_vbrk type table of ty_vbrk,
tty_nast type table of ty_nast.
Code: Alles auswählen.
types: BEGIN OF ty_nast,
objky TYPE c LENGTH 50,
kschl TYPE nast-kschl,
erdat TYPE nast-erdat,
vstat TYPE nast-vstat,
parnr TYPE c LENGTH 10,
END OF ty_nast,
BEGIN OF ty_vbrk,
vbeln TYPE c LENGTH 30,
fkart TYPE vbrk-fkart,
fkdat TYPE vbrk-fkdat,
rfbsk TYPE vbrk-rfbsk,
END OF ty_vbrk.
types: tty_vbrk type table of ty_vbrk,
tty_nast type table of ty_nast.
data: gt_sap type tty_vbrk,
gt_nast type tty_nast.
perform f_nast using gt_sap changing gt_nast.
form f_nast
using p_table type tty_vbrk changing p_nast type tty_nast.
SELECT objky kschl erdat vstat parnr
INTO CORRESPONDING FIELDS OF table p_nast
FROM nast FOR ALL ENTRIES IN p_table
WHERE objky EQ p_table-vbeln AND
kschl EQ 'x'.
endform.
Das liegt daran, dass CORRESPONDING() aus der neuen 7.40-Syntax stammt. Der alte PERFORM-Befehl unterstützt diese jedoch nicht. Du musst also entweder OO machen oder Deine Werte vor dem PERFORM in eine Struktur kopieren, die der Typisierung des entsprechenden FORM-Parameters entspricht.Wenn ich grundsätzlich versuche mit corresponding zu arbeiten, erhalte ich die Meldung, dass das Feld "Corresponding" unbekannt ist.