Автор Тема: BTE - Business Transaction Events (Описание и реализация)  (Прочитано 8748 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 762
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
BTE – Бизнес события транзакций, данный вид расширения стал доступен с версии 4.0 и и является специальной реализацией, точкой  выхода в стандартной программе, для реализации дополнительных пользовательских проверок или обновления пользовательских данных. Техника BTE, как правило, реализована в функциональности главной книги FI-GL, учете дебиторской и кредиторской задолженности (FI-AR и FI-AP) и модуле сбыта (SD).

BTE фактически состоит из предопределенных интерфейсов и позволяет вызвать дополнительную функциональность в виде реализации функциональных модулей. Для реализации бизнес расширения, вы должны создать модуль с предопределенными параметрами и именами. Фактически система SAP вызывает функциональные модули OPEN_FI_PERFORM_* или OUTBOUND_CALL_*, которые в свою очередь проверяют, есть ли активные BTE события из настройки системы.

BTE – существует двух типов:
  • Publish & Subscribe interfaces (P/S Modules) – в данном типе BTE нельзя обновлять данные  в БД, так же может существовать несколько активных инстанций, вызываемых последовательно.
  • Process interfaces (Process Modules) – данный тип BTE позволяет выполнять обновление данных в БД. Ограничением является то, что активной может быть одна инстанция данного типа.

Для определения существующих в коде стандартных программ, BTE-реализаций, можно пойти по следящим путям:
  • Поиск в коде текстов: "OPEN_FI_PERFORM" для первого типа BTE или "OUTBOUND_CALL_", для поиска второго типа BTE.
  • Использовать транзакцию FIBF и далее по меню: «Параметры настройки» – «P/S Модули» или «Модули процессов», для соответствующих типов BTE. Рисунок 1: BTE-1.png.


Для каждого типа BTE существует три вариант, это стандартные события системы SAP-приложения, изменять которые не рекомендуется, так как это сфера ответственности разработчиков компании SAP. Далее идут события партнеров, аналогично среднестатистический разработчик вряд ли является партнером, так что для обычных клиентов и пользователей системы остается только последний пункт «..клиента», ввыбрав который, мы можем приступить к реализации собственных BTE-расширений. Для получения информации по существующим событиями в данной транзакции перейдите по меню «Среда» – «Инфо-система P/S» или «Инфо-система (процессы)». После чего получите список всех доступных событий каждого типа, рисунок 2: BTE-2.png

Для получения шаблона реализации функционального модуля, можно скопировать его из окна справки или же нажать кнопку там же на панели инструментов кнопку "Функц. модуль-образец" , по нажатию которой будет вызвана транзакция SE37 – создание функционального модуля, а в поле ввода имени функции будет сразу подставлен шаблон функции для реализации, рисунок 3: BTE-4.png. Данное событие позволяет активировать проверку заполнения поля BSEG-XREF3.

Вы должны скопировать данный шаблон в собственный функциональный модуль начинающийся с Z_ или Y_, например модуль SAMPLE_INTERFACE_00001012 можно скопировать в модуль Z_SAMPLE_INTERFACE_00001012, рисунок 4: BTE-5.png, в собственной группе функцій, например  Z_BFFMSMPL2.

В данном случае после копирования мы получим шаблон модуля с входными и выходными параметрами, где можем написать собственную реализацию, пример кода ниже:
Код: You are not allowed to view links. Register or Login
FUNCTION z_sample_interface_00001012.
*"--------------------------------------------------------------------
*"*"Локальный интерфейс:
*"  IMPORTING
*"     VALUE(I_BSEG) LIKE  BSEG STRUCTURE  BSEG
*"     VALUE(I_BKPF) LIKE  BKPF STRUCTURE  BKPF
*"     VALUE(I_AKTYP) LIKE  T020-AKTYP
*"     VALUE(I_OKCODE) LIKE  OFIWA-OKCOD
*"  EXPORTING
*"     REFERENCE(E_XCHNG) LIKE  OFIWA-XCHNG
*"--------------------------------------------------------------------
  BREAK-POINT.

ENDFUNCTION.
Пока реализацию разрабатывать не будем, а поставим только команду остановки, и перейдем к активации вызова нашей функции. Для этого в транзакции FIBF переедем по меню: «Параметры настройки» – «Продукты» – «…клиента», рисунок 5: BTE-6.png.

Вполне возможно, что в таблице уже будут активные продукты. Если не знаем что это за продукты, то не трогаем, просто создаем новый собственный тип продукта и ставим галку активации. Для этого нажимаем кнопку «Новые записи», рисунок 6: BTE-7.png

После чего сохраняем собственный продукт и переходим к связыванию продукта с функциональным модулем созданным ранее. Так как это был модуль обновления данных, то идем по пути: «Параметры настройки» – «P/S Модули» – «…клиента», где добавляем модуль, созданный ранее с нашим типом продукта, рисунок 7: BTE-8.png, после чего, сохраняем данные ввода.

Теперь наш модуль будет вызываться системой для проверки значения находящегося в поле BSEG-XREF3.

Примечание: Особенно часто используемый тип событий это событие: 00001120 – ПРОВОДКА ДОКУМЕНТА: замещение полей в загол./строк (инфо-система процессов), где можно изменять поля документа FI как в заголовке, так и позициях.
« Последнее редактирование: Январь 14, 2013, 01:37:02 am от Uukrul »

Оффлайн Uukrul

  • SAP ECC 6.0 Ehp(*)
  • Administrator
  • Epic Member
  • *****
  • Сообщений: 3 762
  • Репутация: +47/-0
  • Пол: Мужской
  • YearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYearsYears
    • Sapforum.BIZ
BTE - Business Transaction Events (PDF-файл)
« Ответ #1 : Январь 14, 2013, 01:40:25 am »
Традиционно, все одним PDF-файлом, условия такие же как обычно, т.е. синхронизация данных форума и файла не обязательна.