Возвращение сформированного ASR процесса на доработку инициатору в Workflow

Продолжаю серию заметок, относящихся к настройке потоков операций, работая с функциональностью Processes and Forms. В заметке Создание Workflow для процесса SAP Processes and Forms (FPM) я описал последовательность действий, которую необходимо выполнить функциональному консультанту, выполняющего настройку потока операций для ASR процесса. В результате, был создан самый простой поток операций, который только можно придумать, состоящий из одного шага утверждения, выполняемого посредством стандартной задачи TS33700022: Approve Form (Web Dynpro). Теперь я предлагаю добавить в этот поток немного "интерактивности", если позволите. А именно, добавить условие, "был ли утвержден процесс". Если процесс не был утвержден, то направить форму на доработку инициатору.

Задачи для обработки/утверждения процесса

SAP предоставляет два типа задач для обработки/утверждения процесса. О некоторых из них уже шла речь в каких-то из моих заметок:

В чем отличие между двумя этими задачами? Обратимся к их описанию, подготовленное вендором:

Standard Task TS33700021: Process Form (Web Dynpro)
You can use this standard task to create a workflow step to enable users to edit a form of type FPM Form in a PA process, for example, a workflow step to create or correct data. Executing a work item calls up a form application in which users can edit the form of a form scenario in the portal. You can additionally define the following:

  • Provide functions such as Save Draft or Forward to Expert. They are optional elements that you can have in the form application.
  • Specify where data is to be saved. You can decide whether the data is to be saved directly to the database of the back-end system (to update infotypes, for example) as well as in the process object.

Standard Task TS33700022: Approve Form (Web Dynpro)
You use this standard task to send a form of type FPM Form to a user for approval. The approver can execute the following functions in the relevant form application:

  • Approve or reject the content of the form. The approver cannot change the content of the form.
  • Return the form to the process initiator (optional)
  • Save a draft (optional)

Резюмируем: с помощью задачи TS33700021 вы можете предоставить согласующему пользователю внести изменения в форму, и отправить ее на дальнейшее согласование. С помощью задачи TS33700022 вы предоставляете пользователю возможность согласования/утверждения формы, без возможности изменения ее содержимого.

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

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

TS33700021

A workflow step for editing a form can be completed with the processing status PROCESSED or BACK.

  • If the work item is completed with the PROCESSED status, the next workflow step should be carried out by an HR administrator.
  • If the work item is completed with the BACK status, the next workflow step should be carried out by the person who initiated the process.
    You model the following workflow steps depending on the processing status.

TS33700022

The processing status can have the following values:

  • APPROVED
    This value is set when the user has chosen the Approve function. ○
  • REJECTED
    This value is set when the user has chosen the Reject function.
  • BACK
    This value is set when the user has chosen the Back to Author function.

Внесение изменений в поток операций

В потоке операций, который описан в заметке Создание Workflow для процесса SAP Processes and Forms (FPM), я использовал задачу TS33700022. Так как она предназначена для финального утверждения формы, я поменяю ее на задачу TS33700021, чтобы у пользователя была возможность внесения корректировок в форму.

Далее, в потоке операций необходимо добавить условие, о котором шла речь выше: была ли форма согласована пользователем? Если пользователь ее не согласовал - форму необходимо вернуть на доработку, используя задачу TS33700023

Что было выполнено?

  • В поток операций добавлена задача TS33700021
  • В поток операций добавлен элемент типа Loop (Цикл), с помощью которого выполняется отслеживание значения элемента потока PROCSTATE. Если оно равно PROCESSED - форма утверждена, и поток завершается, иначе - форма возвращается на доработку инициатору. Цикл будет работать до тех пор, пока пользователь не согласует форму (то есть не поменяется значение элемента PROCSTATE)
  • Для случая, когда форма отправляется на доработку, добавлена задача TS33700023
  • В задаче TS33700021 элементу **&BACK_BUTTON_VISIBLE& **было присвоено значение X, чтобы пользователю стала доступна кнопка возврата формы на доработку

Back to Author button (BACK_BUTTON_VISIBLE) – Optional

You use this element to specify whether a button is provided to the user to return a form to the initiator of a process.

См. описание Standard Task TS33700021: Process Form (Web Dynpro)

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

Рисунок 1.

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

Запустите свою форму, например, используя транзакцию HRASR_DT

Сначала я не согласую сформированную форму

Проверю, какое значение было присвоено элементу контейнера потока операций PROCSTATE

Как видите, значение элемента контейнера PROCSTATE равно BACK. Так как в условии цикла проверяется значение PROCESSED, поток операций был перенаправлен на инициатора потока.

Теперь я согласую форму и проверю, какое значение присвоено элементу PROCSTATE

После утверждения формы, элементу PROCSTATE присвоено значение PROCESSED, что в нашем конкретном случае означает завершение потока операций (исходя логики его построения).

Read more