Создание Workflow для процесса SAP Processes and Forms (FPM)

В одной из недавних заметок, посвященных распространенным ошибкам, которые допускаются при построении потоков операций в функциональности SAP Processes and Forms, я пообещал публикацию заметки про создание Workflow для процесса SAP Processes and Forms (FPM). Отныне, считаю это обещание выполненным.

1. Задача

По уже сложившейся логике формирования своих заметок, вначале я обозначу задачу, которую постараюсь решить к концу описания этой заметки. Итак, для какого-то FPM процесса необходимо создать самый простой поток операций, состоящий из одного шага (утверждения формуляра). В качестве обработчика задачи утверждения формуляра необходимо использовать инициатора потока операций.

Сам FPM формуляр, если его запустить из транзакции HRASR_DT, допустим, выглядит следующим образом

Рисунок 1.

Хотя, по большому счету, нам неважно как именно будет выглядеть этот формуляр.

2. Создание потока операций

2.1 Создание шаблона потока

Используя транзакцию HRASR_DT, откройте свой процесс на редактирование, и затем раскройте узел Workfklow

Рисунок 2.

Кликните по кнопке Create Workflow Template

Рисунок 3.

На следующем экране введите наименование нового шаблона потока операций и его описание

Сохраните выполненные изменения и нажмите на кнопку

2.2 Подключение группы задач для работы с функциональностью Processes and Forms

Данный шаг является опциональным, но иногда оказывается весьма полезным. Явное его предназначение заключается в том, чтобы иметь под рукой список стандартных задач (примеров, если угодно), которые могут быть использованы при работе с процессами и формами в workflow.

Нажмите на кнопку Workflow Container и выберите в меню My Workflows and Tasks

Рисунок 5.

Кликните по строке <New search range>, затем откройте закладку Task Groups и введите идентификатор группы задач TG17900001

Рисунок 6.

2.2 Создание элемента контейнера PROCESS OBJECT

См. Process Object

Переключитесь на ракурс Workflow Container

Рисунок 7.

Кликните по строке <Double-Click to Create>. Заполните поля нового элемента контейнера потока операций по аналогии с тем, что показано на рисунке ниже

Рисунок 8.

2.3 Определение инициирующего события для потока нового потока операций

Нажмите на кнопку , находясь в построителе потоков операций (транзакция SWDD)

Рисунок 9.

На закладке Version-INdependent (Task) определите следующий класс и событие для настройки Start Events

Затем переключитесь на закладку Version-Dependent (Current Workflow Version) и определите класс CL_HRASR00_POBJ_WF_EXIT на вкладке Program Exits

Рисунок 10.

Обратите внимание на то, чтобы интерфейс IF_SWF_IFS_WORKITEM_EXIT был отображен как внедренный (об этом свидетельствует появившийся зеленый индикатор слева).

Активируйте выполненные изменения в потоке операций.

N.B. Проверку, активирована ли связь между вашим потоком операций и событием класса CL_HRASR00_WF_PROCESS_OBJECT, можно выполнить с помощью транзакции SWETYPV

См. заметку Workflow. Бизнес-объекты и события

2.4 Добавление задачи утверждения процесса

Теперь в поток операций необходимо добавить задачу по утверждению процесса. Для этого можно воспользоваться операцией, описанной в пункте # 2.2 Подключение группы задач для работы с функциональностью Processes and Forms А именно, раскрыть список стандартных задач для утверждения процесса, выбрать необходимую, перетащить ее в поток операций, используя механизм Drag & Drop. В моем конкретном случае я буду использовать задачу TS33700022

2.5 Определение дополнительных свойств для задачи утверждения процесса

Для вновь добавленной задачи, на закладке Program Exitsукажите класс CL_HRASR00_POBJ_WF_EXIT

Рисунок 11.

См. Special Features of the Standard Tasks

При работе с задачами потоков операций, особенно стандартными, очень важно обращать внимание на обязательные элементы контейнера, не заполнив которые, есть большой шанс получить ошибки при последующем запуске потока

См. заметку Processes and Forms. Распространенная ошибка при настройке workflow

Найти такие элементы возможно, открыв контейнер задачи на просмотр

Рисунок 12.

В данном конкретном случае, таких элементов два (Form_Scenario_Stage и Form)

Form Scenario View (FORM_SCENARIO_STAGE) - Mandatory

Enter the scenario step that is to be used for the workflow step. You must have already defined the step in the Create Form Scenario Customizing activity (view cluster HRASR00FSCN).

When defining the data flow in the workflow container, you can use a value help (F4) for the FORM_SCENARIO_STAGE field. This allows you to access your Customizing entries. You can use the value help in the Workflow column and, in the subsequent dialog box, the value help for the field in the Temporary Check Results of Table column. If the column is not visible, you can use the Enter Constant function.
Data type (Data Type tab page, ABAP Dictionary Reference field): Structure HRASR00_PROCESS_MODELLING and field FORM_SCENARIO_STAGE

Form (FORM) – Mandatory
This element specifies which form scenario is used when the workflow step is executed. It consists of a structure with the following fields, which you have to define for use with this task:

  • Form Scenario (FORM_SCENARIO) – Mandatory
    Enter the form scenario that is to be used within the workflow step.
  • Form Scenario Version (FORM_SCENARIO_VERSION) – Mandatory
    Enter the version of the form scenario that you want to be used.
  • Do Not Save Directly (SUPPRESS_SAVE) - Mandatory
    You can use this field to override the entries in the SEND_VARIATION element.
    Enter an X if the data is not to be written to the database even if the value A (Save (Do Not Tolerate Errors)) is set in the SEND_VARIATION element.
    Enter nothing if the data is to be saved according to the settings in the SEND_VARIATION element.
    Data type (Data Type tab page in the ABAP Dictionary Data Type field): Type name HRASR00_FORM_KEY_ELEMENT

См. Standard Task TS33700022: Approve Form (Web Dynpro)

Присвойте обязательным элементам контейнера необходимые значения, используя настройку Binding для задачи потока

2.6 Определение обработчика задачи

В качестве агента (обработчика) для добавленной задачи потока операций, определите правило &_WF_INITIATOR&

Рисунок 13.

N.B. Для всех диалоговых задач, которым должен быть присвоен обработчик, необходимо установить свойство General Task. В противном случае, обработчик не будет присвоен для задачи (даже если он найден и определен)

2.7 Завершение настройки потока операций

Возвращаемся на экран транзакции HRASR_DT, и завершаем настройку потока операций, нажатием на кнопку  Generate Event Type Linkage

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

Для тестирования мне понадобится NWBC роль SAP_ASR_HRADMIN_SR_HCM_CI_4 с помощью которой я буду открывать присвоенную обработчику задачу потока операций. Запуск же процесса будет выполнен посредством транзакции HRASR_DT.

3.1 Запуск процесса и потока операций

Запуск потока операций, как сказано выше, выполняется посредством опции тестирования процесса, через транзакцию HRASR_DT

3.2 Просмотр сформировавшегося потока и открытие задачи

Просмотр сформированного потока операций я выполню с помощью транзакции SWWL_TOPLEVEL

Открытие задачи и процесса произойдет посредством транзакции NWBC

Процесс, сформированный из потока операций, успешно открыт, а задача, поставленная в начале заметки, успешно решена.

Read more