在日常维护中常常需要用户的组织结构层面的权限列表,在SAP里我们就需要到角色里去查看,比较不方便,因此做下面的一个用户组织结构权限的列表程序,代码如下(供大家参考使用)
*&---------------------------------------------------------------------*
*& Report ZORG_LEVELS_AU *
*& *
*&---------------------------------------------------------------------*
*&---------------------------------------------------------------------*
REPORT ZORG_LEVELS_AU MESSAGE-ID dev.
TYPE-POOLS: slis.
TABLES: usr02.
DATA: BEGIN OF gt_1252 OCCURS 100,
agr_name LIKE agr_1251-agr_name.
INCLUDE STRUCTURE pt1252.
DATA: END OF gt_1252 .
DATA db_1252 LIKE gt_1252 OCCURS 100 WITH HEADER LINE.
DATA: BEGIN OF gt_au_fld OCCURS 100.
INCLUDE STRUCTURE pt1251.
DATA: END OF gt_au_fld.
*Organization Level Authorization Field Text
DATA: BEGIN OF orgebenen OCCURS 30.
INCLUDE STRUCTURE usorg_db.
DATA: END OF orgebenen,
*Organization Level Authorization Field Text
BEGIN OF orgtext OCCURS 30.
INCLUDE STRUCTURE usorg_db.
DATA: END OF orgtext.
DATA: g_var LIKE orgebenen-varbl,
g_ret LIKE sy-subrc,
g_old_field LIKE pt1251-field.
DATA: BEGIN OF gt_result OCCURS 100,
agr_name LIKE agr_1251-agr_name.
INCLUDE STRUCTURE tprorg1.
DATA: END OF gt_result.
DATA: gt_field TYPE slis_t_fieldcat_alv.
*Define Selection Screen
PARAMETERS p_user LIKE usr02-bname OBLIGATORY.
PARAMETERS p_date LIKE sy-datum OBLIGATORY DEFAULT sy-datum .
RANGES r_group FOR agr_define-agr_name.
END-OF-SELECTION.
REFRESH: db_1252, r_group .
r_group-sign = 'I'.
r_group-option = 'EQ'.
* Get User's roles
SELECT agr_name INTO (r_group-low) FROM agr_users WHERE uname = p_user AND to_dat > p_date.
APPEND r_group.
ENDSELECT.
*Get value of roles' O