SAP中AUTHORITY-CHECK 的使用

来源:互联网 发布:java byte 类型运算 编辑:程序博客网 时间:2024/06/05 00:23
  1. 创建Data Element
    1. 创建Data Element
    2. 为Z_EMP_ID00创建一个Domain
  2. 创建Authorization Fields
  3. 创建Authorization Object
    1. 创建一个Object class ZEMP
    2. 在ZEMP里创建一个Authorization Object ZEMPOBJ00
  4. 为用户添加Profile
    1. 创建Profile
    2. 将ZAHUEMP assign给用户BCUSER
  5. 创建Role
    1. Description Maintenance Employee ID
    2. 给这个Role添加用户
  6. 创建测试程序
  7. 运行程序
文章转自 http://blog.csdn.net/hackai886/article/details/7906328

一直对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 Class和Authorization 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, 在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.