SAP 相关TCODE 出口增强

1、KS01

需求:创建cost center 时,进行公司代码权限校验
出口:COOMKS02
Function module:EXIT_SAPLKMA1_003
代码:该代码会在保存时进行公司代码权限校验

IF SY-TCODE = 'KS01'  OR SY-TCODE = 'KS02' OR SY-TCODE = 'KS03'.
  LOOP AT ICSKSP INTO DATA(LS_DATA).
    IF LS_DATA-BUKRS IS NOT INITIAL.
      AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
           ID 'BUKRS' FIELD LS_DATA-BUKRS
           ID 'ACTVT' FIELD '03'.
      IF SY-SUBRC <> 0.
        MESSAGE E016(ZFI) WITH LS_DATA-BUKRS.
      ENDIF.
    ENDIF.
  ENDLOOP.
ENDIF. 

2、CJ20N/CJ30/CJ32/CJ01/CJ02/CJ03

需求:创建/更改:WBS 或者Project 时,进行公司代码权限校验
出口:CNEX0002
Function module:EXIT_SAPLCNAU_001;
EXIT_SAPLCNAU_002
代码

IF SY-TCODE = 'CJ20N' OR SY-TCODE = 'CJ30' OR SY-TCODE = 'CJ32'OR SY-TCODE = 'CJ01'OR SY-TCODE = 'CJ02'OR SY-TCODE = 'CJ03'.
  IF SAP_PRPS-PBUKR IS NOT INITIAL.
    AUTHORITY-CHECK OBJECT 'F_BKPF_BUK'
         ID 'BUKRS' FIELD SAP_PRPS-PBUKR
         ID 'ACTVT' FIELD '03'.
    IF SY-SUBRC <> 0.
      MESSAGE E016(ZFI) WITH SAP_PRPS-PBUKR.
    ENDIF.
  ENDIF.
ENDIF.
SAP_X_ACTVT = 'X'.

** 注:该出口下面的函数模块中,只要有SAP_X_ACTVT 这个字段的,都要在该函数模块中把该字段赋值为X,否则标准程序中其他的一些权限校验会出错 **
在这里插入图片描述

3、KE51/KE52/KE53/KE54

需求:创建/更改/查看/删除 利润中心时,进行公司代码权限校验
出口:PCAAUTHO
Function module:EXIT_SAPLKEFP_001
代码

IF SY-TCODE = 'KEMDM'.
  IF I_PRCTR IS NOT INITIAL.
    AUTHORITY-CHECK OBJECT 'K_PCAR_REP'
         ID 'PRCTR' FIELD I_PRCTR
         ID 'ACTVT' FIELD '03'.
    IF SY-SUBRC <> 0.
      MESSAGE E017(ZFI) WITH I_PRCTR.
    ENDIF.
  ENDIF.
ENDIF.

注:这里的SY-TCODE 使用的限制条件是KEMDM,因为KE51/KE52/KE53/KE54 做了一个Transaction 为KEMDM,SE93可查看
在这里插入图片描述
KEMDM 事务码前台截图:在这里插入图片描述

持续更新中~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值