Действия
Действие запускается, когда при наступлении определённого события срабатывает Триггер.
Список действий
Действие | Описание |
---|---|
SetAccessLevel | Повышает права доступа на элемент для заданных должностей, если действующие права доступа для данных должностей ниже требуемых. |
CopySignatureRequestFromPreviousVersion | Копирует запросы на подпись с предыдущей версии элемента. |
AddVirtualSignatureRequests | Добавляет виртуальные запросы на подпись. Работает на стороне клиента. |
DeleteVirtualSignatureRequests | Удаляет виртуальные запросы на подпись. Работает на стороне клиента. |
ReplaceVirtualSignatureRequest | Заменяет виртуальные запросы на подпись. Работает на стороне клиента. |
SetDateTimeAttributeValue | Присваивает атрибуту, заданному параметром attributeName, значение текущей даты/времени, смещённое на указанное количество дней. Количество дней определяется атрибутом, заданным в параметре offsetAttributeName. |
SetSystemStateValue | Изменяет системное состояние объекта. |
SetStateAttributeValue | Изменяет значение атрибута типа Состояние. |
SetSignatureRequestRelatedObjectStateAttribute | По указанным правилам меняет состояния заданий, связанных с неподписанными запросами на подпись. |
SetStateAttributeValueIfNotSigned |
Изменяет значение атрибута типа Состояние, если документ не подписан.
Используется для сценария, в котором при добавлении вложений в задание на согласование задание перевыдается, если требуются подписи по новому документу. |
SetStateAttributeValueIfSigned |
Изменяет значение атрибута типа Состояние, если документ подписан.
Используется для завершения задания при подписании документа. |
SetStateAttributeValueIfDepartment |
Изменяет значение атрибута типа Состояние, при выдаче задания на подразделение. Устанавливает состояние Не назначен исполнитель при выдаче задания на подразделение. |
SetOrgUnitAttributeValue | Присваивает заданному атрибуту типа Организационная единица значение идентификатора текущего пользователя или очищает значение атрибута. Даёт возможность скопировать значения из одного атрибута в другой. Скопированные значения добавляются к существующим. |
ClearAttributeValue | Очищает значение заданного атрибута. |
SetOrgUnitAttributeValueBasedOnState |
Сравнивает значение атрибута, имя которого указано в attributeName, с параметрами конфигурационного списка, определёнными в stateToOrgUnitConfig. При выявлении совпадения, список соответствующего параметра записывается в targetAttributeName. |
ManageTaskAndWorkflowState |
Управляет переходами состояний заданий и процессов. |
SendNotifications | Отправляет уведомление с заданным текстом и списком получателей |
CleanDocumentSignaturesAndRequests | Очищает не привязанные к заданиям запросы на подпись. |
RecalculateWorkflowStates | Пересчитывает состояние процесса. Используется для отката хода процесса к первому этапу при изменении вложения. |
SendEmail | Рассылает электронное письмо по списку адресов. |
Cписок действий системы Pilot-ICE может быть расширен с помощью SDK. |
SetAccessLevel
Действие SetAccessLevel повышает права доступа на элемент для заданных должностей, если действующие права доступа для данных должностей ниже требуемых. Действие не сработает, если эффективные права доступа достаточны.
При расчёте эффективных прав доступа, не учитываются права, назначенные на группы пользователей, так как при замене пользователя на должности они могут быть утеряны. |
Пример реализации действия
{
"activity": "SetAccessLevel",
"params": {
"sourceTypes": ["task_approval"],
"target": "Relations",
"relationType": "TaskAttachments",
"accessLevel": "View,Edit,Agreement",
"inheritable": false,
"orgUnitAttributeNames": ["executor"]
}
}
Параметры действия
CopySignatureRequestFromPreviousVersion
Действие CopySignatureRequestFromPreviousVersion копирует запросы на подпись с предыдущей версии элемента.
Пример реализации действия
{
"activity": "CopySignatureRequestFromPreviousVersion",
"params": {
"sourceTypes": ["document"],
"isVirtual": true
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
isVirtual |
да |
Определяет, является ли запрос на подпись виртуальным. |
true или false |
forbidAllSignedCopy |
нет |
Запрещает копирование запросов, если все они подписаны |
При значении true: Если все запросы на документе подписаны, копироваться они не будут. Если хотя бы один не подписан, копируются все. При значении false: Нет запрета на копирование запросов. |
AddVirtualSignatureRequests
Действие AddVirtualSignatureRequests создаёт виртуальные запросы на подпись. Действие происходит на стороне клиента.
Пример реализации действия
{
"activity": "AddVirtualSignatureRequests",
"params": {
"sourceTypes": ["task_approval"],
"target": "Relations",
"relationType": "TaskAttachments",
"orgUnitAttributeNames": ["executor"],
"signingRoleAttributeName": "signingRole",
"targetTypes": ["Document"]
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
signingRoleAttributeName |
нет |
Определяет имя атрибута, содержащего значения для выбора подписывающей роли. |
Имя атрибута типа строка, который содержит список ролей, заданный в Доп.параметрах |
targetTypes |
да |
Определяет, типы элементов, на которые будут добавлены запросы на подпись. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
orgUnitAttributeNames |
да |
Определяет тех пользователей, у которых будет запрошена подпись. |
Список имён атрибутов типа Организационная единица |
DeleteVirtualSignatureRequests
Действие DeleteVirtualSignatureRequests удаляет виртуальные запросы на подпись. Действие происходит на стороне клиента.
Пример реализации действия
{
"activity": "DeleteVirtualSignatureRequests",
"params": {
"sourceTypes": ["task_approval"],
"target": "Relations",
"relationType": "TaskAttachments",
"orgUnitAttributeNames": ["executor"],
"targetTypes": ["document"]
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
targetTypes |
да |
Определяет, типы элементов, у которых будут добавлены запросы на подпись. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
orgUnitAttributeNames |
да |
Определяет список пользователей, для которых будет удалён виртуальный запрос на подпись |
Список имён атрибутов типа Организационная единица |
ReplaceVirtualSignatureRequest
Действие ReplaceVirtualSignatureRequest заменяет виртуальные запросы на подпись. Действие происходит на стороне клиента.
Пример реализации действия
При замене исполнителя автоматически заменяются виртуальные запросы на подпись.
{
"activity": "ReplaceVirtualSignatureRequest",
"params": {
"sourceTypes": [],
"target": "Relations",
"relationType": "TaskAttachments",
"orgUnitAttributeNames": ["executor"],
"signingRoleAttributeName": "signingRole",
"targetTypes": []
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
signingRoleAttributeName |
нет |
Определяет имя атрибута, содержащего значения для выбора подписывающей роли. |
Имя атрибута типа строка, который содержит список ролей, заданный в Доп.параметрах |
targetTypes |
да |
Определяет, типы элементов, на которые будут добавлены запросы на подпись. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
orgUnitAttributeNames |
да |
Определяет тех пользователей, у которых будет запрошена подпись. |
Список имён атрибутов типа Организационная единица |
SetDateTimeAttributeValue
Присваивает атрибуту, заданному параметром attributeName, значение текущей даты/времени, смещённое на указанное количество дней. Количество дней определяется атрибутом, заданным в параметре offsetAttributeName.
Примеры реализации действия
Пример 1
Действие присвоит атрибуту Дата выдачи (dateOfAssignment) значение текущей даты/времени. На практике используется для сценария, когда срок выполнения начинает отсчитываться заново после изменения задания.
{
"activity": "SetDateTimeAttributeValue",
"params": {
"sourceTypes": [],
"attributeName": "dateOfAssignment",
"target": "Self",
"attributeValue": "Now",
"offsetAttributeName": ""
}
}
Пример 2
Действие присвоит атрибуту Срок до (deadlineDate) значение текущей даты/времени, смещённой на значение атрибута Относительный срок выполнения задачи в днях (relativeDeadlineDays).
{
"activity": "SetDateTimeAttributeValue",
"params": {
"sourceTypes": ["task_approval"],
"target": "Self",
"attributeName": "deadlineDate",
"offsetAttributeName": "relativeDeadlineDays"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. | Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. | Self или Relations |
relationType |
да |
Определяет тип связи, на который будет направлено действие в случае, если "target": "Relations". |
{ SourceFiles, Custom, TaskAttachments, } |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если "target": "Relations" |
{ Removed, Added, } |
attributeName |
да |
Определяет имя атрибута, которому будет присвоено значение. |
Имя атрибута типа Дата и время, например deadlineDate |
offsetAttributeName |
нет |
Задает имя атрибута, в котором хранится количество дней, на которое нужно сдвинуть дату. Если offsetAttributeName отстутствует в скрипте, то атрибуту будут присвоены текущие дата и время в UTC. |
Например: Now — атрибут со значением текущих даты и времени в UTC. relativeDeadlineDays — атрибут Относительный срок выполнения задачи в днях (длительность задания) из базовой конфигурации. |
SetSystemStateValue
Действие SetSystemStateValue изменяет системное состояние объекта.
Пример реализации действия
{
"activity": "SetSystemStateValue",
"params": {
"sourceTypes": ["task_approval"],
"target": "Relations",
"relationType": "TaskAttachments",
"oldStates": ["Alive"],
"newState": "Frozen"
}
},
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
oldStates |
да |
Определяет имена системных состояний, из которых может осуществляться переход |
Список имён системных состояний { |
newState |
да |
Определяет имя системного состояния, в которое будет осуществляться переход |
Одно из имён списка системных состояний { |
SetStateAttributeValue
Действие SetStateAttributeValue изменяет значение атрибута типа Состояние.
Пример реализации действия
{
"activity": "SetStateAttributeValue",
"params": {
"sourceTypes": [],
"attributeName": "state",
"target": "Relations",
"relationType": "TaskAttachments",
"targetTypes": "task_simple",
"initialStateNames": ["assigned"],
"toStateName": "inProgress"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
targetTypes |
да |
Определяет, типы элементов, на которые будут добавлены запросы на подпись. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
initialStateNames |
да |
Определяет состояния, которые будут изменены действием |
Список имён состояний. |
toStateName |
да |
Определяет, на какое состояние будет изменено исходное состояние. |
Одно имя из списка состояний. |
SetSignatureRequestRelatedObjectStateAttribute
По указанным правилам действие SetSignatureRequestRelatedObjectStateAttribute меняет состояния заданий, связанных с неподписанными запросами на подпись.
Пример реализации действия
{
"activity": "SetSignatureRequestRelatedObjectStateAttribute",
"params": {
"attributeName": "state"
"initialStateNames": ["assigned"],
"toStateName": "inProgress"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
initialStateNames |
да |
Определяет состояния, которые будут изменены действием |
Список имён состояний. |
toStateName |
да |
Определяет, на какое состояние будет изменено исходное состояние. |
Одно имя из списка состояний. |
SetStateAttributeValueIfNotSigned
Действие SetStateAttributeValueIfNotSigned изменяет значение атрибута типа Состояние, если документ не подписан.
Пример реализации действия
Задание на согласование перевыдается, если требуются подписи по новому документу
{
"activity": "SetStateAttributeValueIfNotSigned",
"params": {
"sourceTypes:": [],
"attributeName": "state",
"initialStateNames": [
"inProgress",
"approved",
"onValidation",
"notApproved",
"done"
],
"toStateName": "assigned",
"target": "Relations",
"relationType": "TaskAttachments",
"targetTypes": [
"task_approval"
],
"relationFilterByChangeKind": "Added"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
targetTypes |
да |
Определяет, типы элементов, на которые будут добавлены запросы на подпись. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
initialStateNames |
да |
Определяет состояния, которые будут изменены действием |
Список имён состояний. |
toStateName |
да |
Определяет, на какое состояние будет изменено исходное состояние. |
Одно имя из списка состояний. |
SetStateAttributeValueIfSigned
Специальное действие SetStateAttributeValueIfSigned завершает задание при подписании документа.
Пример реализации действия
{
"activity": "SetStateAttributeValueIfSigned",
"params": {
"sourceTypes": ["document"],
"attributeName": "state",
"target": "Relations",
"relationType": "TaskAttachments",
"targetTypes": "task_approval",
"fromStateName": "assigned",
"toStateName": "inProgress"
}
}
{
"activity": "SetStateAttributeValueIfSigned",
"params": {
"sourceTypes": ["document"],
"attributeName": "state",
"target": "Relations",
"relationType": "TaskAttachments",
"targetTypes": "task_approval",
"fromStateName": "inProgress",
"toStateName": "approved"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
targetTypes |
да |
Определяет, типы элементов, на которые будут добавлены запросы на подпись. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
fromStateName |
да |
Определяет состояние, которое будет изменено действием |
Одно имя из списка состояний. |
toStateName |
да |
Определяет, на какое состояние будет изменено исходное состояние. |
Одно имя из списка состояний. |
SetStateAttributeValueIfDepartment
Действие SetStateAttributeValueIfDepartment изменяет значение атрибута типа Состояние, если задание было выдано на подразделение.
Пример реализации действия
При выдаче задания на подразделение устанавливается состояние Не назначен исполнитель.
{
"activity": "SetStateAttributeValueIfDepartment",
"params": {
"sourceTypes:": [],
"departmentAttributeName": "executor",
"attributeName": "state",
"initialStateNames": [
"assigned"
],
"toStateName": "noExecutor",
"target": "Self",
"relationType": "",
"targetTypes": [],
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
departmentAttributeName | да |
Определяет имя атрибута типа Организационная единица, которое будет назначено подразделению |
Имя атрибута типа Организационная единица |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
initialStateNames |
да |
Определяет состояния, которые будут изменены действием |
Список имён состояний. |
toStateName |
да |
Определяет, на какое состояние будет изменено исходное состояние. |
Одно имя из списка состояний. |
SetOrgUnitAttributeValue
Действие SetOrgUnitAttributeValue присваивает заданному атрибуту типа Организационная единица значение идентификатора текущего пользователя или очищает значение атрибута. Даёт возможность скопировать значения из одного атрибута в другой. Скопированные значения добавляются к существующим.
Пример №1
В примере показано использование действия для назначения пользователя исполнителем:
{
"activity": "SetOrgUnitAttributeValue",
"params": {
"sourceTypes": ["workflow_approval"],
"attributeName": "executor",
"orgUnitAttributeValue": "CurrentUser",
}
}
Пример №2
В примере показано использование действия для копирования значений атрибута Ответственные в Аудиторы:
{
"activity": "SetOrgUnitAttributeValue",
"params": {
"sourceTypes": [],
"target": "Self",
"attributeName": "auditors",
"orgUnitAttributeValue": "AttributeCopy",
"sourceAttributeName":"responsible"
}
}
Пример №3
В примере показано использование действия для замены списка аудиторов на текущего пользователя:
{
"activity": "SetOrgUnitAttributeValue",
"params": {
"sourceTypes": [],
"target": "Self",
"attributeName": "auditors",
"orgUnitAttributeValue": "CurrentUser",
"changeListKind": "Replace",
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
attributeName |
да |
Определяет имя атрибута типа Организационная единица, над которым будет производиться действие. |
Имя атрибута типа Организационная единица |
orgUnitAttributeValue |
да |
Определяет, будет ли: |
CurrentUser
|
sourceAttributeName | Определяет имя атрибута, значение которого будет скопировано в атрибут с именем, указанным в attributeName. | ||
changeListKind |
В зависимости от значения: Replace — Заменяет значение атрибута attributeName на значение атрибута orgUnitAttributeValue; Add — к текущему списку в attributeName добавятся значения из orgUnitAttributeValue; Remove — значение атрибутаorgUnitAttributeValue будет удалено из списка значений attributeName |
Replace
|
ClearAttributeValue
Действие ClearAttributeValue очищает значение заданного атрибута.
Пример реализации действия
{
"activity": "ClearAttributeValue",
"params": {
"sourceTypes": ["task_simple"],
"attributeName": "dateOfCompletion",
"target": Self,
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
attributeName |
да |
Определяет имя атрибута, который будет очищен |
Имя атрибута |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
SetOrgUnitAttributeValueBasedOnState
Действие SetOrgUnitAttributeValueBasedOnState сравнивает значение атрибута, имя которого указано в attributeName, с параметрами конфигурационного списка, определёнными в stateToOrgUnitConfig. При выявлении совпадения, список соответствующего параметра записывается в targetAttributeName.
Приведённый ниже пример используется в работе фильтра Актуальные. Действие SetOrgUnitAttributeValueBasedOnState сопоставляет значение, полученное из атрибута Состояние, в конфигурационном списке находит соответствующий ему список значений типа Организационная единица и записывает его в targetAttributeName, за которым следит фильтр.
Пример реализации действия
{
"activity": "SetOrgUnitAttributeValueBasedOnState",
"params": {
"sourceTypes": ["document"],
"targetTypes": ["task_simple", "task_approval", "task_toReviewDocument", "task_toReadDocument"],
"target": "Relations",
"relationType": "TaskAttachments",
"attributeName": "state",
"targetAttributeName": "actualFor",
"stateToOrgUnitConfig": {
"none": [],
"assigned": [ "initiator", "executor", "responsible" ],
"inProgress": [ "initiator", "executor" ],
"onValidation": [ "initiator" ],
"workflowRunning": [ "initiator" ],
"workflowCompleted": [],
"approved": [],
"done": [],
"completed": [],
"revoked": []
}
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
нет |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
нет |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
relationFilterByChangeKind | нет |
Разделяет изменения связей на добавление и удаление, если |
{ |
attributeName |
да |
Определяет имя атрибута, который содержит состояние, используемое для определения перехода по конфигурации. |
Имя атрибута Состояние |
stateToOrgUnitConfig |
да |
Конфигурация выполняемого действия. |
Список имён. С каждым именем соотносится список атрибутов. |
targetTypes |
нет |
Определяет, типы элементов, над которыми будет произведено действие. |
Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов". |
targetAttributeName |
да |
Определяет имя целевого атрибута. В который будут записаны выбранные значения из stateToOrgUnitConfig |
Список выбранных имён атрибутов. |
ManageTaskAndWorkflowState
Действие ManageTaskAndWorkflowState управляет переходами состояний заданий и процессов из состояния none, осуществляет завершение этапа, завершение процесса, запуск следующего этапа процесса, отвечает за рекурсивный отзыв задания.
Пример реализации действия
{
"activity": "ManageTaskAndWorkflowState",
"params": {
"sourceTypes": [],
"completionStateConfig": {
"task_simple": ["onValidation"],
}
}
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
нет |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
completionStateConfig | нет | Указывает в какое состояние нужно перевести родительское задание при завершении подзаданий. Если не указано, задание будет переведено в завершающее состояние. |
"[тип задания]": ["состояние"] |
SendNotifications
Действие SendNotification отправляет уведомление с заданным текстом и списком получателей.
В приведённом ниже примере нотификация уйдет только добавившимся аудиторам: те аудиторы, что были в списке до изменения, нотификации не получат. Кроме того, если пользователь сам назначил себя аудитором (явно или с помощью другой активити), нотификации он также не получит.
Пример реализации действия
{
"activity": "SendNotifications",
"params": {
"sourceTypes": [],
"target": "Self",
"subscribers": [
"new.attr.auditors.person.id"
],
"ignoreList": [
"old.attr.auditors.person.id",
"initiatingPerson.id"
],
"message": "{initiatingPerson.displayName} назначил(а) вас аудитором задания"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
нет |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
нет |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
subscribers | нет | Задаёт список пользователей, которые должны получить уведомления |
Список выражений вида:
"old.attr.auditors.person.id",
|
ignoreList | нет | Задаёт список пользователей, которые не должны получить уведомления | |
message | нет | Задаёт текст сообщения | Текстовая строка и выражения. |
notificationName | нет | Используется для того, чтобы на уровне SDK различать нотификации, сгенерированные автоматизацией. |
Имя уведомления (нотификации). Для получения имени нотификации используется свойство INotification.NotificationName. |
CleanDocumentSignaturesAndRequests
Действие CleanDocumentSignaturesAndRequests очищает не привязанные к заданиям запросы на подпись.
Пример реализации действия
{
"activity": "CleanDocumentSignaturesAndRequests",
"params": {
"sourceTypes": [],
"target": "Relations",
"relationType": "TaskAttachments",
"attributeName": "state",
"initialStateNames": [
"approved",
"revoked",
],
"newVersionConfirmationNeeded": true
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
newVersionConfirmationNeeded |
нет |
Если newVersionConfirmationNeeded = true, то при наличии в документе запросов, связанных с заданиями в состояниях из списка initialStateNames, задает вопрос о необходимости создания новой версии. Если newVersionConfirmationNeeded = false, то версия создается без вопроса. |
True или False. |
initialStateNames |
нет |
Список имен состояний для параметра newVersionConfirmationNeeded |
Список имён состояний. |
RecalculateWorkflowStates
Действие RecalculateWorkflowStates пересчитывает состояние процесса.
Пример реализации действия
Откат хода процесса к первому этапу при изменении вложения.
{
"activity": "RecalculateWorkflowStates",
"params": {
"sourceTypes": [],
"target": "Relations",
"relationType": "TaskAttachments",
"attributeName": "state"
}
}
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
relationType |
нет |
Определяет тип связи, на который будет направлено действие в случае, если |
{ |
attributeName |
да |
Определяет состояние, которое будет изменено действием |
Имя атрибута типа состояние, значение которого будет изменено действием. |
SendEmail
Действие SendEmail рассылает электронное письмо по списку адресов, указанных в списке recipients, игнорируя адреса из списка ignoreList. Заголовок письма поддерживает синтаксис, тело письма поддерживает синтаксис, HTML (только при "isBodyHtml": true) и шаблоны форматирования.
Анонимная рассылка с помощью действия SendEmail не поддерживается. |
Пример №1. Рассылка писем подписавшимся на изменения файлов или документов
При изменении файлов с расширением ".log", ".xps" скрипт будет рассылать письма пользователям, которые подписались на изменения файлов или документов.
[
{
"when": "VersionChanged",
"params": {
"triggerType": "Server",
"sourceTypes": [
"document",
"File"
],
"fileBodyChanged": true,
"fileExtensions": [
".log",
".xps"
]
},
"then": [
{
"activity": "SendEmail",
"params": {
"sourceTypes": [],
"target": "Self",
"recipients": [
"new.subscribers.email"
],
"ignoreList": [],
"host": "smtp.server",
"port": "465",
"userName": "pilotuser@server",
"password": "1234567890",
"fromEmail": "pilotuser@server",
"fromDisplayName": "Pilot User",
"isBodyHtml": true,
"subject": "{new.title} изменен",
"body": "Файл \"{new.title}\" был изменен"
}
}
]
}
]
Пример №2. Рассылка писем исполнителям заданий
Действие рассылает письма пользователям, которые назначены исполнителями задания.
{
"activity": "SendEmail",
"params": {
"sourceTypes": [],
"target": "Self",
"recipients": [
"new.attr.executor.person.email"
],
"ignoreList": [],
"host": "smtp.server",
"port": "465",
"userName": "pilotuser@server",
"password": "1234567890",
"fromEmail": "pilotuser@server",
"fromDisplayName": "Pilot User",
"isBodyHtml": true,
"subject": "Новое задание от {new.attr.initiator.person.displayName}",
"body": "Вы назначены исполнителем <a href=\"piloturi://{new.id}\">задания</a> от пользователя {new.attr.initiator.person.displayName}.<br>{new.attr.title}<br>{new.attr.description}"
}
}
Пример №3. При изменении исполнителя письмо отправляется только новому исполнителю.
Если изменился исполнитель, направить письмо новому исполнителю ("recipients": ["new.attr.executor.person.email"]) и не отправлять старому ("ignoreList": ["old.attr.executor.person.email"]).
Строка в триггере ("sourceTypes": ["task_simple"]) ограничивает работу скрипта типом задания Задача.
[
{
"when": "AttributeChanged",
"params": {
"triggerType": "Server",
"sourceTypes": [],
"attributeNames": [
"executor"
],
"itemChangeKind": "Create,Modify"
},
"then": [
{
"activity": "SendEmail",
"params": {
"sourceTypes": [],
"target": "Self",
"recipients": [
"new.attr.executor.person.email"
],
ignoreList": [
"old.attr.executor.person.email"
],
"host": "smtp.server",
"port": "465",
"userName": "user@server",
"password": "pass",
"fromEmail": "user@server",
"fromDisplayName": "Pilot User",
"isBodyHtml": true,
"subject": "{new.title} изменен",
"body": "Задание\"{new.title}\" было изменено"
}
}
]
}
]
Пример №4. Электронное письмо с датой завершения задания, названием вложенного документа, и ссылкой на документ
При добавлении или изменении документа, вложенного в задачу, исполнителю будет направлено электронное письмо, в теле которого будут вписана дата окончания задания, а также отформатированные по шаблонам наименования вложенных документов и ссылки на них. Наименования документов (по шаблону template1) будут записаны в строку, разделённые запятой и пробелом, а ссылки на документы (по шаблону template2) — каждая на своей строке.
[
{
"when": "RelationsChanged",
"params": {
"triggerType": "Server",
"sourceTypes": [
"task_simple"
],
"itemChangeKind": "Modify,Create"
},
"then": [
{
"activity": "SendEmail",
"params": {
"sourceTypes": [],
"target": "Self",
"recipients": [
"new.attr.executor.person.email"
],
"ignoreList": [],
"host": "smtp.server",
"port": "465",
"userName": "user@server",
"password": "pass",
"fromEmail": "user@server",
"fromDisplayName": "Pilot User",
"isBodyHtml": true,
"subject": "документ добавлен",
"body": "документ(ы) {new.taskattachments:$template1} вложены в задание {new.attr.title} с датой окончания {new.attr.deadlineDate:dd-MM-yy}.</br>Ссылки:</br> {new.taskattachments:$template2}",
},
"templates":
{
"template1":
{
"separator": ", ",
"itemFormat": "'{object.title}'"
},
"template2":
{
"separator": "</br>",
"itemFormat": "<a href = http://localhost:5545/url?id={object.id}>{object.attr.name}</a>"
}
}
}
]
}
]
Параметры действия
Имя параметра | Обязательный | Описание параметра | Значения параметра |
---|---|---|---|
sourceTypes |
да |
Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию. |
Список имён типов объектов. Пустой список будет означать "все типы объектов". |
target |
да |
Определяет, направлено ли действие на сам объект или на его связи. |
Self или Relations |
recipients |
да |
Определяет список получателей письма. |
Cписок адресов получателей письма или выражение вида: "new.subscribers.email" письмо будет направлено пользователям, которые подписались на изменение файла или документа или "new.attr.executor.person.email" в этом случае письмо будет направлено пользователям, которые были назначены исполнителем задания. Для работы с выражениями у пользователя-исполнителя email-адрес должен быть задан в myAdmin Подробнее о выражениях — здесь. |
ignoreList | нет | Определяет список адресов, которым письмо высылаться не будет. | |
host | да | адрес почтового сервера | Например: "smtp.somemail.com" |
port | да | номер порта почтового сервера | Например: "465" |
userName | да | имя пользователя почтового сервера | Например: "pilotuser@somemail.com" |
password | да | пароль пользователя на почтовом сервисе | Например: "123456" |
fromEmail | да | email-адрес, с которого будет отправлено письмо | Например: "pilotuser@somemail.com" |
fromDisplayName | нет | отображаемое имя отправителя | Например: "Pilot User" |
isBodyHtml | нет | включение поддержки html в теле письма | True или False |
subject |
нет | заголовок письма |
Текстовая строка с возможностью использовать выражения. Например: "{new.title} изменен" или "Новое задание от {new.attr.initiator.person.displayName}" |
body | нет | тело письма |
Текст с поддержкой HTML и выражений. Например: "Файл \"{new.title}\" был изменен" Или "body": "Вы назначены исполнителем <a href=\"piloturi://{new.id}\">задания</a> от пользователя {new.attr.initiator.person.displayName}.<br>{new.attr.title}<br>{new.attr.description}" |
Шаблоны форматирования
Шаблоны форматирования значений атрибутов и полей объектов составляют список шаблонов:
"templates":
{
"template2":
{
"separator": "...",
"itemFormat": "..."
},
"template1":
{...}
}
Где:
"separator" — разделитель для нескольких значений атрибутов объекта. Может содержать символы или HTML-тэги, например тэг переноса строки "</br>";
"itemFormat" содержит имя атрибута и задаёт его оформление.
Примеры:
1. Наименования объектов заключаются в одинарные кавычки и выводятся в строку через запятую и пробел:
"template":
{
"separator": ", ",
"itemFormat": "'{object.title}'"
},
2. Ссылки на объекты размещаются каждый на своей строке:
"template":
{
"separator": "</br>",
"itemFormat": "<a href=http://localhost:5545/url?id={object.id}>{object.attr.name}</a>"
}
При использовании HTML-тэгов проверьте, чтобы значением параметра isBodyHtml было true. |