ABAP權限檢查,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-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

 

 

可以定義權限對象的活動類型:

!記得保存

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM