Документы оценки в системе SAP могут быть использованы не только для хранения результатов оценки сотрудников. Им можно найти еще одно применение, которое будет иметь успех у определенных групп бизнес-пользователей. Предлагаю рассмотреть это применение более детально. Сегодняшняя тема — создание объектов OM с помощью документов оценки.

Постановка задачи

Задача, которая может быть поставлена перед функциональным консультантом выглядит, приблизительно, следующим образом: реализовать в системе SAP удобный инструмент, позволяющий специалисту такому-то создавать, к примеру, объект «C — Job», дополнительно определив для него какие-нибудь характеристики: семейство должностей, к которому принадлежит создаваемая должность, квалификации, которые должны быть определены для новой должности и т.д. и т.п.

Для решения такого рода задачи можно воспользоваться документом оценки, в результате закрытия которого, в системе в фоновом режиме будет создаваться объект C - Job с дополнительными характеристиками (по вашему желанию). Ключевым моментом в этом всем является BAdI, которое будет помогать создавать новые объекты и все, что с ними связано. И имя ее/его (?) — HRHAP00_FOLLOW_UP.

Далее я рассмотрю пример создания объекта C - Job, без учета дополнительных критериев (квалификации/семейства должностей и пр.), которые могут быть определены в связке с создаваемым объектом, создающегося в результате закрытия документа оценки.

Реализация. Оценочный формуляр

С помощью транзакции PHAP_CATALOG создайте формуляр, который будет использоваться при создании нового объекта. Обратите внимание на то, что в группе категорий, в которой будет создан ваш формуляр, разрешен объект C - Job

Данный шаг можно пропустить, так как он не является обязательным для нужд данной заметки. Представленная настройка может быть необходима в том случае, если вы хотите сделать доступным выбор существующих объектов _C - Job при создании документов оценки (выбранная должность будет сохранена в полях заголовка документа оценки: Проводящий аттестацию (Appraiser) или Аттестуемый (Appraisee)). _Хорошим, с моей точки зрения, решением в данном случае является создание отдельной группы категорий. За дополнительной информацией обращайтесь в раздел PS в конце данной заметки.

Рисунок 1.

Для определения разрешенных типов объектов в рамках формуляра можно также воспользоваться транзакцией OOHAP_CATEGORY

В моем случае, формуляр будет самым простым: я предполагаю, что в нем будет один элемент VA (без вложенных групп критериев и критериев). Наименование объекта C я буду брать из наименования самого документа оценки (при его создании), а даты существования нового объекта будут формироваться на основании периода, также определенного на уровне нового документа оценки. Количество статусов минимально: In Preparation, In Process, Completed.

Свойства формуляра на закладке Layout:

Рисунок 2.

Свойства формуляра на закладке Columns:

Рисунок 3.

Свойства формуляра на закладке Processing:

Рисунок 4.

Обратите внимание на блок Follow-Up Processing. В нем активирована реализация BAdI HRHAP00_FOLLOW_UP, ответственная за создание нового объекта в момент закрытия документа оценки.

См. заметку Как добавить расширение в документ оценки?

Реализация. Код для метода FOLLOW_UP

Для создания новой реализации BAdI HRHAP00_FOLLOW_UP воспользуйтесь транзакцией SE18

Рисунок 5.

Интересующий меня метод - FOLLOW_UP.

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

Не забудьте активировать внедрение и определить его для области расширений AT, с помощью транзакции OOHAP_BASIC

Рисунок 6.

Деблокируйте формуляр.

Тестирование

С помощью транзакции PHAP_CREATE создайте новый документ оценки. Укажите наименование создаваемого объекта и период действия данного объекта. Например,

Рисунок 8.

По нашей логике, после закрытия документа оценки, в системе должен быть создан объект C - Job с наименованием «New Demo JOB», с периодом действия «01.06.2016 - 31.12.2019». Нажмите на кнопку follow_up8. Затем нажмите на кнопку follow_up16

Рисунок 9.

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

Рисунок 10.

При просмотра инфо-типа 1000, период действия объекта совпадает с датами, указанными в документе оценки

Рисунок 11.

Резюме

Пример, приведенный выше, надеюсь, дает представление о том, как можно использовать документы оценки, помимо их прямого назначения. Создание новых объектов организационного менеджмента (либо пользовательских Z* объектов) с кучей дополнительной информации (соединениями с другими объектами, либо значениями для инфо-типов) после закрытия документа оценки — часто встречающаяся задача, которая может быть реализована с помощью данного инструментария. Описанный подход, как мне кажется, поможт оперативно и довольно гибко обработать информацию, что называется, в «одном месте». Ведь все, что нужно, это настроенный формуляр и доступ к транзакциям PHAP_CREATE/PHAP_ADMIN. Немаловажно, что для каждого документа оценки можно получить печатную форму, которая является дополнительным приятнымпечатным приложением к вновь созданному объекту.

PS

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

Рисунок 12.

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

Рисунок 13.

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

Рисунок 14.