cancel
Showing results for 
Search instead for 
Did you mean: 

Extraction of conditions for Shipment (applic 08) - VKON

Former Member
0 Kudos

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

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

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

Former Member
0 Kudos

Thxs Siegfried.

I guess that I have to debug the standard function module in order to determine the peculiar criteria that select S/D condition records only from KONV. As I am not an ABAP specialist, that's sounds challenging...

Best regards.

Laurent Q.

Answers (2)

Answers (2)

kumar_gudiseva2
Explorer
0 Kudos

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.

Former Member
0 Kudos

Hi Kumar,

Thxs for your help.

In your sample, what is the declaration of c_t_data?

LauQ

kumar_gudiseva2
Explorer
0 Kudos

C_T_DATA refers to the extract structure of your datasource. in the case shipment cost datasource 2LIS_08TRFKZ, it refers to MC08TR0FKZ.

But before that you should have appended your condition value fields to this structure.

Kumar Gudiseva.

Former Member
0 Kudos

Thxs Kumar,

I'll come back to you when I will be testing... and give you the points you deserve!

Best regards.

Laurent Querella

Former Member
0 Kudos

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

Former Member
0 Kudos

Any hint???

Thxs

Former Member
0 Kudos

Can anyone help me?

I have no answer from SAP either (SAP customer message)...

Thxs.

LauQ