Создание объекта полномочий, роли и профиля

В системе SAP проверка полномочий осуществляется с помощью объектов полномочий. Они представляют собой структуры данных, состоящие из набора полей полномочий. Этим полям присваиваются определенные значения, и таким образом, на основе объектов полномочий создаются роли и профили, которые могут быть присвоены пользователям. В этой статье будет рассмотрено пошаговое создание объекта полномочий на конкретном примере и один из способов настройки роли и профиля пользователя.

Проверка полномочий в программах производится с помощью оператора:

Синтаксис вызова можно вставлять в программу автоматически при помощи модели в редакторе кода.

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

Сначала необходимо спроектировать сам объект полномочий, сформулировать требования к нему и на основе этого определить поля, из которых будет состоять объект. Транзакция su20 выводит список всех доступных полей полномочий.

поля полномочий

Если необходимо, с помощью транзакции su20 можно создавать пользовательские Z-поля, указав имя и элемент данных. Например, создадим поле для вида движения:

создание поля полномочий

В транзакции su21 «Ведение объектов полномочий» объекты распределены по классам в соответствии с логикой и принадлежностью к модулям и типам бизнес объектов. Пользовательские объекты полномочий создаются в соответствующем Z-классе.

ведение объектов полномочий

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

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

Поле ACTVT обозначает действие производимое над объектом. Оно используется в большинстве случаев, однако не является обязательным. Для поля ACTVT необходимо выбрать допустимые операции, полномочия на которые устанавливаем. Например, устанавливаем правила только на просмотр и изменение.

допустимые операции

Объект полномочий создан и настроен. Теперь необходимо создать роль и профиль пользователя. В транзакции su21 через пункты меню «Среда» — «Ведение ролей»  переходим на экран создания роли. Вводим название и создаем отдельную роль.

создание роли

На вкладке «Полномочия» генерируем полномочия с помощью кнопки «Изменение данных полномочий» (Без выбора шаблона), и добавляем вручную созданный объект полномочий.

создание полномочий вручную

Указываем какие действия над какими объектами разрешено совершать в рамках данного профиля. Перед сохранением необходимо сгенерировать созданный профиль.

создание полномочий вручную

На вкладке «Полномочия» у роли теперь появилось имя созданного и сгенерированного профиля. Для того чтобы присвоить роль пользователям, необходимо перейти на вкладку «Пользователи» и указать имена пользователей системы. Назначить роль также можно из транзакции ведения пользователей su01. Чтобы изменения вступили в силу, необходимо осуществить выравнивание основных записей пользователей роли.

присвоение пользователей роли

На этом настройка профиля и роли закончена, осуществим проверку с помощью небольшой демо-программы.

В случае, если указанные полномочия пользователю присвоены, то sy-subrc = 0, иначе если полномочий на изменение объектов с видом движения ‘301’ нет, то  sy-subrc <> 0.

6 comments
  1. Прочитал статью про объект полномочий. Написано доходчиво — не надо ковыряться в поисках крупиц истины по просторам интернета . Пишите еще!

  2. Мария, добрый день!
    Понятно написано, респект.
    Может у Вас есть информация по вопросу, подскажите пож-та:
    Как настроить полномочия к основным данным по полю? Странно, но нигде не могу найти такой инфы, неужели никто не делит полномочия доступов к объектам ведения по нескольким балансовым единицам. Но проблема в том, что организационные уровни вне основных данных, т.е. получается, что для ограничения доступа к основным данным (например банально к контрагентам) необходимо воспользоваться полем из основных данных, так как стандартные организационные уровни вне основных данных, они дают доступ именно к разным ракурсам. У меня такое поле есть (текстовое, есть справочник) со значением БЕ, но как его добавить в организационный уровень или может знаете как выставить по нему полномочия чтобы даже войти в объект нельзя было (контрагенты, материалы, договоры и тд)?
    Отдельный вопрос — Как понимаю вывод информации в поисках вообще не подлежат управлению полномочиями? То же нигде ничего не нашел по этому вопросу.
    Если подвести итог то — как можно развести пользователей разных БЕ по просмотру/изменению/ведению объектов от этих БЕ. Возможно ли по полю?

    • Что касается стандартных отчетов, можно посмотреть в сторону ФМа BUKRS_AUTHORITY_CHECK. Для Z можно создать свой объект полномочий, где предусмотреть различные ACTVT.
      Вывод информации в поисках можно ограничить. Делаете search help с ФМом и внутри формируете таблицу и проверку полномочий на ее строки. Если sy-subrc <> 0, то не показываем запись.

  3. Доброе утро, Кирилл! Нет права на уровне записей вообще ни для кого не заданы. Пользователь с правами менеджера по закупкам может видеть остатки через отчеты. Может задать ему полные права, а потом ограничить его через записи. Но тогда не знаю как ограничить его права по удалению объектов. Буду очень благодарна если вы мне поможете решить эту проблему Кирилл приветствую. каким образом можно задать определенному пользователю определенные права на просмотр каких либо документов, видеть каких либо ответственных по документам. скажи в ролях можно на определенного пользователя задать права?

Добавить комментарий

Обязательные поля отмечены *. Ваш email не будет отображаться.