on 04-28-2006 4:59 PM
My Client wants to have the shipment cost details from the pricing procedure.
However, whereas extractors for SD conditions do exist (2LIS_11_VAKON & 2LIS_13_VDKON), no such extractor is available for application 08 (esp. 2LIS_08_TRFKP).
Does anyone have an idea on how to extract those details?
Thxs.
Laurent Querella
Hi Laurent,
unfortunately I am also not aware of such a extractor, so I think you need to create your own (may be as a copy of the standard one).
regards
Siggi
PS: Shame on us, that we didn't respond faster.
Message was edited by: Siegfried Szameitat
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sorry Laurent & Siggi. Better late than never, I guess.
We did this on our project & here is some sample code:
See if it helps & let me know if you have any questions.
Condition values.
DATA : BEGIN OF i_konv OCCURS 0,
knumv LIKE konv-knumv,
kposn LIKE konv-kposn,
kappl LIKE konv-kappl,
kschl LIKE konv-kschl,
kwert LIKE konv-kwert,
kinak LIKE konv-kinak,
END OF i_konv.
Work areas.
DATA : zlines TYPE i,
ws_zdemur LIKE konv-kwert,
ws_zdeten LIKE konv-kwert,
ws_zfuelsch like konv-kwert,
ws_zactfreit like konv-kwert,
ws_zstopchrg like konv-kwert,
ws_zoactfreit like konv-kwert,
ws_konv_tabix TYPE i.
C_T_DATA line.
FIELD-SYMBOLS <tab> LIKE LINE OF c_t_data.
If no extracted data, don't process.
DESCRIBE TABLE c_t_data LINES zlines.
CHECK zlines NE 0.
Get Current date for start of shipment.
SELECT tknum datbg
FROM vttk
INTO CORRESPONDING FIELDS OF TABLE i_vttk
FOR ALL ENTRIES IN c_t_data
WHERE tknum EQ c_t_data-tknum.
Get Condition value.
SELECT knumv kposn kappl kschl kwert kinak
FROM konv
INTO TABLE i_konv
FOR ALL ENTRIES IN c_t_data
WHERE knumv EQ c_t_data-knumv.
and kposn eq c_t_data-fkpos.
DELETE i_konv WHERE ( kschl NE 'ZMDM' AND kschl NE 'ZMDT'
and kschl ne 'ZTFT'
AND KSCHL NE 'ZTBF'
AND KSCHL NE 'ZTSO'
AND KSCHL NE 'ZAAF' )
OR NOT kinak IS INITIAL
OR kappl NE 'F '.
sort i_konv by knumv kposn kschl.
SORT i_konv BY knumv kposn kschl.
SORT i_vttk BY tknum.
Loop through extracted data.
LOOP AT c_t_data ASSIGNING <tab>.
Find Current date for start of shipment.
IF i_vttk-tknum NE <tab>-tknum.
CLEAR i_vttk.
READ TABLE i_vttk WITH KEY tknum = <tab>-tknum
BINARY SEARCH.
ENDIF.
Find Condition value.
CLEAR : ws_zdemur, ws_zdeten, ws_zfuelsch,
ws_zactfreit, ws_zstopchrg, ws_zoactfreit,
i_konv, sy-tabix, ws_konv_tabix.
CASE <tab>-fkpty.
WHEN 'ZSC3' OR 'ZSC4'.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kposn = '000000'
kschl = 'ZMDT'
BINARY SEARCH.
IF sy-subrc = 0.
ws_zdeten = i_konv-kwert.
ELSE.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kschl = 'ZMDT'
BINARY SEARCH.
ws_konv_tabix = sy-tabix.
LOOP AT i_konv FROM ws_konv_tabix.
IF i_konv-knumv <> <tab>-knumv OR
i_konv-kschl <> 'ZMDT'.
EXIT.
ENDIF.
ws_zdeten = ws_zdeten + i_konv-kwert.
ENDLOOP.
ENDIF.
WHEN 'ZSC5'.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kposn = '000000'
kschl = 'ZMDM'
BINARY SEARCH.
IF sy-subrc = 0.
ws_zdemur = i_konv-kwert.
ELSE.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kschl = 'ZMDM'
BINARY SEARCH.
ws_konv_tabix = sy-tabix.
LOOP AT i_konv FROM ws_konv_tabix.
IF i_konv-knumv <> <tab>-knumv OR
i_konv-kschl <> 'ZMDM'.
EXIT.
ENDIF.
ws_zdemur = ws_zdemur + i_konv-kwert.
ENDLOOP.
ENDIF.
ENDIF.
when others.
*Fuel Surcharge
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kposn = '000000'
kschl = 'ZTFT'
BINARY SEARCH.
IF sy-subrc = 0.
WS_ZFUELSCH = i_konv-kwert.
ELSE.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kschl = 'ZTFT'
BINARY SEARCH.
ws_konv_tabix = sy-tabix.
LOOP AT i_konv FROM ws_konv_tabix.
IF i_konv-knumv <> <tab>-knumv OR
i_konv-kschl <> 'ZTFT'.
EXIT.
ENDIF.
WS_ZFUELSCH = WS_ZFUELSCH + i_konv-kwert.
ENDLOOP.
ENDIF.
*Actual Freight
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kposn = '000000'
kschl = 'ZTBF'
BINARY SEARCH.
IF sy-subrc = 0.
WS_ZACTFREIT = i_konv-kwert.
ELSE.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kschl = 'ZTBF'
BINARY SEARCH.
ws_konv_tabix = sy-tabix.
LOOP AT i_konv FROM ws_konv_tabix.
IF i_konv-knumv <> <tab>-knumv OR
i_konv-kschl <> 'ZTBF'.
EXIT.
ENDIF.
WS_ZACTFREIT = WS_ZACTFREIT + i_konv-kwert.
ENDLOOP.
ENDIF.
*Stop over charge
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kposn = '000000'
kschl = 'ZTSO'
BINARY SEARCH.
IF sy-subrc = 0.
WS_ZSTOPCHRG = i_konv-kwert.
ELSE.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kschl = 'ZTSO'
BINARY SEARCH.
ws_konv_tabix = sy-tabix.
LOOP AT i_konv FROM ws_konv_tabix.
IF i_konv-knumv <> <tab>-knumv OR
i_konv-kschl <> 'ZTSO'.
EXIT.
ENDIF.
WS_ZSTOPCHRG = WS_ZSTOPCHRG + i_konv-kwert.
ENDLOOP.
ENDIF.
*Other Actual Freight
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kposn = '000000'
kschl = 'ZAAF'
BINARY SEARCH.
IF sy-subrc = 0.
ws_ZOACTFREIT = i_konv-kwert.
ELSE.
READ TABLE i_konv WITH KEY knumv = <tab>-knumv
kschl = 'ZAAF'
BINARY SEARCH.
ws_konv_tabix = sy-tabix.
LOOP AT i_konv FROM ws_konv_tabix.
IF i_konv-knumv <> <tab>-knumv OR
i_konv-kschl <> 'ZAAF'.
EXIT.
ENDIF.
ws_ZOACTFREIT = ws_ZOACTFREIT + i_konv-kwert.
ENDLOOP.
ENDIF.
ENDCASE.
Load data to extraction record.
<tab>-datbg = i_vttk-datbg.
<tab>-zdemur = ws_zdemur.
<tab>-zdeten = ws_zdeten.
<tab>-zfuelsch = WS_ZFUELSCH.
<tab>-ZACTFREIT = WS_ZACTFREIT.
<tab>-ZSTOPCHRG = WS_ZSTOPCHRG.
<tab>-ZOACTFREIT = WS_ZOACTFREIT.
ENDLOOP.
Kumar Gudiseva.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hello,
I add that the relevant SAP table is KONV, which contains condition records for several applications: SD (11 & 13), PU (02), LES (08).
I cannot understand why no standard extractor exist for all those applications.
So, do you know a mean to achieve my goal (cf. previous message)?
Thxs.
LauQ
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
78 | |
10 | |
7 | |
6 | |
6 | |
6 | |
6 | |
6 | |
5 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.