Запуск потока операций из ABAP программы
Постановка вопроса
В одной из прошлых заметок, посвященных теме потоков операций, я предложил свое видение материала, связанного с бизнес-объектами и событиями. Эти сущности применяются в ситуациях, когда консультанту требуется ответить на вопрос: "в результате чего должен стартовать какой-либо поток операций"?
См. заметку Workflow. Бизнес-объекты и события
Нередки ситуации, когда поток операций требуется запустить из ABAP программы. В этой заметке речь пойдет как раз о таких ситуациях.
Решение вопроса
В системе присутствует довольно большое количество стандартных функциональных методов, посредством которых можно работать с потоками операций непосредственно из ABAP программы. Выполнить их поиск можно по маске SAP_WAPI* в транзакции SE37
Основной ФМ, на который следует обратить внимание, имеет техническое наименование SAP_WAPI_START_WORKFLOW. Используя его, вы можете запустить поток операций, а также передать какие-то значения в контейнер потока операций (параметр input_container).
В качестве примера рассмотрю программу, после запуска которой, будет выполнен старт потока с идентификатором WS77300061
Результат ее работы представлен на видеофрагменте ниже
Помимо прямого запуска потока операций, следует помнить о событиях, которые также могут стать триггером для его (потока) запуска. Сгенерировать событие из ABAP программы также не является проблемой. В этом может ФМ SAP_WAPI_CREATE_EVENT
Перед тем как запустить этот ФМ следует убедиться, что для вашего потока операций определены начальные события.
См. Using Events
В качестве иллюстрации предлагаю рассмотреть работу потока операций, для начального события которого будет определено событие HIRED бизнес-объекта EMPLOYEET. Поток операций WS77300061 будет скопирован в новый.
Проверяем транзакцию SWETYPV
Теперь опять в ABAP. Например,
Результат
Весна уже очень скоро. Спасибо за ваше время. Обнимаю.