Управление завершением потока операций
Управление завершением потока операций.
В этой заметке я предлагаю вам рассмотреть несколько вариантов того, как можно завершить поток операций. Под завершением я понимаю изменение его статуса. В частности, будет рассмотрен вариант изменения статуса запущенного потока операций по какому-то условию, а также вариант отмены потока операций посредством запуска функционального модуля. Давайте рассмотрим эти варианты.
Вариант 1. Завершение потока операций по какому-то условию
Рисуя и проектируя свой поток с помощью транзакции SWDD, вполне может получиться так, что вам потребуется отменить или завершить поток операций по какому-то условию. Под условием я имею ввиду, к примеру, отслеживание значения элемента потока операций, проанализировав которое, вы можете определить, завершить/отменить поток операций или нет.
Для демонстрации этого варианта, я создам в своем демонстрационном потоке элемент контейнера с наименованием CANCEL_WF
Чтобы отследить значение элемента в поток необходимо добавить условие (шаг типа Condition)
Что было сделано? В поток операций было добавлено условие на определение значения элемента контейнера. Далее необходимо добавить шаг завершения потока операций, в зависимости от принятого значения элемента CANCEL_WF. В моем случае, если значение равно "X" я буду отменять поток, иначе - продолжать. Добавьте в поток элемент типа Process Control
Обратите внимание на функции управления потоком операций, которые доступны при добавлении шага типа Process Control
К каждому из этих пунктов вы найдете справочное описание по нажатию на клавишу F1
В моем примере, у потока операций будет изменяться статус на "Cancelled". Проверяю (прошу прощения за такую длинную GIF-ку)
Поток операций завершился со статусом "Cancelled". Теперь я меняю значение элемента контейнера CANCEL_WF и повторно выполняю тестирование (условие, добавленное выше, не должно быть задействовано)
Что и получается на выходе.
Вариант 2. Завершение потока операций посредством ФМ SWP_WORKFLOW_ITEM_CANCEL
Вариант второй несколько проще первого. Его стоит иметь в виду, например, если вы хотите отменить запущенный поток операций в какой-нибудь ABAP программе. Запустите функциональный модуль SWP_WORKFLOW_ITEM_CANCEL, передав ему на вход параметр WI_ID, принимающий значение запущенного потока операций
В результате запуска этого ФМ, статус потока операций будет изменен на CANCELLED