SORT lt_bkpf BY bukrs belnr gjahr.
SORT lt_bseg BY bukrs belnr gjahr.
LOOP AT lt_bkpf ASSIGNING <ls_bkpf>.
READ TABLE lt_bseg TRANSPORTING NO FIELDS WITH KEY
bukrs = <ls_bkpf>-bukrs
belnr = <ls_bkpf>-belnr
gjahr = <ls_bkpf>-gjahr BINARY SEARCH.
CHECK sy-subrc = 0.
LOOP AT lt_bseg ASSIGNING <ls_bseg> FROM sy-tabix.
lv_counter = lv_counter + 1.
** Your logic **
AT END OF gjahr.
EXIT.
ENDAT.
ENDLOOP.
ENDLOOP.
******************************
Se si loopa prima sulle items evitiamo un loop pass
SORT lt_bkpf BY bukrs belnr gjahr.
SORT lt_bseg BY bukrs belnr gjahr.
LOOP AT lt_bseg ASSIGNING <ls_bseg>.
AT NEW gjahr.
READ TABLE lt_bkpf ASSIGNING <ls_bkpf> WITH KEY
bukrs = <ls_bseg>-bukrs
belnr = <ls_bseg>-belnr
gjahr = <ls_bseg>-gjahr BINARY SEARCH.
CHECK sy-subrc = 0.
ENDAT.
lv_counter = lv_counter + 1.
** Your logic **
ENDLOOP.