SAP增强 02

一、上节课通过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

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

发表评论

ICP备案号: 鄂ICP备2022007022号-1