背景:
(1)VA41/VA42/VA43屏幕增强:在“付款方式”页签,进行屏幕字段增强
(2)VBAK表字段增强:增加相应的增强字段
(3)VA41/VA42保存时:check增强字段“合同所属事业部”是否在表cepc中存在
解决方案
1、SE38:SAPMV45A,其中的 include mv45afzz
(或者直接SE38:MV45AFZZ)
2、保存check:FORM USEREXIT_SAVE_DOCUMENT
(1)在该form中,进行隐式增强
(2)主要数据:xvbap[],XVBAK
相关代码:
FORM USEREXIT_SAVE_DOCUMENT.
* Example:
* CALL FUNCTION 'ZZ_EXAMPLE'
* IN UPDATE TASK
* EXPORTING
* ZZTAB = ZZTAB.
*{ INSERT S4DK901200 1
"360 销售订单增强
DATA:lt_vbep TYPE STANDARD TABLE OF vbepvb,
ls_vbep LIKE LINE OF lt_vbep.
lt_vbep = xvbep[].
LOOP AT xvbap.
READ TABLE lt_vbep INTO ls_vbep WITH KEY vbeln = xvbap-vbeln posnr = xvbap-posnr.
if xvbap-zzeindt1 is initial .
xvbap-zzeindt1 = ls_vbep-edatu.
endif.
if xvbap-zzeindt2 is initial .
xvbap-zzeindt2 = ls_vbep-edatu.
endif.
if xvbap-zzeindt1 = xvbap-zzeindt2.
xvbap-zzeindt2 = ls_vbep-edatu.
endif.
modify xvbap transporting zzeindt1 zzeindt2.
endloop.
*} INSERT
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Form USEREXIT_SAVE_DOCUMENT, Ende A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZMV45AFZZ_SAVE_DOCUMENT. "active version
*
DATA: LV_PRCTR TYPE CEPC-prctr.
SELECT SINGLE PRCTR INTO LV_PRCTR
FROM CEPC
WHERE PRCTR = XVBAK-ZSPARE5.
IF SY-SUBRC NE 0 AND LV_PRCTR IS INITIAL.
MESSAGE '合同所属事业部的值:' && XVBAK-ZSPARE5 && '不在表CEPC中' TYPE 'E'.
ENDIF.
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
ENDFORM.
3、其他
(1)FORM USEREXIT_READ_DOCUMENT.
"----销售订单抬头屏幕增强(附加数据B)——付款方式
"--屏幕号:SAPMV45A --- 8309
"--PBO:MV45AOZZ
"--PAI:MV45AIZZ
"--定义:MV45ATZZ(TOP的定义中)
"--读取付款方式数据到內表:MV45AFZZ(读取其他数据出口)
"--附加数据B 页签描述改动(SAPMV45A——4002屏幕—MODULE taxi_initialize_carrierscreen)