Реакция документов оценки по отношению к пользователю
В данной заметке хочу написать о том, какая реакция документов оценки по отношению к пользователю, который с ними работает, может быть в системе, при использовании различный транзакций. Звучит кучеряво, но по факту — не бином Ньютона.
Начну с того, что в 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.
Рассматриваем ситуацию, когда с данным документом оценки работает три человека:
- Проводящий оценку (Appraiser) — мифический господин Manager Manager
- Оцениваемый (Appraisee) — не менее мифический господин Employee Employee Employee
- Администратор процесса оценки
Проводящий оценку и оцениваемый, с точки зрения системы 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 всегда будет отрабатывать стандартная логика проверки пользователя, который открывает документ оценки, на его отношение к участникам: является ли он проводящим оценку, оцениваемым, или же он относится к другим участникам оценки. И уже в зависимости от этого далее подключается преднастроенная логика работы с документом оценки: будь то видимость столбцов, доступность кнопок и т.д. и т.п.