Простая обработка событий процесса

Материал из BiTel WiKi

(Различия между версиями)
Перейти к: навигация, поиск
Администратор (Обсуждение | вклад)
(Новая страница: «Разрешение на правку процесса в различных статусах различным группам, исполнителю либо а…»)
Следующая правка →

Версия 21:19, 28 февраля 2016

Разрешение на правку процесса в различных статусах различным группам, исполнителю либо администратору и запрет правки закрытого процесса.

onProcessEvent.1.checkExpression=process.getStatusId() !~ [9, 13, 36,39] or 8 =~ user.getGroupIds()
onProcessEvent.1.checkErrorMessage=В этом статусе разрешена правка только сотрудникам КС
onProcessEvent.2.checkExpression=process.getStatusId() != 9 or user.getId()  =~ process.getExecutorIds() or 33 =~ user.getPermsetIds()
onProcessEvent.2.checkErrorMessage=В этом статусе разрешена правка только исполнителем процесса либо администратором КС
onProcessEvent.3.checkExpression=empty process.getCloseTime()
onProcessEvent.3.checkErrorMessage=Запрещена правка закрытого процесса

Добавление текущего пользователя в исполнители и установка в статус с кодом 40, если процесс создан как привязанный к другому процессу.

onProcessEvent.1.events=createdAsLink
onProcessEvent.1.commands=addExecutors:{@ctxUserId};setStatus:40

Изменение статуса процесса на 3 при получении в него нового сообщения. При привязке договора - копирование значений параметров с кодами 27 и 12 в описание процесса.

onProcessEvent.1.events=messageAdded
onProcessEvent.1.ifExpression=process.getStatusId() != 3
onProcessEvent.1.commands=setStatus:3
#
onProcessEvent.2.events=linkAdded
onProcessEvent.2.commands=bgbilling:linkedContractParamToDescription:bg:27;bgbilling:linkedContractParamToDescription:bg:12

Отправка EMail по появлению нового сообщения в процессе.

onProcessEvent.1.events=messageAdded
onProcessEvent.1.commands=emailNotifyExecutors:21:Новые сообщения в процессе

Команда может быть предварена префиксом, изменяющим изменяемый процесс.

linkedProcess:<typeId> - процесс с типом <typeId>, к которому привязан данный процесс, пример:
#
# закрытие БП, если закрыты три процесса "Контроль возврата", "Изготовение бух. акт", "Знакомстов с аккаунт менеджером"
onProcessEvent.{@inc:cnt}.events=statusChanged:3
onProcessEvent.{@cnt}.ifExpression=processLink.getStatusProcessLinkedForSame( 6, 30 ) == 3 && processLink.getStatusProcessLinkedForSame( 6, 31 ) == 3 && processLink.getStatusProcessLinkedForSame( 6, 32 ) == 3
onProcessEvent.{@cnt}.commands=linkedProcess:6:setStatus:3
Личные инструменты