adesso orange🍊Stellenangebote:
Software Engineer Trainee · Senior
| (Senior) Cloud Software Engineer BTP
(Senior) Consultant Technologie · Consultant ABAP
Werkstudent Softwareentwicklung · Fiori / UI5 · Consulting · Application Management
Datensätze mit RFC FuBa paketweise bekommen: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Zeile 20: | Zeile 20: | ||
ENDIF. | ENDIF. | ||
"Wichtig für den SELECT in der DO-Schleife, damit neue Materialnummern selektiert werden. | "Wichtig für den SELECT in der DO-Schleife, damit nur neue Materialnummern selektiert werden. | ||
gv_last_mat = gt_mara[ lines( gt_mara ) ]. | gv_last_mat = gt_mara[ lines( gt_mara ) ]. | ||
Aktuelle Version vom 10. Mai 2022, 14:14 Uhr
Dies ist ein einfaches Beispiel wie man paketweise Datensätze via RFC Baustein bekommen kann. Die Aufteilung in Paketen ist bei extrem vielen Datensätzen notwendig.
DO.
"Wir selektieren die jeweiligen Materialnummern von der MARA
"von dem System, der die Kurztexte vom Zielsystem abfragen möchte
"Dabei wird Paketweise z.B. 1000 Datensätze selektiert und nur diese,
"die nicht bereits für die Anfrage ausgewählt wurden.
SELECT matnr FROM mara INTO TABLE @DATA(gt_mara)
UP TO gv_packsize ROWS
WHERE matnr IN gt_mat_range
AND matnr > gv_last_mat
ORDER BY matnr ASCENDING.
"Unsere Return Bedingung. Wenn keine Datensätze mehr zu bearbeiten sind,
"springen wir aus der DO-Schleife raus.
IF sy-dbcnt = 0.
EXIT.
ENDIF.
"Wichtig für den SELECT in der DO-Schleife, damit nur neue Materialnummern selektiert werden.
gv_last_mat = gt_mara[ lines( gt_mara ) ].
"Dieser FuBa ist im Zielsystem vorhanden.
"Anhand der Materialnummer werden die Kurztexte gelesen und dem System übergeben,
"der die Kurztexte anfragt.
CALL FUNCTION 'Z_GET_MAT_SHORTEXT' DESTINATION gv_rfc_dest
EXPORTING
it_matnr = gt_mara
IMPORTING
et_matnr_maktx = gt_matnr_maktx_dest
EXCEPTIONS
system_failure = 1
communication_failure = 2
OTHERS = 3.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE zcl_bal.
ENDIF.
"Hier kommt irgendeine Verarbeitung mit der gt_matnr_maktx_dest...
ENDO.