Продолжаю рассказывать основы разработки в HCM, для разработчиков из других модулей. Недавно зашел в код программы, которую писал не HR абапер, и у меня чуть не случился приступ. Селекты, конечно, красивые...
Вводная информация.
Объект ОМ - это сущность в организационном менеджменте, которая отображает некий объект реального мира или абстракцию. Различаются они типом объектов. Например S - Штатная должность, O - Организационная единица, A -Рабочее место и так далее. Существование объекта означает наличие записи в инфо-типе 1000 в определенном временном периоде. Остальные инфо-типы хранят свойства этого объекта. Исключение Табельный номер, данные объекты являются объектами PA и ведутся немного в других ИТ.
Если мы представим себе структуру нашего отдела или предприятия, то увидим обычное дерево. В системе объекты связаны между собой в таком же порядке. Эта связь хранится в инфо-типе 1001. Причем, создается она сразу в двух видах От объекта X к объекту Y и обратно. Только в одном случае имеет префикс А, в другом B.
Пока это все звучит довольно абстрактно и непонятно. Давайте для наглядности посмотрим, как это все выглядит в транзакции PPOSE
Объект может быть связан с множеством других объектов различными связями. В PPOSE мы видим лишь определенные соединения, согласно настройке. Логично предположить, что SAP предусмотрел механизм обхода и настройки обхода данных связей без дополнительной разработки, а только при помощи одной лишь настройки.
Путь анализа - описывает алгоритм поиска объектов при помощи данных 1001 ИТ. Определение не из книжки, однако суть передает.
Ведение путей анализа осуществляется в транзакции SPRO
Менеджмент персонала->Организационный менеджмент->Основные параметры настройки->Ведение путей анализа
Или транзакция OOAW
Посмотрим один из самых часто используемых путей анализа O-S-P .
Тут довольно легко разобраться. Указывается Тип объекта, соединение и тип объекта который хотим найти по этому соединению. Данные обрабатываются цикле или рекурсивно, т.е. если в первой итерации мы от объекта O нашли объект S. В следующей попробуем найти объект P от этого объекта S.
По такой схеме можно извлечь любую информацию из организационной структуры и пройти ее как сверху вниз, так и снизу вверх.
Для примера можно посмотреть еще несколько соединений и все станет понятно.
Тестирование путей анализа можно осуществить в транзакции - PPST. Данная транзакция представляет собой отчет с использованием ЛБД PCH
Получение организационной структуры по пути анализа
Для получения данных по пути анализа в abap используется функциональный модуль RH_STRUC_GET
Во входных параметрах модуля указываем корневой объект для нашего поиска и путь анализа.
На выходе получим три таблицы. RESULT_OBJEC и RESULT_TAB -являются просто списком найденных объектов. А вот RESULT_STRUC хранит в себе связи между объектами. Что позволяет осуществлять навигацию по результату.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
CALL FUNCTION 'RH_STRUC_GET' EXPORTING act_otype = 'S' act_objid = lv_objid act_wegid = 'P-S-O-O' act_plvar = '01' act_begda = lv_date act_endda = lv_date TABLES result_objec = lt_objs result_struc = lt_struc EXCEPTIONS no_plvar_found = 1 no_entry_found = 2 OTHERS = 3. |