Datensätze mit RFC FuBa paketweise bekommen: Unterschied zwischen den Versionen

Aus SAP Wiki ツ
M1ch3lde (Diskussion | Beiträge)
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)…“
 
M1ch3lde (Diskussion | Beiträge)
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.