H All,
I have a requirement to read frieght cost for each PO item.
Please see the below code and let me know is this approach is correct or not.
* Fetch PO header details for selected criteria
SELECT ebeln "Purchasing document
bstyp
bsart
loekz
lifnr "Vendor
ekgrp "Purchasing group
bedat "Document date
knumv
INTO TABLE t_ekko
FROM ekko
WHERE ebeln IN s_ebeln
AND lifnr IN s_lifnr
AND ekgrp IN s_ekgrp
AND bedat IN s_bedat.
IF sy-subrc EQ 0.
DELETE t_ekko
WHERE ( bstyp NE c_bstyp_f
AND bsart NE c_bsart_nb
AND loekz NE space ).
SELECT knumv
kposn
kdatu
kbetr
kwert
lifnr
INTO TABLE t_konv
FROM konv
FOR ALL ENTRIES IN t_ekko
WHERE knumv EQ t_ekko-knumv
AND lifnr EQ t_ekko-lifnr
AND kdatu EQ t_ekko-bedat
AND kappl EQ c_kappl_m
AND kschl EQ c_kschl_frc1.
* Fetch PO item details for the retrieved purchase orders
SELECT ebeln "Purchasing document
ebelp "PO item
txz01 "Short text
matnr "Material
matkl "Material group
menge "PO quantity
meins "UOM
netpr "Net price
netwr "Net value
INTO TABLE t_ekpo
FROM ekpo
FOR ALL ENTRIES IN t_ekko
WHERE ebeln EQ t_ekko-ebeln
AND matnr IN s_matnr
AND loekz EQ space
AND matkl IN s_matkl.
LOOP AT t_ekpo INTO fs_ekpo.
* Read header details from EKKO for each PO item
READ TABLE t_ekko
INTO fs_ekko
WITH KEY ebeln = fs_ekpo-ebeln.
IF sy-subrc EQ 0.
MOVE:
fs_ekpo-ebeln TO fs_poitems-ebeln,
fs_ekpo-ebelp TO fs_poitems-ebelp,
fs_ekko-lifnr TO fs_poitems-lifnr,
fs_ekko-ekgrp TO fs_poitems-ekgrp,
fs_ekko-bedat TO fs_poitems-bedat,
fs_ekpo-txz01 TO fs_poitems-txz01,
fs_ekpo-matnr TO fs_poitems-matnr,
fs_ekpo-menge TO fs_poitems-menge,
fs_ekpo-meins TO fs_poitems-meins,
fs_ekpo-netpr TO fs_poitems-netpr,
fs_ekpo-netwr TO fs_poitems-netwr.
* Read table KONV for fetching fieght charge
READ TABLE t_konv
INTO fs_konv
WITH KEY kposn = fs_poitems-ebelp
kdatu = fs_poitems-bedat
lifnr = fs_poitems-lifnr.
IF sy-subrc EQ 0.
MOVE:
fs_konv-kwert TO fs_poitems-fri_val.
ENDIF. " if sy-subrc eq 0.
Please suggest me.
Thanks,
Jwala
Edited by: Rob Burbank on Mar 12, 2009 12:09 PM
Please use code tags