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

«Тра­нспо­ртная система SAP для чайников»
Вячеслав Шиболов:
Хорошая метафора с коробками. Наглядная.
«Инстру­кция по поиску, ди­а­гно­сти­ке и ре­о­рга­ни­за­ции LOB-се­гме­нтов в системах SAP на базе БД Oracle»
Серго Берадзе:
Добрый день. Lob сегмент он на то и Lob что бы с ним поменьше возни было, если он растет, то значит у вас процедуры на уровне SAP по удалению объектов из таблицы к которой он привязан идут не...

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

1567
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
Комментарии:

Олег Башкатов (Рейтинг: 7748) 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

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