【转发】SAP ABAP ZBA_R001 查询用户下的角色

******************************************

* 查询用户下的角色,事务代码

* 作者: 刘欣

* 2013-5-3

* basis100@qq.com

* QQ522929

******************************************

REPORT ZBA_R001.

TYPE-POOLS: SLIS,KCDE.

*-----------内表定义--------------

DATA:BEGIN OF itab OCCURS 0,

UNAME type AGR_USERS-UNAME, "用户名

NAME_TEXT type V_USERNAME-NAME_TEXT, "完整用户名称

DEPARTMENT type ADCP-DEPARTMENT, "部门信息

AGR_NAME type AGR_USERS-AGR_NAME, "角色名

TEXT type AGR_TEXTS-TEXT, "角色中文说明

TCODE type AGR_TCODES-TCODE, "事务代码

TTEXT type TSTCT-TTEXT, "代码说明

END of itab.

DATA: username TYPE V_USERNAME-NAME_TEXT,

tcodes TYPE AGR_TCODES-TCODE,

* DEPARTMENT type ADCP~DEPARTMENT,"部门信息

G_REPID TYPE SY-REPID,

IT_EVENTS TYPE SLIS_T_EVENT,

IT_FIELD TYPE SLIS_T_FIELDCAT_ALV,

WA_FIELD TYPE SLIS_FIELDCAT_ALV,

IT_SORT TYPE SLIS_T_SORTINFO_ALV.

INITIALIZATION.

G_REPID = SY-REPID.

*--------选择字段-----------------------

start-of-selection.

SELECT-OPTIONS name FOR USERNAME NO INTERVALS.

SELECT-OPTIONS codes FOR tcodes NO INTERVALS.

end-of-selection.

*------执行-----------

perform tosql.

perform listshow.

*--------------------------------

* 用户名,完整用户名称,部门名称,角色名,角色中文说明,事务代码,事务代码说明

*--------------------------------

form tosql.

SELECT DISTINCT usr21~bname AS uname V_USERNAME~NAME_TEXT ADCP~DEPARTMENT AGR_USERS~AGR_NAME AGR_TEXTS~TEXT AGR_TCODES~TCODE TSTCT~TTEXT

INTO corresponding fields of table itab

FROM USR21

INNER JOIN v_username on V_USERNAME~persnumber = usr21~persnumber "通过usr21的号码,连接用户信息表

INNER JOIN adcp ON adcp~persnumber = usr21~persnumber "通过usr21的号码,连接部门表

INNER JOIN agr_users ON agr_users~uname = usr21~bname "通过usr21的用户名,连接角色表

INNER JOIN AGR_TEXTS on AGR_TEXTS~AGR_NAME = AGR_USERS~AGR_NAME "通过角色名,加入角色中文说明表

INNER JOIN AGR_TCODES on AGR_TCODES~AGR_NAME = AGR_USERS~AGR_NAME "通过角色名,加入角色中文说明表

INNER JOIN TSTCT on TSTCT~TCODE = AGR_TCODES~TCODE "通过 表

where AGR_USERS~UNAME in name and AGR_TCODES~TCODE in codes and AGR_TEXTS~LINE = '00000' and TSTCT~SPRSL = '1'.

DELETE ADJACENT DUPLICATES FROM itab.

SORT itab BY UNAME AGR_NAME TCODE.

*--------------------------------

select * from AGR_TEXTS
/LEFT JOIN AGR_TCODES on AGR_TCODES.AGR_NAME = AGR_TEXTS.AGR_NAME/

/LEFT JOIN TSTCT on TSTCT.TCODE = AGR_TCODES.TCODE/
left join AGR_1251 on AGR_1251.AGR_NAME = AGR_TEXTS.AGR_NAME
LEFT JOIN TSTCT on TSTCT.TCODE =AGR_1251.LOW

where
AGR_TEXTS.mandt=‘900’ and AGR_TEXTS.spras=‘1’ and AGR_TEXTS.AGR_NAME like ‘Z%’ AND SPRSL=‘1’

*--------------------------------

* form listshow

*--------------------------------

form listshow.

********宏定义.

DEFINE ADD_FIELD.

WA_FIELD-FIELDNAME = &1.

WA_FIELD-REPTEXT_DDIC = &2.

WA_FIELD-NO_ZERO = 'X'.

APPEND WA_FIELD TO IT_FIELD.

END-OF-DEFINITION.

ADD_FIELD 'UNAME' '登录用户名'.

ADD_FIELD 'NAME_TEXT' '中文名称'.

ADD_FIELD 'DEPARTMENT' '部门'.

ADD_FIELD 'AGR_NAME' '角色'.

ADD_FIELD 'TEXT' '角色名称'.

ADD_FIELD 'TCODE' '事务代码'.

ADD_FIELD 'TTEXT' '事务代码说明'.

CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'"

EXPORTING

I_CALLBACK_PROGRAM = G_REPID

I_BACKGROUND_ID = 'ALV_BACKGROUND'

* I_GRID_TITLE = '查询用户-角色-事务代码'

IT_FIELDCAT = IT_FIELD

* IS_LAYOUT = GS_LAYOUT

* IT_SORT = IT_SORT

I_SAVE = 'A'

* IT_EVENTS = IT_EVENTS[]

TABLES

T_OUTTAB = itab

EXCEPTIONS

PROGRAM_ERROR = 1

OTHERS = 2.

endform.

欢迎进入SAP中国顾问精英群与原作者一起讨论

————————————————

版权声明:本文为CSDN博主「james-lx」的原创文章,已授权SAP全球顾问云之家进行发稿。

https://blog.csdn.net/ot512csdn/article/details/103147643


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值