Application Development and Automation 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: 
Read only

Problem with Loop and Table relation

Former Member
0 Likes
951

I am new in ABAP development.

I want relation with EKPO with RSEG table. I want show result when i give Value Purchasing Document Nr in paramter then Show result as such as

Material Nr , Quantity with Unit from RSEG Table and Material Name , Vendor Material Nr from EKPO Table.

i want show this result

Purchasind Doc ,  Material Nr , Material Name ,         , Vendor Material Nr , Qunatity with Unit

414-0100               500-180     Diaminobenzene 50%   .......................            900

.....                         500-190      AABC 15%                      .........                        1000

.....                         500-200       ABD 80%                   .........                          1200

i have code but show different result as such below

Purchasind Doc ,  Material Nr ,  Material Name ,         , Vendor Material Nr ,  Qunatity with Unit

414-0100               500-180       Diaminobenzene 50%                 0                    900

.....                         500-180       Diaminobenzene 50%                 0                    900

.....                         500-180       Diaminobenzene 50%          .      0                     900

                        

my code as below

PARAMETERS : P_EBELN TYPE EBELN.

TYPES : BEGIN OF TY_RSEG,

         MATNR TYPE RSEG-MATNR,

         TXZ01 TYPE EKPO-TXZ01,

         IDLNF TYPE EKPO-IDNLF,

         BPMNG TYPE RSEG-BPMNG,

END OF TY_RSEG.

DATA IT_EKKO TYPE TABLE OF EKPO.

DATA WA_EKKO TYPE          EKPO.

DATA I_RSEG TYPE TABLE OF RSEG.

DATA W_RSEG TYPE          RSEG.

DATA IT_RSEG TYPE TABLE OF TY_RSEG .

DATA WA_RSEG TYPE          TY_RSEG.

FIELD-SYMBOLS <FS_S> TYPE TY_RSEG.

SELECT   * FROM EKPO INTO TABLE IT_EKKO

   WHERE EBELN = P_EBELN.

   LOOP AT IT_EKKO INTO WA_EKKO.

      WA_RSEG-TXZ01 = WA_EKKO-TXZ01.

      WA_RSEG-IDLNF = WA_EKKO-IDNLF.

    APPEND WA_RSEG TO IT_RSEG.

     ENDLOOP.

  SELECT * FROM RSEG INTO TABLE I_RSEG

    FOR ALL ENTRIES IN IT_EKKO

    WHERE EBELN IT_EKKO-EBELN

    AND   EBELP = IT_EKKO-EBELP.

    LOOP AT I_RSEG INTO  W_RSEG.

      WA_RSEG-MATNR = W_RSEG-MATNR.

      WA_RSEG-BPMNG = W_RSEG-BPMNG.

     APPEND WA_RSEG TO IT_RSEG.

  ENDLOOP.

  LOOP AT IT_RSEG ASSIGNING <FS_S>.

     WRITE: /    <FS_S>-MATNR,

                 <FS_S>-TXZ01,

                 <FS_S>-IDLNF,

                 <FS_s>-BPMNG.

ENDLOOP.

1 ACCEPTED SOLUTION
Read only

kumar_sp
Explorer
0 Likes
916

Hi,

Try to below code hope ur problem will be resolved.

PARAMETERS : P_EBELN TYPE EBELN.

TYPES : BEGIN OF TY_FINAL,

          EBELN TYPE EBELN,

          ebelp TYPE ebelp,

          MATNR TYPE RSEG-MATNR,

          TXZ01 TYPE EKPO-TXZ01,

          IDLNF TYPE EKPO-IDNLF,

          BPMNG TYPE RSEG-BPMNG,

END OF TY_FINAL.

DATA IT_EKPO TYPE TABLE OF EKPO.

DATA WA_EKPO TYPE          EKPO.

DATA it_RSEG TYPE TABLE OF RSEG.

DATA Wa_RSEG TYPE          RSEG.

DATA IT_final TYPE TABLE OF TY_final .

DATA WA_final TYPE          TY_final.

SELECT   * FROM EKPO INTO TABLE IT_EKPO

    WHERE EBELN = P_EBELN.

SELECT * FROM RSEG INTO TABLE It_RSEG

     FOR ALL ENTRIES IN IT_EKpO

     WHERE EBELN IT_EKpO-EBELN

     AND   EBELP = IT_EKpO-EBELP.

