Меню

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

У вас уже есть учетная запись?

Войти