Userexits (Пользовательские подпрограммы)

2298

Продолжение цикла статей "Техники расширений стандартной системы SAP".

Все статьи цикла приведены внизу публикации.

Предыдущая статья >>

Рассматриваемая техника пользовательских расширений, на мой взгляд, является сильно устаревшей, так как для этого типа расширения система требует получение ключа разработчика, на модуль находящийся в пространстве имен SAP при этом в этом модуле реализованы подпрограммы, в которые требуется добавить пользовательский код. Наименования подпрограмм и комментарии к заголовку подпрограмм, довольно прозрачно определяют их назначение, например:

*---------------------------------------------------------------------*
*       FORM USEREXIT_DELETE_DOCUMENT                                 *
*---------------------------------------------------------------------*
*       This userexit can be used to delete data in additional tables *
*       when a sales document is deleted.                             *
*                                                                     *
*      This form is called in dialog at the end of form BELEG_LOESCHEN*
*      just before form BELEG_SICHERN is performed to delete the      *
*      datas on the database.                                         *
*                                                                     *
*---------------------------------------------------------------------*
form userexit_delete_document.

endform.

Так как такие подпрограммы выполняются в рамках контекста основной системной программы, то требуется очень аккуратно обрабатывать доступные глобальные переменные основной программы. Данная техника достаточно активно применяется в функциональности SD и части оперативной логистики – входящие/исходящие поставки, хотя в настоящий момент видно, что компания SAP, активно заменяет такие вызовы, на использование технологий BADI, например, в данном случае вышеописанная подпрограмма заменяется методом BADI_SD_SALES-DELETE_DOCUMENT – Replacement for User Exit DELETE_DOCUMENT. Таким образом, использование данной техники Userexits практически теряет смысл. Она оставлена как я понимаю, только из соображений обратной совместимости с уже работающими расширениями. Данный раздел будет самым коротким, так как особых нюансов в данной технике нет, к тому же я не рекомендую использовать ее в новых версиях систем.

В функциональности сбыта, данные расширения собраны в модулях, типа:

  • MV45AFZZ – Обработка документов сбытовой заказ
  • MV45AFZA – Условия в документе сбытового заказа
  • MV45AFZB – Обработка позиции документа сбытового заказа
  • И т.д.

Полный перечень этих расширений можно найти по ссылке (справочный центр по продуктам SAP):

http://help.sap.com/saphelp_46c/helpdata/en/1c/f62c7dd435d1118b3f0060b03ca329/frameset.htm

Расширения этого типа можно определить также из настройки системы, транзакция SPRO, в соответствующих разделах, например настройка функциональности SD, все расширения сгруппированы в отдельной ветке настройки, Рис.1 .

Рис. 1: use-03

Для использования любого из расширений вы должны получить ключ разработчика на соответствующий модуль, например, MV45AFZZ; для этого в транзакции SE38 переходим в режим редактирования. Если никто не модифицировал объект до вас, то появится окно с запросом ключа доступа для объекта, Рис.2.

Рис. 2: use-01

Выпишите или скопируйте полный ключ объекта, в данном случае это: R3TR PROG MV45AFZZ. Затем перейдите на сайт www.service.sap.com, если у вас есть доступ, т.е. вы - активный и зарегистрированный

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

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

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

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