‎2014 Dec 14 8:20 PM
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.
‎2014 Dec 15 5:26 AM
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
‎2014 Dec 15 4:56 AM
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.
‎2014 Dec 15 5:11 AM
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
‎2014 Dec 15 5:26 AM
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
‎2014 Dec 15 7:32 PM
‎2014 Dec 15 5:29 AM
Hii der is direct relation between rseg an ekpo i.e rseg-ebeln = ekpo-ebeln.
u can use read table statement
Regards
Gaurav
‎2014 Dec 15 6:48 AM
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
‎2014 Dec 16 12:34 AM
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.................