SAP中AUTHORITY-CHECK 的使用

<!--[if gte vml 1]><v:shapetype id="_x0000_t75" coordsize="21600,21600" o:spt="75" o:preferrelative="t" path="m@4@5l@4@11@9@11@9@5xe" filled="f" stroked="f"> <v:stroke joinstyle="miter" /> <v:formulas> <v:f eqn="if lineDrawn pixelLineWidth 0" /> <v:f eqn="sum @0 1 0" /> <v:f eqn="sum 0 0 @1" /> <v:f eqn="prod @2 1 2" /> <v:f eqn="prod @3 21600 pixelWidth" /> <v:f eqn="prod @3 21600 pixelHeight" /> <v:f eqn="sum @0 0 1" /> <v:f eqn="prod @6 1 2" /> <v:f eqn="prod @7 21600 pixelWidth" /> <v:f eqn="sum @8 21600 0" /> <v:f eqn="prod @7 21600 pixelHeight" /> <v:f eqn="sum @10 21600 0" /> </v:formulas> <v:path o:extrusionok="f" gradientshapeok="t" o:connecttype="rect" /> <o:lock v:ext="edit" aspectratio="t" /> </v:shapetype><v:shape id="_x0000_i1025" type="#_x0000_t75" style='width:6in; height:370.8pt'> <v:imagedata src="file:///C:/DOCUME~1/ADMINI~1/LOCALS~1/Temp/msohtml1/03/clip_image001.jpg" o:title="SU21-1" /> </v:shape><![endif]--><!--[if !vml]--><!--[endif]-->

一直对SAP ABAP里的Authority不是很重视,所以对它也似乎不大熟悉,无赖现实企业中权限是很重要的,所以花了一点时间专研了一下,小有收获,顺带也学了点BASIS的知识,不敢独享,发在blog上和大家一起学习。

下面是一个简单但是完整的Authority-check的小例子。

1.创建Data Element

TCODE SE80

1) 创建Data Element

Name: Z_EMP_ID00

Field Label属性

Length

Field Label

Short

10

ID

Medium

15

EMPLOYEE ID

Long

20

EMPLOYEE EMPLOYEE ID

Heading

19

EMPLOYEE ID HEADING

2) Z_EMP_ID00创建一个Domain

Name

Z_EMP_ID00

Data Type

NUMC

No. Characters

10

Decimal Places

0

Output Length

10

2.创建Authorization Fields

TCODE SU20

Field Name

ZEMPID00

Data element

Z_EMPID00

3.创建Authorization Object

多个Authorization Fields是被归在一个Authorization Object中的,创建好Object后需要把Z_EMPID00 assign给它.

TCODE SU21


SU21-1 (SU21界面)

1) 创建一个Object class ZEMP

Object Class

ZEMP

Text

Empleyee Object class.

2) ZEMP里创建一个Authorization Object ZEMPOBJ00

Object

ZEMPOBJ00

Text

Employee object 00.

Field name

ZEMPID00

SU21-2 (创建Authorization Object)


SU21-3 (Object ClassAuthorization Object创建完毕)

4.为用户添加Profile

这个Profile包含用户对Object ZEMPOBJ00的各个Field有权限访问的具体范围.

1) 创建Profile

TCODE SU01

在菜单Enviroment > Mainten Profile(F9)

Profile: ZEMPRF00

选择Create.

SU01-1 (创建Profile)

在下半部分的表格中的Object列中添加ZEMPOBJ00

Save, 激活

Authorization列输入ZAHUEMP,双击新建它

Text: Authorization for Employee.

点击Maintenance Value, FromTo列分别输入*

分别激活Authorization, Profile.

SU01-2 (Profile 创建完毕)

2) ZAHUEMP assign给用户BCUSER.

然后回到SU01BCUSER的界面, Profile面板:

添加ZEMPRF00

Save.

5.创建Role

TCODE PFCG

Role ZEMPR

选择Single Role

1) Description: Maintenance Employee ID

Authorizations面板中:

Profile Name

ZEMPRF00

Profile Text

Employee Profile

2) 给这个Role添加用户

User面板中:

User: BCUSER

6.创建测试程序

REPORT ZAUTHORITY01.

DATA: Z(20) VALUE 'abc'.

AUTHORITY-CHECK OBJECT 'ZEMPOBJ00'

ID 'ZEMPID00' FIELD Z.

WRITE:/ Z.

IF SY-SUBRC = 0.

WRITE:/ 'PASS'.

ELSE.

WRITE:/ 'Sorry.'.

ENDIF.

7.运行程序

用户BCUSER必须先退出系统然后登录后前面设置的role才会生效.运行程序,结果为PASS.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值