- USEREXIT_PRICING_PREPARE_TKOMK (module pool SAPLV60A, program RV60AFZZ)This user exit allows you to copy additional fields for pricing in the TKOMK communication structure (header fields), which have not been provided in the standard SAP system. These fields can also be used for pricing in the billing document.This user exit is described in detail in the "New fields in pricing" section.
- USEREXIT_PRICING_PREPARE_TKOMP (module pool SAPLV60A, program RV60AFZZ)This user exit allows you to copy additional fields for pricing in the TKOMP communication structure (item fields), which have not been provided in the standard SAP system. These fields can also be used for pricing.This user exit is described in detail in the "New fields in pricing" section.
- USEREXIT_FIELD_MODIFICATION (module pool SAPMV61A, program MV61AFZA)You can use this user exit to adjust the display of individual lines in the condition screen by changing the display attributes of the screen fields. This does not include the display of subtotals.This user exit is also used in order processing.
- USEREXIT_FIELD_MODIFIC_KZWI (module pool SAPMV61A, program MV61AFZB)You can change the display of subtotals in the condition screen by changing the display attributes of the screen fields.This user exit is also used in order processing.
- USEREXIT_FIELD_MODIFIC_KOPF (module pool SAPMV61A, program MV61AFZB)You can adjust the display of subtotals in the condition screen to your requirements by changing the display attributes of the screen fields.This user exit is also used in order processing.
- USEREXIT_FIELD_MODIFIC_LEER (module pool SAPMV61A, program MV61AFZB)You can adjust the display of blank lines in the condition screen to your requirements by changing the display attributes of the screen fields.This user exit is also used in order processing.
- USEREXIT_PRICING_CHECK (module pool SAPMV61, program MV61AFZA)You can install additional checks to the standard checks of condition lines (e.g. maximum/minimum value).
- USEREXIT_PRICING_RULE (module pool SAPLV61A, program RV61AFZA)In the standard SAP system, it is predefined which condition categories and classes can be copied or recalculated per pricing type. You can change the predefined standard procedure for each pricing type.
- USEREXIT_CHANGE_PRICING_RULE (module pool SAPMV61A, program MV61AFZA)You can use this user exit to change the pricing type that has been predefined in the copying control table in billing.
- USEREXIT_XKOMV_BEWERTEN_INIT (module pool SAPLV61A, program RV61AFZB)This field is used in the formulas and therefore initialized before the loop for the pricing procedure starts.
- USEREXIT_XKOMV_BEWERTEN_END (module pool SAPLV61A, program RV61AFZB)Within a loop for the price components during pricing, specific values can be transferred into the communication structures in pricing to be further processed.
- USEREXIT_XKOMV_ERGAENZEN (module pool SAPLV61A, program RV61AFZB)In change mode, you can change the dynamic part of the condition record (KONVD) that is always redetermined (i.e. it is not stored in database table KONV).
- USEREXIT_XKOMV_ERGAENZEN_MANU (module pool SAPLV61A, program RV61AFZB)You can use this user exit to change the ready-for-input fields of the manually entered condition record in add mode in the condition screen.
- USEREXIT_XKOMV_FUELLEN (module pool SAPLV61A, program RV61AFZB)This user exit is always called up during a redetermination of all or individual price components. You can change the work fields of the condition line. However, this only applies to conditions that have been determined via a condition record.
- USEREXIT_XKOMV_FUELLEN_O_KONP (module pool SAPLV61A, program RV61AFZB)This user exit is always called up during a redetermination of all or individual price components. You can change the work fields of the condition line. However, this only applies to conditions that have been determined via a condition record. This may include subtotals, manually entered conditions or conditions that have been calculated with a formula.
- USEREXIT_PRICING_COPY (module pool SAPLV61A, program RV61AFZA)You can change the KONV fields for copied price components.
2011年3月30日 星期三
[SD] User Exits For Price Determination
[SD] Pricing Formulas
條件基值代用公式
Formula for determining the condition basis as an alternative to the standard.定價公式
formula | usage |
---|---|
22 | whole units of measure only 完整的數量才計價 |
23 | any fractional portion of the total quantity 整張訂單合計後,不完整的數量才計價 |
24 | for an incomplete unit 不完整的數量才計價 |
[SD] Pricing Procedure - included tax and down payment
含稅的定價程序與訂金
Step | Cntr | CTyp | Description | From | To | Man. | Mdt | Stat | SubTo | Reqt | AltCTy | AltCBV | ActKy | Accrls | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
11 | ZPR0 | Price | X | X | X | 2 | |||||||||
13 | ZPB0 | Price (Gross) | X | X | X | ||||||||||
14 | ZENZ | Price | X | X | X | ||||||||||
100 | Gross Value | X | X | 1 | |||||||||||
105 | NETW | Value of Goods | X | 2 | 902 | ERL | |||||||||
500 | Z001 | Down Payment | X | X | 2 | Z3 | |||||||||
510 | DiscountAmount | 500 | 3 | ||||||||||||
800 | Net Value | 4 | 902 | ||||||||||||
900 | MWST | Tax | X | S | 10 | 19 | MWS | ||||||||
930 | Total | 800 | 910 | A | 4 | ||||||||||
940 | ZPRS | Standard Cost | X | B | 4 | ||||||||||
950 | VPRS | Cost | X | B | 4 | ||||||||||
970 | Profit segment | 11 |
Formula 902
*&---------------------------------------------------------------------*
*& Form FRM_KONDI_WERT_902
*&---------------------------------------------------------------------*
* text
*----------------------------------------------------------------------*
FORM frm_kondi_wert_902.
DATA: lv_subrc LIKE sy-subrc,
lv_kwert LIKE xkwert,
lv_mwst LIKE xkwert.
CLEAR: lv_subrc, lv_kwert, lv_mwst.
IF xkomv-kschl = 'NETW'.
CATCH SYSTEM-EXCEPTIONS conversion_errors = 1
arithmetic_errors = 5.
lv_kwert = komp-kzwi1 * 100 / 105 + komp-kzwi3.
lv_kwert = lv_kwert + lv_kwert / 20.
* Tax Diff
lv_mwst = lv_kwert - komp-kzwi1.
xkwert = komp-kzwi1 * 100 / 105 - lv_mwst.
ENDCATCH.
lv_subrc = sy-subrc.
ELSE. " Net Value
CATCH SYSTEM-EXCEPTIONS conversion_errors = 1
arithmetic_errors = 5.
xkwert = komp-kzwi2 + komp-kzwi3. " Net Value
ENDCATCH.
lv_subrc = sy-subrc.
ENDIF.
IF sy-subrc = 1 OR sy-subrc = 5.
MESSAGE s802.
xkomv-kinak = 'X'.
xkwert = 0.
xkomv-kwert = 0.
xkomv-fxmsg = '802'.
komp-fxmsg = '802'.
ENDIF.
ENDFORM. "FRM_KONDI_WERT_902
User Exit: RV61AFZB
*---------------------------------------------------------------------*
* FORM USEREXIT_XKOMV_BEWERTEN_END *
*---------------------------------------------------------------------*
FORM userexit_xkomv_bewerten_end.
IF komk-kalsm = 'ZRA01Z'.
DATA: lv_kwert LIKE xkwert,
lv_mwst LIKE xkwert,
lv_adjed LIKE xkwert,
lw_xkomv LIKE xkomv.
CLEAR: lv_kwert, lv_mwst, lw_xkomv.
CLEAR: lv_kwert, lv_mwst, lw_xkomv.
LOOP AT xkomv WHERE kschl = 'MWST'.
CATCH SYSTEM-EXCEPTIONS conversion_errors = 1
arithmetic_errors = 5.
xkomv-kawrt = komp-kzwi1 * 100 / 105 + komp-kzwi3.
lv_kwert = xkomv-kawrt.
lv_adjed = xkomv-kawrt / 20.
lv_kwert = lv_kwert + lv_adjed.
lv_mwst = lv_kwert - komp-kzwi1.
IF lv_mwst NE 0 AND xkomv-kwert NE lv_adjed.
xkomv-kwert = xkomv-kwert + lv_mwst.
xkomv-kherk = 'I'.
MODIFY xkomv.
ENDIF.
ENDCATCH.
ENDLOOP.
LOOP AT xkomv WHERE kschl = 'NETW'.
READ TABLE xkomv WITH KEY kschl = 'MWST'
INTO lw_xkomv.
IF lw_xkomv-kherk EQ 'I' AND
xkomv-kherk NE 'I'.
CATCH SYSTEM-EXCEPTIONS conversion_errors = 1
arithmetic_errors = 5.
* NETW + MWST + down payment
lv_kwert = xkomv-kwert + lw_xkomv-kwert + komp-kzwi3.
* NETW Diff
lv_mwst = lv_kwert - komp-kzwi1.
IF lv_mwst NE 0.
xkomv-kwert = xkomv-kwert - lv_mwst + xkomv-kdiff.
xkomv-kdiff = lv_mwst - xkomv-kdiff.
xkomv-kherk = 'I'.
MODIFY xkomv.
ENDIF.
ENDCATCH.
ENDIF.
ENDLOOP.
* Net Value
READ TABLE xkomv WITH KEY kschl = 'NETW'
INTO lw_xkomv.
IF lw_xkomv-kherk = 'I'.
LOOP AT xkomv WHERE stunr = '800'.
xkomv-kwert = komp-kzwi2 + komp-kzwi3.
MODIFY xkomv.
ENDLOOP.
ENDIF.
ENDIF.
ENDFORM. "USEREXIT_XKOMV_BEWERTEN_END
訂閱:
文章 (Atom)