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

本文详细介绍了如何在SAP系统中使用Tcode SU21维护权限对象,如'M_MSEG_WMB',并关联字段'WERKS'。通过ABAP代码示例,展示了如何在程序YTEST_13_001中实现权限检查,包括选择屏幕、权限对象检查及异常处理。同时,讲解了如何通过SE93创建TCode,以及如何在SU22中将TCode与权限对象关联。

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

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

 

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

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.

 

AUTHORITY-CHECK OBJECT 'M_MSEG_WMB'
         ID 'ACTVT' FIELD '01'
         ID 'WERKS' FIELD wa_check_au-W
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值