| *&---------------------------------------------------------------------* *& Report ZTEST_BINARY_SEARCH *& *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT ZTEST_BINARY_SEARCH. data: IT_VBAP TYPE STANDARD TABLE OF VBAP WITH HEADER LINE, IT_VBAP2 TYPE STANDARD TABLE OF VBAP WITH HEADER LINE, IT_VBAP3 TYPE STANDARD TABLE OF VBAP WITH HEADER LINE, IT_XTAb TYPE STANDARD TABLE OF VBAK WITH HEADER LINE. data: cr_usrname type vbak-ernam, doc_nr type vbak-vbeln, doc_nr2 type vbak-vbeln.. cr_usrname = 'CURA'. doc_nr = '0000005081'. doc_nr2 = '0000005081'. SELECT * FROM VBAK INTO TABLE IT_XTAB WHERE ERNAM = CR_USRNAME. IF SY-SUBRC <> 0. MESSAGE E010(ZSOP). EXIT. ENDIF. SELECT DISTINCT MANDT VBELN POSNR KWMENG KBMENG MATNR ARKTX NETWR KWMENG VRKME WAERK LPRIO VSTEL ROUTE WERKS MWSBP FROM VBAP INTO CORRESPONDING FIELDS OF TABLE IT_VBAP FOR ALL ENTRIES IN IT_XTAB WHERE VBELN = IT_XTAB-VBELN ORDER BY PRIMARY KEY. it_vbap2[] = it_vbap[]. write: /, 'standard read table ------------- ', /. do 5 times. do. read table IT_VBAP2 WITH KEY VBELN = doc_nr. if sy-subrc <> 0. exit. endif. write: /,'Vbeln', it_vbap2-vbeln, ' Posnr', it_vbap2-posnr. delete it_vbap2 index sy-tabix. enddo. write: /, 'loop index:', sy-index. doc_nr = doc_nr + 1. call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = doc_nr importing output = doc_nr. enddo. it_vbap3[] = it_vbap[]. write: /, 'binary read table ------------ ', /. do 5 times. do. read table IT_VBAP3 WITH KEY VBELN = doc_nr2 BINARY SEARCH. if sy-subrc <> 0. exit. endif. write: /,'Vbeln', it_vbap3-vbeln, ' Posnr', it_vbap3-posnr. delete it_vbap3 index sy-tabix. enddo. write: /, 'loop index:', sy-index. add 1 to doc_nr2. call function 'CONVERSION_EXIT_ALPHA_INPUT' exporting input = doc_nr2 importing output = doc_nr2. enddo. |