Создание объектов OM с помощью документов оценки
Документы оценки в системе SAP могут быть использованы не только для хранения результатов оценки сотрудников. Им можно найти еще одно применение, которое будет иметь успех у определенных групп бизнес-пользователей. Предлагаю рассмотреть это применение более детально. Сегодняшняя тема — создание объектов OM с помощью документов оценки.
Постановка задачи
Задача, которая может быть поставлена перед функциональным консультантом выглядит, приблизительно, следующим образом: реализовать в системе SAP удобный инструмент, позволяющий специалисту такому-то создавать, к примеру, объект «C — Job», дополнительно определив для него какие-нибудь характеристики: семейство должностей, к которому принадлежит создаваемая должность, квалификации, которые должны быть определены для новой должности и т.д. и т.п.
Для решения такого рода задачи можно воспользоваться документом оценки, в результате закрытия которого, в системе в фоновом режиме будет создаваться объект C - Job с дополнительными характеристиками (по вашему желанию). Ключевым моментом в этом всем является BAdI, которое будет помогать создавать новые объекты и все, что с ними связано. И имя ее/его (?) — HRHAP00_FOLLOW_UP.
Далее я рассмотрю пример создания объекта C - Job, без учета дополнительных критериев (квалификации/семейства должностей и пр.), которые могут быть определены в связке с создаваемым объектом, создающегося в результате закрытия документа оценки.
Реализация. Оценочный формуляр
С помощью транзакции PHAP_CATALOG создайте формуляр, который будет использоваться при создании нового объекта. Обратите внимание на то, что в группе категорий, в которой будет создан ваш формуляр, разрешен объект C - Job
Данный шаг можно пропустить, так как он не является обязательным для нужд данной заметки. Представленная настройка может быть необходима в том случае, если вы хотите сделать доступным выбор существующих объектов _C - Job при создании документов оценки (выбранная должность будет сохранена в полях заголовка документа оценки: Проводящий аттестацию (Appraiser) или Аттестуемый (Appraisee)). _Хорошим, с моей точки зрения, решением в данном случае является создание отдельной группы категорий. За дополнительной информацией обращайтесь в раздел PS в конце данной заметки.
Для определения разрешенных типов объектов в рамках формуляра можно также воспользоваться транзакцией OOHAP_CATEGORY
В моем случае, формуляр будет самым простым: я предполагаю, что в нем будет один элемент VA (без вложенных групп критериев и критериев). Наименование объекта C я буду брать из наименования самого документа оценки (при его создании), а даты существования нового объекта будут формироваться на основании периода, также определенного на уровне нового документа оценки. Количество статусов минимально: In Preparation, In Process, Completed.
Свойства формуляра на закладке Layout:
Свойства формуляра на закладке Columns:
Свойства формуляра на закладке Processing:
Обратите внимание на блок Follow-Up Processing. В нем активирована реализация BAdI HRHAP00_FOLLOW_UP, ответственная за создание нового объекта в момент закрытия документа оценки.
См. заметку Как добавить расширение в документ оценки?
Реализация. Код для метода FOLLOW_UP
Для создания новой реализации BAdI HRHAP00_FOLLOW_UP воспользуйтесь транзакцией SE18
Интересующий меня метод - FOLLOW_UP.
Ниже я приведу говнокод, который-таки действительно сможет создать объект на основании данных, указанных в документе оценки. Но я советую всем, кто решит им воспользоваться для решения каких-нибудь своих нужд, сначала проконсультироваться со специалистом в соответствующей области, ну или с абапером:-) Как вам будет угодно.
Не забудьте активировать внедрение и определить его для области расширений AT, с помощью транзакции OOHAP_BASIC
Деблокируйте формуляр.
Тестирование
С помощью транзакции PHAP_CREATE создайте новый документ оценки. Укажите наименование создаваемого объекта и период действия данного объекта. Например,
По нашей логике, после закрытия документа оценки, в системе должен быть создан объект C - Job с наименованием «New Demo JOB», с периодом действия «01.06.2016 - 31.12.2019». Нажмите на кнопку . Затем нажмите на кнопку
После закрытия документа оценки, воспользуйтесь транзакцией PP01 для поиска нового объекта C
При просмотра инфо-типа 1000, период действия объекта совпадает с датами, указанными в документе оценки
Резюме
Пример, приведенный выше, надеюсь, дает представление о том, как можно использовать документы оценки, помимо их прямого назначения. Создание новых объектов организационного менеджмента (либо пользовательских Z* объектов) с кучей дополнительной информации (соединениями с другими объектами, либо значениями для инфо-типов) после закрытия документа оценки — часто встречающаяся задача, которая может быть реализована с помощью данного инструментария. Описанный подход, как мне кажется, поможт оперативно и довольно гибко обработать информацию, что называется, в «одном месте». Ведь все, что нужно, это настроенный формуляр и доступ к транзакциям PHAP_CREATE/PHAP_ADMIN. Немаловажно, что для каждого документа оценки можно получить печатную форму, которая является дополнительным приятнымпечатным приложением к вновь созданному объекту.
PS
Как я написал выше, определение типа объекта на уровне группы категорий необходимо в том случае, если вы предполагаете выбор существующих объектов при создании документов оценки. Создание своей группы категорий позволит вам определить количество используемых объектов для их последующего использования в качестве значений для полей Аттестуемый или Проводящий аттестацию.
Обратите внимание что при использовании отдельной группы категорий, у вас появляется возможность определения собственных имен для полей Аттестуемый и Проводящий аттестацию
Ну а при создании нового документа оценки, выбор объекта будет выглядеть следующим образом