前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ABAP权限检查,TCode与权限对象进行关联

ABAP权限检查,TCode与权限对象进行关联

作者头像
matinal
发布2020-11-27 17:18:48
1.1K0
发布2020-11-27 17:18:48
举报
文章被收录于专栏:SAP TechnicalSAP Technical

一、确认权限对象,和关联字段:

Tcode:SU21 维护权限对象 例如"M_MSEG_WMB",它关联字段为'WERKS' M_MSEG_WMB 物料凭证:工厂

二、在ABAP代码中添加权限检查代码:

代码语言:javascript
复制
PROGRAM YTEST_13_001.

Tcode:SE38

TYPES: BEGIN OF ty_check_au,
werks TYPE mseg-werks,
END OF ty_check_au.
DATA: wa_check_au TYPE ty_check_au,
it_check_au TYPE TABLE OF ty_check_au.

AT SELECTION-SCREEN.
* 在此进行权限对象的检查
SELECT
werks
FROM mseg
INTO TABLE it_check_au
WHERE mblnr IN s_mblnr AND
werks = p_werks
AND mseg~bwart IN ('101','102','105','106').

LOOP AT it_check_au INTO wa_check_au.

AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
         ID 'ACTVT' FIELD '01'
         ID 'WERKS' FIELD wa_check_au-WERKS.
IF SY-SUBRC <> 0.
* Implement a suitable exception handling here
  MESSAGE E000 WITH '您没有工厂' LW_MARC-WERKS '的权限'.
ENDIF.

CLEAR wa_check_au.
ENDLOOP.
代码语言:javascript
复制
AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
         ID 'ACTVT' FIELD '01'
         ID 'WERKS' FIELD wa_check_au-WERKS.
IF SY-SUBRC <> 0.
* Implement a suitable exception handling here
  MESSAGE E000 WITH '您没有工厂' LW_MARC-WERKS '的权限'.
ENDIF.

sy-subrc 一些重要返回值如下:
  0:  用户权限检查通过.
  4:  用户权限不足.
  8:  参数的数量不正确.
  12:  权限对象不存在. 

三、创建ABAP代码关联的TCode: TCode: SE93 :YTEST_13_001

四、把ABAP代码关联的TCode与权限对象进行关联, !TCode: SU22、SU24

SU22

应用程序类型:1事物 事物代码: YTEST_13_001 F8后

进入修改模式; 菜单:对象->对象->添加权限对象 M_MSEG_WMB

可以定义权限对象的活动类型:

记得保存

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-04-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档