Итак, ставим задачу. Нужно добавить стандартный инфо-тип 1039 «Рабочая группа» в PPOME в виде закладки для объекта «O». Это гораздо удобнее, чем каждый раз указывать рабочую группу в PP01. Процедура состоит из нескольких шагов. Сначала мы создаем новый экран и его логику для инфо-типа, затем прописываем его в настройках.
Три шага для добавления стандартного инфо-типа
Шаг первый. Создание экрана и логики. Есть два варианта: сломать стандартный пул модулей MPxxxx00 и добавить экран с номером 9000, либо написать свой собственный экран и программу обработки. Ломать стандартную систему не хочется, поэтому пойдем вторым путем. Для образца берем группу функций HRFPM_OM_DETAIL_SCREENS и в SE38 копируем ее в свою. Смотрим логику работы экрана и заменяем на наш ИТ1039. Соответственно, изменяем экран 0300. Удаляем то, что там было, добавляем наши поля из ИТ1039. Все это активируем.
Шаг второй. Настройка. Открываем ракурс T77OMTABUS. В определении закладок создаем новую закладку, но не указываем галочку «Специфично для инфо-типа» и не заполняем номер ИТ в последней колонке. Это означает, что у нас будет собственная программа отображения и обработки экрана. Если галочку указать и прописать ИТ, то система будет искать в пуле модулей MPxxxx00 экран 7000 и показывать его в PPOME. Нужно сказать, что не все ИТ имеют такие экраны.
Закладку для стандартного ИТ создали. Осталось ее прописать для типа объекта «O» и указать нашу программу обработки экрана. В том же ракурсе выбираем «Закладка в сценарии для типа объекта». Создаем новую запись для сценария OME0: указываем тип объекта, нашу закладку, последовательность, в которой ее нужно отображать. В поле «Имя отчета» указываем нашу программу, которая управляет экраном и в поле «Экран» — номер экрана. Вот что получилось у меня: ZOME0 O ZIT1039 18 SAPLZ_HRFPM_OM_DETAIL_SCREEN 0300 ZRH_OM_DETAILSCREEN_ICONS. Если мы хотим в закладке слева от имени рисовать красивую галочку или иную иконку (состояние заполнения ИТ), то копируем стандартный ФМ RH_OM_DETAILSCREEN_ICONS в свой, добавляем в CASE выбор своей закладке и пишем код:
icon_name = icon_checked.
call function 'RH_OM_PP01_INFTY_CHECK'
EXPORTING
infty = '1039'
IMPORTING
icon_name = icon_name.
Соответственно, изменяем номер ИТ. Вот и все. Сохраняем и проверяем.
Да, не забудьте включить пул типов для иконок:
TYPE-POOLS: ICON.
One Comment
Константин Соколов
PS: если скопировали с именем Z_HRFPM_OM_DETAIL_SCREEN то имя отчета в «Закладка в сценарии для типа объекта» будет SAPLZ_HRFPM_OM_DETAIL_SCREEN