LOOP AT IT_EKpO INTO WA_EKPO.

   READ TABLE It_RSEG INTO Wa_RSEG WITH KEY  EBELN = WA_EKPO-EBELN EBELP = WA_EKPO-EBELP.

   wa_final-ebeln = wa_ekpo-ebeln.

   wa_final-ebelp = wa_ekpo-ebelp.

   wa_final-matnr = wa_rseg-matnr.

   wa_final-IDLNF = wa_ekpo-IDNLF.

   wa_final-BPMNG = wa_rseg-BPMNG.

ENDLOOP.

Regards,

kumarb .p

7 REPLIES 7
Read only

archanapawar
Contributor
0 Likes
916

Hi Muhammad,

You have fetched data from EKPO into I_EKKO and data from RSEG into I_RSEG.

You need to use both these internal tables together and display the data. You are appeinding the records to IT_RSEG incorrectly.

Refer below code.

Loop at IT_EKKO into wa_ekko.

     read table I_RSEG into wa_rseg with key EBELN =  WA_EKKO-EBELN

                                                                                         EBELP = WA_EKKO-EBELP.

     if sy-subrc eq 0.

*- Write data directly or fill internal table IT_RSEG.         

     endif.

Read only

ashraf_usmani
Participant
0 Likes
916

hi

Make one Final Itab Fill all data which you have fetched from EKPO and RSEG by Looping IT_Resg and use Read Table for EKPO with Binary search.

Note For Binary search you Have to sort table first.

Hope you will got the answer.

Regards

Ashraf Usmani

Read only

kumar_sp
Explorer
0 Likes
917

Hi,

Try to below code hope ur problem will be resolved.

PARAMETERS : P_EBELN TYPE EBELN.

TYPES : BEGIN OF TY_FINAL,

          EBELN TYPE EBELN,

          ebelp TYPE ebelp,

          MATNR TYPE RSEG-MATNR,

          TXZ01 TYPE EKPO-TXZ01,

          IDLNF TYPE EKPO-IDNLF,

          BPMNG TYPE RSEG-BPMNG,

END OF TY_FINAL.

DATA IT_EKPO TYPE TABLE OF EKPO.

DATA WA_EKPO TYPE          EKPO.

DATA it_RSEG TYPE TABLE OF RSEG.

DATA Wa_RSEG TYPE          RSEG.

DATA IT_final TYPE TABLE OF TY_final .

DATA WA_final TYPE          TY_final.

SELECT   * FROM EKPO INTO TABLE IT_EKPO

    WHERE EBELN = P_EBELN.

SELECT * FROM RSEG INTO TABLE It_RSEG

     FOR ALL ENTRIES IN IT_EKpO

     WHERE EBELN IT_EKpO-EBELN

     AND   EBELP = IT_EKpO-EBELP.

LOOP AT IT_EKpO INTO WA_EKPO.

   READ TABLE It_RSEG INTO Wa_RSEG WITH KEY  EBELN = WA_EKPO-EBELN EBELP = WA_EKPO-EBELP.

   wa_final-ebeln = wa_ekpo-ebeln.

   wa_final-ebelp = wa_ekpo-ebelp.

   wa_final-matnr = wa_rseg-matnr.

   wa_final-IDLNF = wa_ekpo-IDNLF.

   wa_final-BPMNG = wa_rseg-BPMNG.

ENDLOOP.

Regards,

kumarb .p

Read only

Former Member
0 Likes
916

thanks

Read only

Former Member
0 Likes
916

Hii der is direct relation between rseg an ekpo i.e rseg-ebeln = ekpo-ebeln.

u can use read table statement

Regards

Gaurav

Read only

Former Member
0 Likes
916

Hi,

You can use direct join to these three tables

ekko-ebeln = ekpo-ebeln

ekpo-ebeln = rseg-ebeln and ekpo-ebelp = rseg-ebelp

to be specific to the line number

Regards,

Rogelio

Read only

Former Member
0 Likes
916

Mr. Muhammad Zafarullah

follow this rule when loop and read is coming....

1 table      2table          condition.

1                 1              loop at 1st table

                                   read for 2nd table..

____________________________________________________________-

1                many         loop at for 2nd table..

                                   Read for 1st table....

_______________________________________________________________

many           1              loop at  1st table

                                    Read for 2nd table...

----------------------------------------------------------------------------------------------

many         many          loop at 1st table

                                    loop at 2nd table....

_________________________________________________

i think this information will be useful.................