01
前言
销售开票增强与销售订单增强方式基本一样,没有公开的BADI可以使用,对销售开票的增强在程序"RV60AFZZ"中处理。
在"RV60AFZZ"程序中可以做以下增强:
对销售开票抬头和明细行进行处理,如设置默认值
可以对定价过程进行增强,设置tkomk/tkomp中字段值
02
增强处理
对销售开票抬头/明细行的处理和对定价过程增强都是在同一个子例程中实现的。
1.USEREXIT_PRICING_PREPARE_TKOMK子例程用来修改销售开票抬头信息和定价过程抬头信息
需创建隐式增强,示例代码如下
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form USEREXIT_PRICING_PREPARE_TKOMK, End A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZE_INVOICE_PRICE_TKOMK. "active version
SELECT SINGLE zsybmd INTO tkomk-zsybmd FROM but000 WHERE partner = tkomk-kunnr.
vbrk-zsybmd = xvbrk-zsybmd = tkomk-zsybmd.
*modify xvbrk from xvbrk index 1 transporting zsybmd.
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
2.USEREXIT_PRICING_PREPARE_TKOMP子例程用来修改销售开票行信息和定价过程行信息
需创建隐式增强,示例代码如下
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2) Form USEREXIT_PRICING_PREPARE_TKOMP, End A
*$*$-Start: (2)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZE_INVOICE_PRICE_TKOMP. "active version
SELECT SINGLE zyear zseason zchannel zmat_cate mtart
INTO (tkomp-zyear,tkomp-zseason,tkomp-zchannel,tkomp-zmat_cate,tkomp-mtart )
FROM mara WHERE matnr = tkomp-matnr.
IF vbrp-prctr IS INITIAL.
vbrp-prctr = vbap-prctr.
xvbrp-prctr = vbap-prctr.
ENDIF.
IF tkomk-fkart = 'ZIV2' OR tkomk-fkart = 'ZIG2'.
vbrp-prctr = |P{ tkomk-bukrs }|.
xvbrp-prctr = |P{ tkomk-bukrs }|.
ENDIF.
ENDENHANCEMENT.
*$*$-End: (2)---------------------------------------------------------------------------------$*$*
03
总结
相较销售订单的增强来说,销售开票增强能做的事就比较少一些,主要是处理定价过程的增强。
温馨提示
如果你喜欢本文,请分享给有需要的朋友,想要获得更多信息,请关注我。