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.................