一、上节课通过SPRO + 描述的方式找到增强点,并实现了控制屏幕字段可见显示的功能。
除了这个其他功能控制
1 控制字段是否必输或不可输入
IF sy-subrc = 0 AND ( sy-tcode = ‘VA01’ OR sy-tcode = ‘VA02’ ) AND l_inact IS INITIAL.
CASE screen-name.
WHEN ‘RV45A-KWMENG‘.
screen-input = 0 .
* MODIFY SCREEN.
ENDCASE.
CASE screen-name.
WHEN ‘VBAP-ARKTX‘.
screen-input = 0 .
* MODIFY SCREEN.
ENDCASE.
2 销售订单库存地点权限
事务码SE38,程序MV45AFZZ,位置:FORM userexit_move_field_to_vbap.
IF ( sy-tcode = ‘VA01’ OR sy-tcode = ‘VA02’ OR sy-tcode = ‘VA03’ )
AND ( vbak-auart <> ‘ZCR1’ OR vbak-auart <> ‘ZDR1’ OR vbak-auart <> ‘ZKE1’ OR vbak-auart <> ‘ZKR1’ )
AND vbap-lgort <> ”.
AUTHORITY-CHECK OBJECT ‘ZSD001’
ID ‘LGORT’ FIELD vbap-lgort.
IF sy-subrc <> 0.
MESSAGE e000(zsdmsg) WITH vbap-lgort.
ENDIF.
ENDIF.
3 销售订单抬头价格页签隐藏最低价与成本价格,从ZSDT004检查是否有权限。
事务码SE38,程序LV69AFZZ,位置:FORM userexit_field_modific_kopf.
………………
ENDFORM.
4 售订单行项目价格页签隐藏最低价与成本价格
事务码SE38,程序LV69AFZZ,位置:FORM userexit_field_modification
IF KOMV-KSCHL = ‘VPRS’ AND ( sy-tcode = ‘VA01’ or sy-tcode = ‘VA02’ or sy-tcode = ‘VA03’ ) .
SCREEN-INPUT = 0. ” Disable it
SCREEN-INVISIBLE = 1. ” Hide it
MODIFY SCREEN.
ENDIF.
IF KOMV-KSCHL = ‘ZMIN’ AND ( sy-tcode = ‘VA01’ or sy-tcode = ‘VA02’ or sy-tcode = ‘VA03’ ) .
SCREEN-INPUT = 0. ” Disable it
SCREEN-INVISIBLE = 1. ” Hide it
MODIFY SCREEN.
ENDIF.
二、其他方法找出口
2.1 用SE80,选择Package下的VMOD类(该开发类包括了SD模块和MM模块几乎所有的一代增强出口处)

2.2 VA01点击菜单栏上的系统->状态,双击程序名称调到源代码

然后 查找关键字 USEREXIT





上面找增强还是要看描述。
总的来讲,增强的难点在于找到增强点,要包含猜测和测试。
但是真正找到增强点以后写代码就比较容易了。