前言
销售开票增强与 [ 销售订单增强
](http://mp.weixin.qq.com/s?__biz=MzkwNzUxNDQ5Mg==&mid=2247484521&idx=1&sn=838ed2ec3db8ac80f03710c97d2ebc8f&chksm=c0d9437af7aeca6c4b9c67819a6da42dd77319f717a9d552694e1c5cf5649a7134a1e1b82681&scene=21#wechat_redirect)
方式基本一样,没有公开的BADI可以使用,对销售 开 票 的增强在程序"RV60AFZZ"中处理。
在 " RV60AFZZ "程序中 可以做以下增强:
增强处理
对销售开票抬头/明细行的处理和对定价过程增强都是在同一个子例程中实现的。
1.USEREXIT_PRICING_PREPARE_TKOMK子例程用来修改销售开票抬头信息和定价过程抬头信息
需创建隐式增强,示例代码如下
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form USEREXIT_PRICING_PREPARE_TKOMK, End A*$*$-Start: (1)---------------------------------------------------------------------------------$*$*ENHANCEMENT 1 ZE_INVOICE_PRICE_TKOMK. "active versionSELECT 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)---------------------------------------------------------------------------------$*$*
总结
相较销售订单的增强来说,销售开票增强能做的事就比较少一些,主要是处理定价过程的增强。