cancel
Showing results for 
Search instead for 
Did you mean: 

How can I merge rows of internal tables in another table?

former_member555048
Participant
0 Kudos

Hi!

I created an own table type:

TYPES: BEGIN OF it_mypartner,
guid TYPE crmt_object_guid,
fullname TYPE bu_name1tx,
number TYPE crmt_partner_no,
END OF it_mypartner.

DATA lt_mypartner TYPE STANDARD TABLE OF it_mypartner.
DATA ls_mypartner TYPE it_mypartner.

Now I want to fill the rows by using local tables. I tried by "move-corresponding". After moving the first row, everything worked as plannend. The GUID was moved. But after moving the fullname, the fullname was moved and the GUID is 0000...

MOVE-CORRESPONDING lt_partner TO lt_mypartner.
MOVE-CORRESPONDING lt_gotpartner TO lt_mypartner.

Obviously move-corresponding is the wrong approach. How can I do this different?

Accepted Solutions (1)

Accepted Solutions (1)

bertrand_delvallee
Active Participant
0 Kudos

Hello,

Your problem is that you have 2 sources of data (lt_partner and lt_gotpartner) and there is no logic decision in you code to deal with the 4 basic logical situations :

- If lt_partner field is empty and lt_gotpartner is empty then lt_mypartner field is empty (obviously)

- If lt_partner field is empty and lt_gotpartner is NOT empty then lt_mypartner field is ...? (you have to decide)

- If lt_partner field is NOT empty and lt_gotpartner is empty then lt_mypartner field is ...? (you have to decide)

- If lt_partner field is NOT empty and lt_gotpartner is NOT empty then lt_mypartner field is ...? (you have to decide)

Moreover, MOVE-CORRESPONDING statements is just a convenient way to write "Destination-field = Source-Field" for every "Field" in common. So 2 statements code is basically just :

t_mypartner-guid = lt_partner-guid.

t_mypartner-fullname = lt_partner-fullname.

t_mypartner-number = lt_partner-number.

t_mypartner-guid = lt_gotpartner-guid.

t_mypartner-fullname = lt_gotpartner-fullname.

t_mypartner-number = lt_gotpartner-number.

So.. yeah 2 move-corresponding is the wrong approach. 🙂

Best regards

Bertrand

Answers (2)

Answers (2)

horst_keller
Product and Topic Expert
Product and Topic Expert

There are so many ways.

Read SAP's documentation about structures or internal table processing and play around ...

Especially check the example under

https://help.sap.com/doc/abapdocu_752_index_htm/7.52/en-US/index.htm?file=abenfor_in_itab.htm

Jelena
Active Contributor

Maybe you guys should do some kind of ABAP lunch-and-learn event at SAP. Just sayin'...

horst_keller
Product and Topic Expert
Product and Topic Expert

Hey, we have BC400 ...

Sandra_Rossi
Active Contributor

You have the CORRESPONDING constructor (>= 7.40 SP 😎 with the EXCEPT word, and the CL_ABAP_CORRESPONDING class (>= 7.50)