Generic Object Services (Часть 1 — Введение)

GOS – технология предоставляющая функции к разным приложениям SAP. Эти функции всегда относятся к объекту приложения, например: показывают связанные с ним файлы, запускают Workflow, добавляют заметки пользователя к объекту, отправляют его по почте.

Под объектом понимается бизнес объект: материал, сбытовой заказ, закупочный заказ и т.п. (посмотреть можно в SW01) Внешне это выглядит как кнопка на панели инструментов с заголовком программы:

Возможности GOS:

  • Ввод личных и общих заметок к объекту
  • Создание вложений к объекту (картинки, документы и т.п.)
  • Создание связей между объектами (Например: к объекту закупочного заказа можно прикрепить все материальные документы, заявки).
  • Показывает все Workflows, в которых используется объект, позволяет вести архивирование и запуск.
  • Возможность отправки объекта во вложении в письме из одной SAP системы в другую
  • Подписываться на объект, для уведомления обо всех изменениях, вносимых в него
  • Добавлять в список фаворитов, для быстрого доступа к объекту (Система –> Мои объекты).

Администрирование GOS

Необходимые роли для администрирования GOS: SAP_BC_SRV_GBT, SAP_BC_BMT_WFM_ADMIN and SAP_BC_SRV_ARL_ADMIN. Авторизация для работы с GOS зависит от авторизации со связанным бизнес объектом.  Если у пользователя нет полномочий на изменение бизнес объекта, те действия GOS, которые вносят какие либо изменения, так же не будут ему доступны.

Все пользователи имеют доступ к общим вложениям и заметкам, но доступ на изменение заметки или вложения имеет пользователь, который их создал.  Только пользователь, который создал личную заметку, имеет возможность ее просматривать или изменять. Для ввода бизнес документов, штрих кодов должен быть настроен ArchiveLink (транзакции OAC1-5).

Отправка бизнес объекта как вложения использует функциональность Business Workplace, для его настройки обратитесь к справке Administration of Send, Folder and Office Functions.

Отправка внешних писем использует SAPConnect, его администрирование рассматривается тут SAPconnect (BC-SRV-COM).

Администрирование Workflow рассматривается тут Workflow System Administration.

Настройка подписки на изменения объектов

По умолчанию пользователь может подписываться на события или изменения объектов, но вы так же можете добавить и свои дополнительные события.

Процедура настройки:

  1. Перейдите в ведение ракурса таблицы SM30 – SGOSSUB
  2. Создайте новую запись и укажите:
  • Тип объекта (BUS2012 – заказ на поставку, просмотреть можно в тр. SW01)
  • Событие, на которое будем подписываться (CHANGED – изменение заказа)
  • Индикатор подписки, если она активна, ставим галочку
  • Функциональный модуль для дополнительной проверки
  • Заголовок письма (Объект &OBJKEY& был изменен — &SY-DATUM&, тип объекта – &OBJTYP&, атрибут &ATTRIBUTE&)
  • Содержимое письма, в качестве стандартного содержимого используется текст SGBT_DEF_SUB.
  • Нажмите сохранить.

После чего можно настроить уведомление на изменение бизнес объекта (заказа на закупку). Нажав на кнопку GOS -> Мои объекты -> Абонировать/сторнировать объект.

Добавление своего пункта меню в панель GOS

Перед добавлением своего пункта меню в GOS панель необходимо создать глобальный класс реализующий обработку события выбора данного пункта меню. Класс должен быть унаследован от CL_GOS_SERVICE. В качестве примера я создам пункт меню, при нажатии на который показывается пользователь, создавший закупочный заказ.

  • Создадим наследуемый от CL_GOS_SERVICE глобальный класс ZCL_PO_USER_CHANGE. (тр. SE24).
  • Логика обработки нажатия на наш элемент в GOS панели обрабатывается в методе EXECUTE. Необходимо переопределить метод, внести туда наш код.

  • Переопределить метод  CHECK_STATUS, для активации сервиса только для объекта BUS2012

  • Для добавления к списку сервисов необходимо внести его через ведение в SM30 таблица SGOSATTR.

  • После создания записи необходимо добавить ссылку на наш сервис в крайнем в очереди сервисе, в моем случае это справка к GOS (Можно вставить и по середине, для этого придется изменить 2 записи):

Если этого не сделать сервис будет не активным. Флаг Управление означает, что при выполнении сервиса будет создан контейнер (параметр IO_CONTAINER в методе EXECUTE).

В конечном итоге для GOS панели объекта BUS2012 (Закупочный заказ, тр. ME23n) мы создали пункт меню который дает нам информацию о пользователе, создавшем заказ.