Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

append data in a particular filed of a work area.

Former Member
0 Kudos

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.

8 REPLIES 8

nabheetscn
Active Contributor
0 Kudos

Please search about modify statement. Use modify in second loop.

Former Member
0 Kudos

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

Former Member
0 Kudos

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.

arindam_m
Active Contributor
0 Kudos

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

Former Member
0 Kudos

Hi ,

Try Modify Statement Using Transporting <field>.

Former Member
0 Kudos

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

former_member215424
Active Participant
0 Kudos

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?

Former Member
0 Kudos

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