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

См. заметку Workflow. Отправка электронных писем

На этот раз речь пойдет о закладке Program Exits, доступной при работе с задачей непосредственно из построителя потоков операций (транзакция SWDD)

См. Tab Page Programming Exits

You can enter programming exits on this tab page. A programming exit is an ABAP class that the system executes at a specific time during the processing of a workflow. Programming exits enable you to implement your own enhancements and adaptations.

Чтобы начать работать с этим функционалом workflow, необходимо создать реализующий класс, поддерживающий интерфейс IF_SWF_IFS_WORKITEM_EXIT

См. Tab Page Programming Exits

Features

ABAP classes that you specify here as programming exits must implement the interface IF_SWF_IFS_WORKITEM_EXIT. The system executes the classes in the specified order.

The method EVENT_RAISED is executed from every ABAP class as soon as the relevant work item performs a status change defined in the interface.

Необходимо обратить внимание на то, что реализующий класс может отлавливать различные состояния диалоговой задачи (см. входящий параметр IM_EVENT_NAME)

Рассмотрю небольшой пример.

Подготовка потока операций

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

Реализующий класс

Для демонстрации в этой заметке исходный код класса будет выглядеть следующим образом

Добавлю созданный класс на закладке Program Exits диалоговой задачи нового потока

Тестирование