Комментарии по теме

«Тра­нспо­ртная система SAP для чайников»
Вячеслав Шиболов:
Хорошая метафора с коробками. Наглядная.
«Отсле­жи­ва­ем изменения в объектах настройки SAP»
Олег Точенюк:
2. Для этого есть очень простая штука, называется запрет изменения данных в отладчике. Обычно в продуктивных системах даже если у вас есть возможность перейти в отладчик, то поменять там ничего...
«Отсле­жи­ва­ем изменения в объектах настройки SAP»
Алексей Митько:
Добрый день, 1. Дополню есть функционалы для сравнения таблиц между системами. Транзакции SCU0, OY19 sap note 91096. Это точно поможет понять разницу в настройках.   2. очень...

Создание и обработка собственных пунктов GOS-меню

1730
1

Для добавления «собственных» пунктов в GOS меню нужно выполнить небольшую настройку и создать пользовательскую («собственную») реализацию класса, который будет «отвечать» за созданный вами пункт меню.

Для начала необходимо определить объект, который будет «отвечать» за ваш пункт меню. Это выполняется путем создания новой записи в ракурсе ведения SM30: SGOSATTR. Параметры создаваемого объекта Рис.1.

Рис.1 SGOSATTR-1

Имя сервиса, по вашему выбору, начинается с пользовательского символа Z или Y. Описание и подсказка тоже не должны вызвать проблем. Далее необходимо указать класс реализации, который будет обрабатывать ваш пункт меню. Класс создадим позже, пока просто придумаем имя. Тип сервиса выбираем 1. Иконку любую из списка. А вот в поле «Следующий сервис», нужно указать код сервиса CREATE_ATTA, также необходимо отметить галкой пункт «Управление». В принципе, следующий сервис, это имя пункта меню перед которым будет добавлен наш создаваемый пункт. Стандартно, первым пунктом GOS-меню идет сервис создания приложений CREATE_ATTA, вот перед ним мы и выполним добавление нашего пункта меню.

Затем с версии 7.0 необходимо еще прописать созданный нами сервис в ракурсе, где устанавливается активность компонента. Для более ранних версий, этого пункта настройки, насколько мне известно, не было, пример на Рис.2. Из основных параметров задаем признак активности компонента, повторяем имя класса реализации сервиса и метку «Управление».

Примечание: Метка «Управление» отвечает за создание специального контейнера в котором вы можете разместить например свою ALV-таблицу с каким-то параметрами, например, переченм дполнительных документов, связанных с вашим GOS-объектом. Я рекомендую эту «галку» установить, так как если вам не придется использвать предлагаемый контйенер, вы всегда сможете в методе обработки отказатся от его появления на экране, вернув соответсвтующее сообщение. Пример будет приведен ниже.

Рис.2 SGOSCUST-1

На этом подготовительная часть готова, нужно перейти к реализации класса, обрабатывающего сообщения созданного пункта меню. Фактически, необходимо создать реализацию наследника класса CL_GOS_SERVICE. Для этого в транзакции SE24 – Создание классов создадим объявленный ранее класс Z_AOT_XECM_OPEN_CARD, Рис.3.

Рис.3 SE24-1

В этом классе необходимо переопределить по минимуму 2 метода. Это EXECUTE и CHECK_STATUS. Метод EXECUTE отвечает за

Ограниченный доступ

Для прочтения полной версии статьи необходимо зайти как зарегистрированный пользователь.

Ключевые слова: Basis
Функциональная область: Информационные технологии / IT, Basis, ABAP
Ролевое назначение: SAP Консультант / Consultant
Комментарии:

Олег Башкатов (Рейтинг: 7779) 14:57, 18 января 2016

>>> А вот в поле «Следующий сервис», нужно указать код сервиса CREATE_ATTA
 
здесь нужно отметить, что:
1) нужно указать тот сервис, перед которым должен появится новый пункт меню
и, что важнее: следующий сервис по всем пунктам только один, иначе SAP не выводит его на экран (по крайней мере, так в Ehp7).
То есть если мы хотим вставить наш пункт GOS-меню между пунктом
CREATE_ATTA (следующий сервис VIEW_ATTA)
VIEW_ATTA (следующий сервис PERS_NOTE), то нужно
 
изменить значение поля следующий сервис в пункте CREATE_ATTA на наш ZGOS_MENU, а в меню ZGOS_MENU следующим сервисом поставить VIEW_ATTA

Любое воспроизведение запрещено.
Копирайт © «Издательство ООО «Эксперт РП»