SAP中AUTHORITY-CHECK 的使用 .

一直对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

SAP中AUTHORITY-CHECK 的使用 ._第1张图片

图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

 

SAP中AUTHORITY-CHECK 的使用 ._第2张图片

图SU21-2 (创建Authorization Object)


图SU21-3 (Object Class和Authorization Object创建完毕)

 

4.为用户添加Profile

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

 

1) 创建Profile

 

TCODE SU01

 

在菜单Enviroment > Mainten Profile(F9)

 

Profile: ZEMPRF00

选择Create.

SAP中AUTHORITY-CHECK 的使用 ._第3张图片

图SU01-1 (创建Profile)

 

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

Save, 激活

 

Authorization列输入ZAHUEMP,双击新建它

 

Text: Authorization for Employee.

点击Maintenance Value, 在From列和To列分别输入*

分别激活Authorization, Profile.

图SU01-2 (Profile 创建完毕)

 

2) 将ZAHUEMP assign给用户BCUSER.

然后回到SU01对BCUSER的界面, 在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.

你可能感兴趣的:(SAP中AUTHORITY-CHECK 的使用 .)