2007 May 02 2:36 PM
hi experts,
when i am retriving maktx from makt.but for some ebeln there is no matnr.
so i am not able to retrive maktx.for that i am using txz01 field in ekpo table.
but i m not able to write querry. so plz guide me.i am writing my querries below.
thaks.
SELECT ebeln lifnr aedat
INTO CORRESPONDING FIELDS OF TABLE t_ekko
FROM ekko
WHERE ebeln IN s_ebeln.
SELECT ekebeln epmatnr epmenge epnetpr ep~ebelp
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
.
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE t_makt
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr
AND spras = 'EN'.
2007 May 02 2:45 PM
Hi
fetch the TXZ01 fiewld also from EKPO(declare that in internal table).
SELECT ekebeln epmatnr eptxz01 epmenge epnetpr epebelp
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
when reading all the above 3 internal tables into a final internal table
loop at t_ekko.
move-corresponding t_ekko to t_final.
read table t_ekpo .............
move-corresponding t_ekpo to t_final.
read table t_makt with key matnr = t_ekpo-matnr.
if sy-subrc = 0.
t_final-maktx = t_makt-maktx.
else.
t_final-maktx = t_ekpo-txz01.
endif.
append t_final.
clear t_final.
endloop.
Reward points if useful
Regards
Anji
hi experts,
when i am retriving maktx from makt.but for some ebeln there is no matnr.
so i am not able to retrive maktx.for that i am using txz01 field in ekpo table.
but i m not able to write querry. so plz guide me.i am writing my querries below.
thaks.
SELECT ebeln lifnr aedat
INTO CORRESPONDING FIELDS OF TABLE t_ekko
FROM ekko
WHERE ebeln IN s_ebeln.
SELECT ekebeln epmatnr epmenge epnetpr ep~ebelp
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
.
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE t_makt
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr
AND spras = 'EN'.
2007 May 02 2:45 PM
SELECT ek~ebeln
ek~lifnr
ek~aedat
ep~matnr
ep~menge
ep~netpr
ep~ebelp
ep~txz01
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
.
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE t_makt
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr
AND spras = 'EN'.
loop at t_ekpo.
g_tabix = sy-tabix.
if not t_ekpo-matnr is initial.
read table t_makt with matnr = t_ekpo-matnr.
t_ekpo-maktx = t_makt-maktx.
else.
t_ekpo-maktx = t_ekpo-txz01.
endif.
modify t_ekpo index g_tabix.
endloop.
2007 May 03 10:17 AM
Hi suj,
i have done querry as u told me.
But there is one prb in o/p.
Actually i am not getting maktx in english,it is in 'D'(matnr=dpc1009)
i am writing my querry.
so plz tell me where i m wrong.
SELECT ebeln lifnr aedat
INTO CORRESPONDING FIELDS OF TABLE t_ekko
FROM ekko
WHERE ebeln IN s_ebeln.
SELECT ekebeln epmatnr epmenge epnetpr epebelp eptxz01
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE t_makt
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr
AND spras = 'EN'.
LOOP AT t_ekpo.
IF t_ekpo-matnr IS NOT INITIAL.
READ TABLE t_makt WITH KEY matnr = t_ekpo-matnr .
IF sy-subrc = 0.
t_ekpo-maktx = t_makt-maktx.
ELSE.
t_ekpo-maktx = t_ekpo-txz01.
MODIFY t_ekpo INDEX v_inx.
ENDIF.
ENDIF.
ENDLOOP.
thanks.
2007 May 02 2:45 PM
Hi
fetch the TXZ01 fiewld also from EKPO(declare that in internal table).
SELECT ekebeln epmatnr eptxz01 epmenge epnetpr epebelp
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
when reading all the above 3 internal tables into a final internal table
loop at t_ekko.
move-corresponding t_ekko to t_final.
read table t_ekpo .............
move-corresponding t_ekpo to t_final.
read table t_makt with key matnr = t_ekpo-matnr.
if sy-subrc = 0.
t_final-maktx = t_makt-maktx.
else.
t_final-maktx = t_ekpo-txz01.
endif.
append t_final.
clear t_final.
endloop.
Reward points if useful
Regards
Anji
2007 May 02 2:50 PM
SELECT ebeln lifnr aedat
INTO CORRESPONDING FIELDS OF TABLE t_ekko
FROM ekko
WHERE ebeln IN s_ebeln.
if sy-subrc eq 0 <OR> use if not t_ekko[] is initial -- it's amust when u r using for all entries...
SELECT ekebeln epmatnr epmenge epnetpr epebelp ep txz01
INTO CORRESPONDING FIELDS OF TABLE t_ekpo
FROM ekko AS ek INNER JOIN ekpo AS ep
ON ekebeln = epebeln
WHERE ek~ebeln IN s_ebeln.
.
SELECT matnr maktx
FROM makt
INTO CORRESPONDING FIELDS OF TABLE t_makt
FOR ALL ENTRIES IN t_ekpo
WHERE matnr = t_ekpo-matnr
AND spras = 'EN'.
now in your logic use the logoc.
if t_ekpo-matnr is initial.
t_makt-maktx = t_ekpo- txz01.
else.
read t_makt where matnr eq t_ekpo-matnr
endif...
hope this will help...
| User | Count |
|---|---|
| 3 | |
| 2 | |
| 2 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 | |
| 1 |