В системе SAP присутствует возможность запуска фоновых заданий посредством инициации события. Эти события должны быть предварительно настроены, и в последующем могут быть использованы для вызова, например, из ABAP программы. Ниже я разберу небольшой пример, демонстрирующий такую возможность.

0. Мат часть

См. Events in Background Processing Explained

1. Задача

Выполнить запуск фонового задания посредством инициации события. Инициировать событие необходимо через ABAP программу.

2. Исходные данные

Для демонстрации в этой заметке в фоновом режиме я буду запускать отчет, доступный для работы из транзакции S_PH0_48000450. Для него же настроен вариант запуска.

См. Monitoring of Tasks (Infotype 0019)

3. Создание события

Создание нового события выполняется посредством работы с транзакцией SM62

4. Планирование фонового задания

На следующем видеофрагменте представлена последовательность действий, в результате которой будет запланировано фоновое задание, ожидающее наступление предварительно настроенного события (См. описание шага #3)

5. Запуск события из ABAP программы

Для того, чтобы выполнить запуск события я создам программу, где будет осуществлен вызов функционального модуля BP_EVENT_RAISE

См. BP_EVENT_RAISE: Trigger an Event from an ABAP Program

Запускаю программу, предварительно проверив, что в транзакции SM37 под моим пользователем не запланировано никаких программ

Обратите свое внимание на то, что если при планировании фонового задания вы не активируете параметр Periodic Job

Фоновое задание будет выполнено только один раз. И вот яркое тому доказательство

6. Программа BTC_EVENT_RAISE

Инициировать созданное событие можно также через стандартную программу BTC_EVENT_RAISE. Об этом небольшой видеоряд ниже

7. Логирование вызова событий

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

Пробуем

Если в этом нет необходимости, лог можно деактивировать.

Спасибо за внимание. Обнимаю вас по-новогоднему. С любовью, ignatov