top of page

SAP ABAP - Collect into table with new 740 syntax

Updated: Aug 29, 2022




Instead of "loop at" and "Collect" code,



LOOP AT gt_Report REFERENCE INTO DATA(lr_report).
	CREATE DATA lr_report_c.
     	lr_report_c->werks = lr_report->werks.
    	lr_report_c->matnr = lr_report->matnr.
     	lr_report_c->vbeln = lr_report->vbeln.
     	lr_report_c->posnr = lr_report->posnr.
     	lr_report_c->tob_kapan = lr_report->tob_kapan.
	COLLECT lr_report_c INTO gt_report_c.
ENDLOOP.


you can use new syntax of ABAP 740 and above.



gt_report_c[] = VALUE #( FOR wa IN gt_report
                          (
                            werks = wa-werks
                            matnr = wa-matnr
                            vbeln = wa-vbeln
                            posnr = wa-posnr
                            tob_kapan = REDUCE #( INIT lv_top = 
                                                   lv_top_init
                                                   FOR wa2 IN gt_report
                                                   WHERE 
                                                   ( werks = wa-werks AND                                                                                                                      
                                                     matnr = wa-matnr AND
                                                     vbeln = wa-vbeln AND
                                                     posnr = wa-posnr
                                                    )                 
                                     NEXT lv_top = lv_top + wa2-tob_kapan
                                                 )
                             )
                          ).


It will be much much much faster.







47 views0 comments

Recent Posts

See All
Post: Blog2_Post
bottom of page