‎2007 Dec 07 7:49 AM
Hi everybody...
I need selet data from 2 tables VBAP and VBAK.which am doing succesfully into internal table it_vbak and it_vbap.But i need to give both the tables data into it_final which am doing like below.But the problem is all the data is selected twice.Please help.
FORM populate_it_final .
LOOP at it_vbak.
LOOP at it_vbap.
clear it_final.
it_final-vbeln = it_vbak-vbeln.
it_final-netwr = it_vbak-netwr.
it_final-ernam = it_vbak-ernam.
it_final-audat = it_vbak-audat.
it_final-bstnk = it_vbak-bstnk.
it_final-auart = it_vbak-auart.
it_final-matnr = it_vbap-matnr.
it_final-posnr = it_vbap-posnr.
it_final-werks = it_vbap-werks.
APPEND it_final.
endloop.
endloop.
endform.
With Regadrs
Vijay
‎2007 Dec 07 7:52 AM
Use read statement on VBAP table inside the loop of VBAK and pass data to final internal table.
FORM populate_it_final .
SORT IT_VBAP BY VBELN.
LOOP at it_vbak.
Read table it_vbap into wa with key vbeln = it_final-vbap binary search.
if sy-subrc = 0.
it_final-vbeln = it_vbak-vbeln.
it_final-netwr = it_vbak-netwr.
it_final-ernam = it_vbak-ernam.
it_final-audat = it_vbak-audat.
it_final-bstnk = it_vbak-bstnk.
it_final-auart = it_vbak-auart.
it_final-matnr = wa_vbap-matnr.
it_final-posnr = wa_vbap-posnr.
it_final-werks = wa_vbap-werks.
APPEND it_final.
clear it_final.
endif.
endloop.
endform.
Regards,
Satish
Message was edited by:
Satish Panakala
‎2007 Dec 07 7:53 AM
Hi satish
Thanks for the inpuit but can u give dat piece of code
vijay
‎2007 Dec 07 7:53 AM
hi,
check the code below:
wa_vbap same as it_vbap.
wa_vbak same as it_vbak.
wa_final same as it_final.
loop at it_vbap into wa_vbap.
read table it_vbak into wa_vbak with key vbeln = wa_vbap-vbeln.
if sy-subrc eq 0.
wa_final-vbeln =wa_vbak-vbeln.
wa_final-netwr = wa_vbak-netwr.
wa_final-ernam = wa_vbak-ernam.
wa_final-audat =wa_vbak-audat.
wa_final-bstnk = wa_vbak-bstnk.
wa_final-auart = wa_vbak-auart.
wafinal-matnr =wa_vbap-matnr.
wa_final-posnr =wa_vbap-posnr.
wa_final-werks = wa_vbap-werks.
endif.
append wa_final to it_final.
clear wa_final,wa_vbak, wa_vbap.
endloop.
Regards
Kannaiah
‎2007 Dec 07 7:55 AM
Hi
If the data is selected twice then use the statement
Delete adjacent duplicates from itab
and delete all the repeated data.
If you use Read statement then it performs to read only single line of data
Regards
Pavan
‎2007 Dec 07 7:56 AM
Hi
FORM populate_it_final .
LOOP at it_vbak.
LOOP at it_vbap where vbeln = it_vbak-vbeln. ( Vbeln must be available in VBAK).
clear it_final.
it_final-vbeln = it_vbak-vbeln.
it_final-netwr = it_vbak-netwr.
it_final-ernam = it_vbak-ernam.
it_final-audat = it_vbak-audat.
it_final-bstnk = it_vbak-bstnk.
it_final-auart = it_vbak-auart.
it_final-matnr = it_vbap-matnr.
it_final-posnr = it_vbap-posnr.
it_final-werks = it_vbap-werks.
APPEND it_final.
endloop.
endloop.
endform.
For Performance basis Use Read Statement as suggested .
Hope it Helps.
Praveen
With Regadrs
Vijay
‎2007 Dec 07 7:56 AM
Hi Vijay
Instead of Looping twice use only one loop and read other internal table in that loop using key field.
loop at i_vbap
read table i_vbak with key vbeln = i_vbap-vbeln
if sy-subrc = 0
i_output-vbeln = i_vbak-vbeln.
....
....
append i_output.
endif.
regards,
vikas
plz reward if helpful