Datensätze mit RFC FuBa paketweise bekommen: Unterschied zwischen den Versionen
Aus SAP Wiki ツ
Die Seite wurde neu angelegt: „SELECT COUNT( * ) FROM mara INTO @DATA(gv_total) WHERE matnr IN @gt_mat_range. DO. SELECT matnr FROM mara INTO TABLE @DATA(gt_mara)…“ |
Keine Bearbeitungszusammenfassung |
||
Zeile 1: | Zeile 1: | ||
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. | |||
<syntaxhighlight lang="abap" line start="1"> | |||
SELECT COUNT( * ) FROM mara INTO @DATA(gv_total) | SELECT COUNT( * ) FROM mara INTO @DATA(gv_total) | ||
WHERE matnr IN @gt_mat_range. | WHERE matnr IN @gt_mat_range. | ||
Zeile 19: | Zeile 23: | ||
gv_current = gv_total. | gv_current = gv_total. | ||
ENDIF. | ENDIF. | ||
"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 | CALL FUNCTION 'Z_GET_MAT_SHORTEXT' DESTINATION gv_rfc_dest | ||
EXPORTING | EXPORTING | ||
Zeile 34: | Zeile 41: | ||
ENDO. | ENDO. | ||
</syntaxhighlight> |
Version vom 10. Mai 2022, 14:05 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.
SELECT COUNT( * ) FROM mara INTO @DATA(gv_total)
WHERE matnr IN @gt_mat_range.
DO.
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.
IF sy-dbcnt = 0.
EXIT.
ENDIF.
gv_last_mat = gt_mara[ lines( gt_mara ) ].
gv_current = gv_current + gv_packsize.
IF gv_current > gv_total.
gv_current = gv_total.
ENDIF.
"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.
ENDO.