‎2008 Oct 29 11:46 AM
in this below code,what more is to be added as i am getting the values from the fields of table eban in the output but not from ekko,ekpo,eket.
where to put the loop or what else is reqd?
please suggest as i m new to this and not understanding.
LOOP AT IT_EBAN.
WA_FINAL-PURREQ = IT_EBAN-BANFN.
WA_FINAL-RITEM = IT_EBAN-BNFPO.
WA_FINAL-CRTDBY = IT_EBAN-ERNAM.
WA_FINAL-REQDT = IT_EBAN-BADAT.
WA_FINAL-REQSR = IT_EBAN-AFNAM.
WA_FINAL-SHTXT = IT_EBAN-TXZ01.
WA_FINAL-QTYREQ = IT_EBAN-MENGE.
WA_FINAL-UNITS = IT_EBAN-MEINS.
WA_FINAL-VALPR = IT_EBAN-PREIS.
WA_FINAL-CURR = IT_EBAN-WAERS.
WA_FINAL-PER = IT_EBAN-PEINH.
WA_FINAL-TPRICE = IT_EBAN-RLWRT.
WA_FINAL-TPRICE$ = IT_EBAN-RLWRT.
WA_FINAL-DELRQ = IT_EBAN-LFDAT.
WA_FINAL-REQREL = IT_EBAN-FRGDT.
WA_FINAL-PO = IT_EBAN-EBELN.
WA_FINAL-ITEM = IT_EBAN-EBELP.
WA_FINAL-PODATE = IT_EBAN-BEDAT.
WA_FINAL-QTYORD = IT_EBAN-BSMNG.
CLEAR IT_EKPO.
read table it_ekpo into wa_ekpo with key meins = wa_final-UNITS1
binary search.
WA_FINAL-UNITS1 = IT_EKPO-MEINS.
WA_FINAL-VALPR1 = IT_EKPO-NETPR.
WA_FINAL-PER1 = IT_EKPO-PEINH.
WA_FINAL-TPRICE1 = IT_EKPO-NETWR.
CLEAR IT_EKKO.
READ TABLE IT_EKKO WITH KEY waers = WA_FINAL-CURRPO
BINARY SEARCH.
WA_FINAL-CURRPO = IT_EKKO-WAERS.
CLEAR IT_EKET.
READ TABLE IT_EKET WITH KEY EINDT = WA_FINAL-DELPO
BINARY SEARCH.
WA_FINAL-DELPO = IT_EKET-EINDT.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
endloop.
‎2008 Oct 29 11:49 AM
LOOP AT IT_EBAN.
WA_FINAL-PURREQ = IT_EBAN-BANFN.
WA_FINAL-RITEM = IT_EBAN-BNFPO.
WA_FINAL-CRTDBY = IT_EBAN-ERNAM.
WA_FINAL-REQDT = IT_EBAN-BADAT.
WA_FINAL-REQSR = IT_EBAN-AFNAM.
WA_FINAL-SHTXT = IT_EBAN-TXZ01.
WA_FINAL-QTYREQ = IT_EBAN-MENGE.
WA_FINAL-UNITS = IT_EBAN-MEINS.
WA_FINAL-VALPR = IT_EBAN-PREIS.
WA_FINAL-CURR = IT_EBAN-WAERS.
WA_FINAL-PER = IT_EBAN-PEINH.
WA_FINAL-TPRICE = IT_EBAN-RLWRT.
WA_FINAL-TPRICE$ = IT_EBAN-RLWRT.
WA_FINAL-DELRQ = IT_EBAN-LFDAT.
WA_FINAL-REQREL = IT_EBAN-FRGDT.
WA_FINAL-PO = IT_EBAN-EBELN.
WA_FINAL-ITEM = IT_EBAN-EBELP.
WA_FINAL-PODATE = IT_EBAN-BEDAT.
WA_FINAL-QTYORD = IT_EBAN-BSMNG.
CLEAR IT_EKPO.
read table it_ekpo into wa_ekpo with key meins = wa_final-*UNITS*
binary search.
*if sy-subrc eq 0.*
WA_FINAL-UNITS1 = *wa_ekpo*-MEINS.
WA_FINAL-VALPR1 = *wa_ekpo*-NETPR.
WA_FINAL-PER1 = *wa_ekpo*-PEINH.
WA_FINAL-TPRICE1 = *wa_ekpo*-NETWR.
*endif.*
CLEAR IT_EKKO.
READ TABLE IT_EKKO WITH KEY waers = WA_FINAL-*CURR*
BINARY SEARCH.
if sy-subrc eq 0.
WA_FINAL-CURRPO = IT_EKKO-WAERS.
endif.
CLEAR IT_EKET.
READ TABLE IT_EKET WITH KEY EINDT = WA_FINAL-*DELRQ*
BINARY SEARCH.
WA_FINAL-DELPO = IT_EKET-EINDT.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
endloop
‎2008 Oct 29 11:48 AM
It seems that your READ TABLE statements don't find any entries. Please check SY-SUBRC via debugging.
Thomas
‎2008 Oct 29 11:48 AM
hi,
you first have Clear table IT_EKKO, then try to read it , how will you get values? Similar case for the other tables . First read the table , then transfer data , then , if required , clear it.
like,
read table it_ekpo into wa_ekpo with key meins = wa_final-UNITS1
binary search.
WA_FINAL-UNITS1 = IT_EKPO-MEINS.
WA_FINAL-VALPR1 = IT_EKPO-NETPR.
WA_FINAL-PER1 = IT_EKPO-PEINH.
WA_FINAL-TPRICE1 = IT_EKPO-NETWR.
CLEAR IT_EKPO.CLEAR IT_EKKO.
READ TABLE IT_EKKO WITH KEY waers = WA_FINAL-CURRPO
BINARY SEARCH.
WA_FINAL-CURRPO = IT_EKKO-WAERS.so on.
Regards,
Anirban
‎2008 Oct 29 11:49 AM
Hi,
A BINARY SEARCH table read only works if the table you are reading is sorted by the access fields, is the read failing and hence no data? Check the return code in the debugger to see what is happening at each of the table reads.
Darren
‎2008 Oct 29 11:49 AM
LOOP AT IT_EBAN.
WA_FINAL-PURREQ = IT_EBAN-BANFN.
WA_FINAL-RITEM = IT_EBAN-BNFPO.
WA_FINAL-CRTDBY = IT_EBAN-ERNAM.
WA_FINAL-REQDT = IT_EBAN-BADAT.
WA_FINAL-REQSR = IT_EBAN-AFNAM.
WA_FINAL-SHTXT = IT_EBAN-TXZ01.
WA_FINAL-QTYREQ = IT_EBAN-MENGE.
WA_FINAL-UNITS = IT_EBAN-MEINS.
WA_FINAL-VALPR = IT_EBAN-PREIS.
WA_FINAL-CURR = IT_EBAN-WAERS.
WA_FINAL-PER = IT_EBAN-PEINH.
WA_FINAL-TPRICE = IT_EBAN-RLWRT.
WA_FINAL-TPRICE$ = IT_EBAN-RLWRT.
WA_FINAL-DELRQ = IT_EBAN-LFDAT.
WA_FINAL-REQREL = IT_EBAN-FRGDT.
WA_FINAL-PO = IT_EBAN-EBELN.
WA_FINAL-ITEM = IT_EBAN-EBELP.
WA_FINAL-PODATE = IT_EBAN-BEDAT.
WA_FINAL-QTYORD = IT_EBAN-BSMNG.
CLEAR IT_EKPO.
read table it_ekpo into wa_ekpo with key meins = wa_final-*UNITS*
binary search.
*if sy-subrc eq 0.*
WA_FINAL-UNITS1 = *wa_ekpo*-MEINS.
WA_FINAL-VALPR1 = *wa_ekpo*-NETPR.
WA_FINAL-PER1 = *wa_ekpo*-PEINH.
WA_FINAL-TPRICE1 = *wa_ekpo*-NETWR.
*endif.*
CLEAR IT_EKKO.
READ TABLE IT_EKKO WITH KEY waers = WA_FINAL-*CURR*
BINARY SEARCH.
if sy-subrc eq 0.
WA_FINAL-CURRPO = IT_EKKO-WAERS.
endif.
CLEAR IT_EKET.
READ TABLE IT_EKET WITH KEY EINDT = WA_FINAL-*DELRQ*
BINARY SEARCH.
WA_FINAL-DELPO = IT_EKET-EINDT.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
endloop
‎2008 Oct 29 12:58 PM
my qestion has been partly anserwed but still i m not getting the output from the value of fields ekko and ekpo.
please reply.
thanks for timely reply.
‎2008 Oct 29 2:47 PM
CLEAR IT_EKPO.
read table it_ekpo into wa_ekpo with key meins = wa_final-UNITS1
binary search.
WA_FINAL-UNITS1 = IT_EKPO-MEINS.
WA_FINAL-VALPR1 = IT_EKPO-NETPR.
WA_FINAL-PER1 = IT_EKPO-PEINH.
WA_FINAL-TPRICE1 = IT_EKPO-NETWR.In this code it_ekpo never gets populated. wa_ekpo gets filled if the read is succcessfull but wa_ekpo is not used..
CLEAR IT_EKKO.
READ TABLE IT_EKKO WITH KEY waers = WA_FINAL-CURRPO
BINARY SEARCH..In this read WA_FINAL-CURRPO never has a value so the read will always fail
.
WA_FINAL-CURRPO = IT_EKKO-WAERS.
CLEAR IT_EKET.
READ TABLE IT_EKET WITH KEY EINDT = WA_FINAL-DELPO
BINARY SEARCH..In this read WA_FINAL-DELPO never has a value so the read will always fail
Regards
Greg Kern
‎2008 Oct 29 11:50 AM
Hi Tanisha,
Before reading EKPO and other tables, you are clearing the IT_EKPO values.
You are reading in to WA_EKPO, but using IT_EKPO to fill the values.
Change them to WA_EKPO. it should work.
Best Regards,
Ram.
‎2008 Oct 29 11:57 AM
Hi Tanisha,
Please check out the below updated code for you.
sort ekko by ebeln.
sort ekpo by ebeln ekpo.
sort IT_EKET by eindt.
LOOP AT IT_EBAN.
WA_FINAL-PURREQ = IT_EBAN-BANFN.
WA_FINAL-RITEM = IT_EBAN-BNFPO.
WA_FINAL-CRTDBY = IT_EBAN-ERNAM.
WA_FINAL-REQDT = IT_EBAN-BADAT.
WA_FINAL-REQSR = IT_EBAN-AFNAM.
WA_FINAL-SHTXT = IT_EBAN-TXZ01.
WA_FINAL-QTYREQ = IT_EBAN-MENGE.
WA_FINAL-UNITS = IT_EBAN-MEINS.
WA_FINAL-VALPR = IT_EBAN-PREIS.
WA_FINAL-CURR = IT_EBAN-WAERS.
WA_FINAL-PER = IT_EBAN-PEINH.
WA_FINAL-TPRICE = IT_EBAN-RLWRT.
WA_FINAL-TPRICE$ = IT_EBAN-RLWRT.
WA_FINAL-DELRQ = IT_EBAN-LFDAT.
WA_FINAL-REQREL = IT_EBAN-FRGDT.
WA_FINAL-PO = IT_EBAN-EBELN.
WA_FINAL-ITEM = IT_EBAN-EBELP.
WA_FINAL-PODATE = IT_EBAN-BEDAT.
WA_FINAL-QTYORD = IT_EBAN-BSMNG.
CLEAR IT_EKPO.
read table it_ekpo into wa_ekpo with key meins = wa_final-UNITS1
binary search.
if sy-subrc = 0.
WA_FINAL-UNITS1 = IT_EKPO-MEINS.
WA_FINAL-VALPR1 = IT_EKPO-NETPR.
WA_FINAL-PER1 = IT_EKPO-PEINH.
WA_FINAL-TPRICE1 = IT_EKPO-NETWR.
endif.
CLEAR IT_EKKO.
READ TABLE IT_EKKO WITH KEY waers = WA_FINAL-CURRPO
BINARY SEARCH.
if sy-subrc = 0.
WA_FINAL-CURRPO = IT_EKKO-WAERS.
endif.
CLEAR IT_EKET.
READ TABLE IT_EKET WITH KEY EINDT = WA_FINAL-DELPO
BINARY SEARCH.
if sy-subrc = 0.
WA_FINAL-DELPO = IT_EKET-EINDT.
endif.
APPEND WA_FINAL TO IT_FINAL.
CLEAR WA_FINAL.
endloop.
Thanks,
Chidanand
‎2008 Oct 29 12:44 PM
Hi,
In read statement you have to use the above table but not final
i.e meins = wa_eban-meins.