Перейти к содержанию

Назначение значения полю процессной задачи

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

В данном примере будут использованы функции IF, OR и SUBTRACT.

Чтобы создать правило:

1. Выберите рабочую область, выберите приложение.

2. Нажмите кнопку Поля.

3. Создайте поле Дата выполнения (идентификатор: Due_Date) типа Дата/Время.

4. Создайте поле Оставшееся время типа Длительность. Данное поле будет отображать время, оставшееся до крайнего срока выполнения работы, в зависимости от статуса процессной задачи.

Перейдите в атрибуты поля Оставшееся время и установите флажок Вычисляемое. Вкладка Выражение поля станет доступна для работы.

5. Для создания правила узнайте идентификаторы необходимых полей и статусов рабочего процесса. Например:

  • workflowState — идентификатор системного поля пользовательской процессной задачи. Данное поле отображает текущий статус процессной задачи.
  • wfstate.approvedImplementation, wfstate.ReviewbyManager - идентификаторы статусов рабочего процесса Выполнение и Проверка. Вы можете подставить в выражение идентификаторы ваших полей и статусов рабочего процесса.

6. Добавьте следующее выражение в редакторе:

 

IF

(

OR

(

$workflowState == ID(""wfstate.approvedImplementation""), $workflowState == ID(""wfstate.ReviewbyManager"")

),

SUBTRACT($Due_Date, $$now),

DURATION(""PT600S"")

)

7. Нажмите Сохранить.

8. Перейдите в раздел Форма и поместите созданные поля на форму процессной задачи. Сохраните изменения.

Для проверки работоспособности правила создайте новую пользовательскую процессную задачу и переместите ее по рабочему процессу. Когда процессная задача будет находиться в статусе Выполнение или Проверка, поле Оставшееся время будет отображать разность между сроком выполнения и текущим временем сервера. В противном случае полю будет присвоена константа (10 минут в нашем примере) в целях проверки работоспособности выражения.