ABAP FileOS: Добавление своего узла в GOS-меню
Сегодня поговорим о добавлении своего пункта меню.
Добавление своего пункта меню осуществляется через таблицу SGOSATTR (через SM30).
Добавим пункт «Список ОЗМ» в GOS-меню для основной записи материала.
1. Сначала просто создадим запись в таблице SGOSATTR (через SM30) (лучше копированием) (например, с пункта VIEW_ATTA / CL_GOS_SRV_ATTACHMENT_LIST).

В параметрах меняем описание объекта и только (это на первом шаге; потом еще вернемся).

2. На следующем шаге нам необходимо создать класс для сервиса (то есть заполнить поле «Класс для реализации сервиса» своей реализацией).
Класс нужно создавать наследованием от класса CL_GOS_SERVICE.
Создадим ZCL_ABAPFILEOS_GOS_SRV_MAT и сделаем наследование.
При создании галочку «Конечный» лучше убрать, чтобы в будущем у коллег или у Вас было больше возможностей при меньшем объеме изменений.

В классе на первом шаге нужно реализовать (переопределить) 2 метода: EXECUTE и CHECK_STATUS.
ZCL_ABAPFILEOS_GOS_SRV_MAT
~EXECUTE
method EXECUTE.
BREAK-POINT.
endmethod.
ZCL_ABAPFILEOS_GOS_SRV_MAT
~CHECK_STATUS
METHOD check_status.
CONSTANTS: BEGIN OF mc_serv_stat
, active TYPE sgs_status VALUE '0'
, not_active TYPE sgs_status VALUE '1'
, hidden TYPE sgs_status VALUE '2'
, END OF mc_serv_stat
.
CONSTANTS lc_target_business_obj TYPE sibftypeid VALUE 'BUS1001006'.
IF is_lporb-objtype-typeid NE lc_target_business_obj.
ep_status = mc_serv_stat-hidden.
RETURN.
ENDIF.
IF is_lporb-instid IS INITIAL.
ep_status = mc_serv_stat-not_active.
RETURN.
ENDIF.
ep_status = mc_serv_stat-active.
RETURN.
ENDMETHOD.
После реализации класса вернемся в настройки и укажем наш созданный класс ZCL_ABAPFILEOS_GOS_SRV_MAT.
Также подменим ICON (для того, чтобы корректно отображалось в настройках и запись не вводила в заблуждение).

3. Следующим шагом нам нужно понять, в каком месте меню должен располагаться сервис.
Место сервиса в меню определяется полем «Следующий сервис».

Для простоты сделаем его в конце меню. То есть:

Для этого определяем ID для сервиса «Справка для сервисов объектов»:

Однако, затем нам нужно проследить цепочку «непоказанных сервисов» и уже после последнего вставить наш ID.

Если хотите прочитать статью полностью и оставить свои комментарии присоединяйтесь к sapland
ЗарегистрироватьсяУ вас уже есть учетная запись?
Войти