Как создать пользовательский объект полномочий?

Пояснение к вопросу

Конечно не всегда, но довольно часто, как бы это парадоксально не звучало, перед функциональным консультантом может возникнуть задача создания собственного объекта полномочий. Когда это может быть полезно? Например, для запуска какого-нибудь ABAP-отчета, полномочия на который должны быть только у пользователя из "белого" списка. Ах да, и неважно, есть у тебя профиль SAP_ALL или нет. Далее в заметке будет немного информации о том, как же создать свой объект полномочий, и как с ним работать.

Решение вопроса

1. Создание нового объекта полномочий

С помощью транзакции SU21 создайте новый авторизационный класс и объект полномочий

Новый объект полномочий создан. Рассмотрим его возможное дальнейшее применение.

2. Вариант использования #1. Создание новой транзакции с предопределенным объектом полномочий

При создании собственной транзакции у вас есть возможность явно указать объект полномочий, и соответствующие ему значения, при наличии которых, пользователь сможет выполнить запуск этой транзакции. На следующем видеофрагменте представлена последовательность действий, которую необходимо выполнить для создания новой транзакции и определения для нее пользовательского объекта полномочий. Все действия выполняются через транзакцию SE93

Выполняю запуск созданной транзакции (при условии, что моему пользователю присвоен профиль SAP_ALL)

2. Вариант использования #2. Создание пользовательской роли с новым объектом полномочий

Как и все объекты полномочий, недавно созданный объект также должен быть определен в какую-нибудь роль. Роль, в свою очередь, должна быть присвоена пользователю. На следующем видеофрагменте представлена последовательность действий, которую необходимо выполнить для создания новой роли, и включения в нее нового объекта полномочий. Все действия выполняются через транзакцию PFCG

Обратите внимание на то, что если вы добавляли какое-нибудь справочное описание о новом объекте полномочий (см. описание в пункте # 1. Создание нового объекта полномочий), оно будет доступно для просмотра через транзакцию PFCG, по нажатию на клавишу F1

Выполните присвоение этой роли пользователю, и попробуйте выполнить запуск созданной транзакции.

3. Вариант использования #3. Проверка на наличие объекта полномочий в ABAP программе

Выполнить проверку на наличие у пользователя определенного объекта полномочий возможно также и в ABAP программе, посредством использования выражения AUTHORITY-CHECK

См. AUTHORITY-CHECK

Например,

Выполняю запуск программы под пользователем, которому не присвоен проверяемый объект полномочий

Присваиваем созданную ранее роль своему пользователю и выполняем запуск программы еще раз

4. Добавление нового объекта полномочий в профиль SAP_ALL

Для добавления нового объекта полномочий в профиль SAP_ALL, зайдите в транзакцию SU21 и нажмите на кнопку 

Проверить, что профиль был расширен новым объектом, можно посредством транзакции SUIM

Добавив новый объект полномочий в профиль SAP_ALL, у пользователей, которым он присвоен, не нужно будет добавлять отдельную роль, в котором содержится этот объект.