09-11-2013 5:58 AM
Hello All,
I am new to SAPWorld, I am creating one Interactive report, and I am using 4 tables. and in the final report I am using data from 7 columns.
4 column from table 1
1 column from table 2
1 column from table 3
1 column from table 4.
there is a work area which have all the 7 fields. I am appending data in two loops, one loop for 1st 4 columns, and remaining from next loop.
but i am not able to generate correct result.
Is there any way I can append particular field of the work area.
CODE:-
it_final with 7 column.
LOOP AT it_vbak INTO wa_vbak WHERE vbeln IN so_vbeln.
wa_final-fvbeln = wa_vbak-vbeln.
wa_final-fauart = wa_vbak-auart.
wa_final-ferdat = wa_vbak-erdat.
wa_final-fernam = wa_vbak-ernam.
APPEND wa_vbak to it_temp.
ENDLOOP.
LOOP AT it_temp INTO wa_temp.
READ TABLE it_vbap INTO wa_vbap WITH KEY vbeln = wa_temp-vbeln.
wa_final-fposnr = wa_vbap-posnr.
READ TABLE it_vbpa INTO wa_vbpa WITH KEY vbeln = wa_temp-vbeln.
wa_final-fkunnr = wa_vbpa-kunnr.
READ TABLE it_vbkd INTO wa_vbkd WITH KEY vbeln = wa_temp-vbeln.
wa_final-fkdgrp = wa_vbkd-kdgrp.
append wa_final to it_final.
ENDLOOP.
09-11-2013 7:57 AM
09-11-2013 7:58 AM
Hi Ravi,
LOOP AT it_vbap INTO wa_vbap WHERE vbeln IN so_vbeln.
READ TABLE it_vbak INTO wa_vbak WHERE vbeln = wa_vbap-vbeln.
wa_final-fvbeln = wa_vbak-vbeln.
wa_final-fauart = wa_vbak-auart.
wa_final-ferdat = wa_vbak-erdat.
wa_final-fernam = wa_vbak-ernam.
wa_final-fposnr = wa_vbap-posnr.
READ TABLE it_vbpa INTO wa_vbpa WITH KEY vbeln = wa_vbap-vbeln.
wa_final-fkunnr = wa_vbpa-kunnr.
READ TABLE it_vbkd INTO wa_vbkd WITH KEY vbeln = wa_vbap-vbeln.
wa_final-fkdgrp = wa_vbkd-kdgrp.
append wa_final to it_final.
ENDLOOP.
I don't know why you are using SO_VBELN in Loop...
You can filter in select itself.
Regards
09-11-2013 8:01 AM
Hi Ravi,
You are not getting correct entries because for READ TABLE you need to use correct set of Key fields. Using ONLY VBELN will give only the first row data as soon as it finds its first match.
Besides, i hope you have SORTED the tables before READ as per the Keys you are going to use while reading those tables.
Also, please refer to the F1 help given on 'READ TABLE'.
Regards.
09-11-2013 8:03 AM
Hi,
Check out the MODIFY statements for internal tables. Should serve your purpose.
http://wiki.scn.sap.com/wiki/display/ABAP/Processing+of+Internal+Table
Cheers,
Arindam
09-13-2013 8:47 AM
09-13-2013 9:24 AM
Hi ,
Instead of using two loops try using a single loop ...
LOOP AT it_vbak INTO wa_vbak WHERE vbeln IN so_vbeln.
wa_final-fvbeln = wa_vbak-vbeln.
wa_final-fauart = wa_vbak-auart.
wa_final-ferdat = wa_vbak-erdat.
wa_final-fernam = wa_vbak-ernam.
READ TABLE it_vbap INTO wa_vbap WITH KEY vbeln =wa_vbak-vbeln .
wa_final-fposnr = wa_vbap-posnr.
READ TABLE it_vbpa INTO wa_vbpa WITH KEY vbeln =wa_vbak-vbeln .
wa_final-fkunnr = wa_vbpa-kunnr.
READ TABLE it_vbkd INTO wa_vbkd WITH KEY vbeln = wa_vbak-vbeln.
wa_final-fkdgrp = wa_vbkd-kdgrp.
append wa_final to it_final.
clear wa_final .
ENDLOOP.
Dont forget to clear work area ...
Regards ,
Juneed k Manha
09-13-2013 10:41 AM
Hi Ravi,
In the first loop i.e,
LOOP AT it_vbak INTO wa_vbak WHERE vbeln IN so_vbeln.
wa_final-fvbeln = wa_vbak-vbeln.
wa_final-fauart = wa_vbak-auart.
wa_final-ferdat = wa_vbak-erdat.
wa_final-fernam = wa_vbak-ernam.
APPEND wa_vbak to it_temp.
ENDLOOP.
what is the purpose of moving values to wa_final if the data is not used to move in any table?
09-13-2013 10:45 AM
Hii Ravi
Do the folowing.
LOOP AT it_vbak INTO wa_vbak WHERE vbeln IN so_vbeln.
wa_final-fvbeln = wa_vbak-vbeln.
wa_final-fauart = wa_vbak-auart.
wa_final-ferdat = wa_vbak-erdat.
wa_final-fernam = wa_vbak-ernam.
APPEND wa_vbak to it_temp.
clear wa_final.
ENDLOOP.
sort it_vbap by vbeln ascending.
sort it_vbpa byvbeln ascending.
sort it_ vbkd by vbeln ascending.
if not it_temp is initial.
LOOP AT it_temp INTO wa_temp.
READ TABLE it_vbap INTO wa_vbap WITH KEY vbeln = wa_temp-vbeln binary search.
if sy-subrc eq 0.
wa_final-fposnr = wa_vbap-posnr.
endif.
READ TABLE it_vbpa INTO wa_vbpa WITH KEY vbeln = wa_temp-vbeln binary search.
if sy-subrc eq 0.
wa_final-fkunnr = wa_vbpa-kunnr.
endif.
READ TABLE it_vbkd INTO wa_vbkd WITH KEY vbeln = wa_temp-vbeln binary search.
if sy-subrc eq 0.
wa_final-fkdgrp = wa_vbkd-kdgrp.
endif.
append wa_final to it_final.
clear wa_final.
ENDLOOP.
endif.
try to debug the program , u will get better understanding of the code u have written
regards
Syed