创建采购订单时隐藏不需要的订单类型
后台配置了很多订单类型,希望某些订单类型不被用户看到,以防止在日常业务中错误地选择订单类型。
同时,有些订单类型为某一公司业务专用,应限制只有需要的人看到。
存在两种方案:
权限管理
权限对象
采购订单中的凭证类型:M_BEST_BSA
采购订单中的采购组:M_BEST_EKG
采购订单中的采购组织:M_BEST_EKO
采购订单中的工厂:M_BEST_WRK
通过事务码 PFCG 查询 ME21N对应的角色
得到角色列表
显示角色信息,显示权限数据
点击跟踪,找到权限对象,进行配置即可
增强
找到函数 DD_SHLP_GET_HELPMETHOD
点击增强按钮后,出现创建、更改按钮
创建增强,并将下列代码写入即可
DATA: LS_SHLP_SELOPT TYPE DDSHSELOPT.
IF ( SY-TCODE = 'ME21N' OR SY-TCODE = 'ME22N' OR SY-TCODE = 'ME23N' ) AND shlp-SHLPNAME = 'H_T161'.
IF SY-SUBRC = 0.
SELECT ZNMMT053~BSART FROM ZNMMT053
WHERE ZNMMT053~ACTIVE = 'Y'
INTO TABLE @DATA(LT_ZNMMT053).
IF SY-SUBRC EQ 0.
LOOP AT LT_ZNMMT053 INTO DATA(LS_ZNMMT053).
LS_SHLP_SELOPT-SHLPNAME = 'H_T161'.
LS_SHLP_SELOPT-SHLPFIELD = 'BSART'.
LS_SHLP_SELOPT-SIGN = 'I'.
LS_SHLP_SELOPT-OPTION = 'EQ'.
LS_SHLP_SELOPT-LOW = LS_ZNMMT053-BSART.
APPEND LS_SHLP_SELOPT TO SHLP-SELOPT.
CLEAR LS_SHLP_SELOPT.
ENDLOOP.
ENDIF.
ENDIF.
ENDIF.
表ZNMMT053 结构如下: