Реакция документов оценки по отношению к пользователю

В данной заметке хочу написать о том, какая реакция документов оценки по отношению к пользователю, который с ними работает, может быть в системе, при использовании различный транзакций. Звучит кучеряво, но по факту — не бином Ньютона.

Начну с того, что в back-end системе основная работа пользователей с документами оценки осуществляется посредством транзакций:

  • PHAP_ADMIN
  • PHAP_CHANGE
  • PHAP_SEARCH

Транзакция PHAP_ADMIN позволяет выполнять пользователю администраторские функции при работе с документами оценки. Например,

  • Поиск документов оценки по определенным шаблонам, и по различным критериям (см. селекционный экран транзакции PHAP_ADMIN)
  • Массовое изменение статусов документов оценки
  • Принудительный запуск операций постбработки (например, в момент изменения статусов документов оценки, необходимо сформировать поток операций)
  • Просмотр заблокированных документов оценки с последующей возможностью снятия блокировок
  • Создание документов оценки

Транзакция PHAP_CHANGE позволяет работать с документом оценки, учитывая настройки и правила, предусмотренные для того или иного формуляра. Например, видимость столбцов на каком-то статусе/подстатусе, в зависимости от роли (оцениваемый/проводящий оценку/другой участник) сотрудника, работающего с документом оценки.

Транзакция PHAP_SEARCH используется для формирования печатных форм документов оценки.

Транзакция PHAP_ANON используется для работы с анонимными документами оценки.

Развивая тему данной заметки, необходимо отметить, что пользователь, который работает с транзакцией PHAP_ADMIN, будет иметь полный доступ к документу оценки, несмотря на настройки, применяемые к участникам документа оценки. Необходимо обратить внимание на то, что для пользователей, которым не нужно администраторских полномочий, необходимо использовать транзакцию PHAP_CHANGE. Продемонстрирую это на примере.

Есть документ оценки вида:

Структура данного документа оценки описана в заметке Скрываем столбцы в документах оценки

Вкратце: в зависимости от статуса/подстатуса, оцениваемому и оценивающему сотрудникам доступны различные столбцы документа оценки. Руководителю доступен столбец «Manager's Value» на статусе 4, подстатус K. Сотруднику доступен столбец «Employee's Value» на статусе 4, подстатус L.

Рассматриваем ситуацию, когда с данным документом оценки работает три человека:

  1. Проводящий оценку (Appraiser) — мифический господин Manager Manager
  2. Оцениваемый (Appraisee) — не менее мифический господин Employee Employee Employee
  3. Администратор процесса оценки
    Проводящий оценку и оцениваемый, с точки зрения системы SAP — это табельные номера, которым в инфо-типе 0105, подтип 0001, создан и присвоен пользователь, под которым эти сотрудники могут работать с документом оценки (и не только) в системе.

Так, господину Manager Manager в инфо-типе 0105 подтипе 0001 присвоен пользователь с именем MANAGER

А господину Employee Employee Employee в этом же инфо-типе и подтипе присвоен пользователь с именем EMPLOYEE

Третий же участник, который является администратором, никак не относится к данному документу оценки. В данной заметке он будет описан под логином HR_ADMIN. Присвоение табельному номеру для данного пользователя отсутствует.

Для начала я открываю документ оценки под пользователем MANAGER, используя транзакцию PHAP_CHANGE

Документ оценки доступен на изменение согласно тем правилам, которые определены.

Открываю этот же документ оценки под пользователем EMPLOYEE, все также используя транзакцию PHAP_CHANGE

Оцениваемому сотруднику данный документ оценки недоступен для изменений. Что логично, потому что на этом этапе оцениваемый сотрудник не должен ничего изменять в документе. Продолжаем эксперимент.

Открываю этот же документ оценки под пользователем HR_ADMIN, используя транзакцию PHAP_CHANGE

Реакция системы такая же, как и у пользователя EMPLOYEE. То есть документ недоступен для изменений.

Теперь открою документ оценки под пользователем HR_ADMIN, но уже в транзакции PHAP_ADMIN

Как видите, документ полностью доступен на изменение.

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

При использовании транзакции PHAP_CHANGE всегда будет отрабатывать стандартная логика проверки пользователя, который открывает документ оценки, на его отношение к участникам: является ли он проводящим оценку, оцениваемым, или же он относится к другим участникам оценки. И уже в зависимости от этого далее подключается преднастроенная логика работы с документом оценки: будь то видимость столбцов, доступность кнопок и т.д. и т.п.