Действия

Действие запускается, когда при наступлении определённого события срабатывает Триггер.

Список действий

Действие Описание
SetAccessLevel Изменяет уровень доступа к элементу.
CopySignatureRequestFromPreviousVersion Копирует запросы на подпись с предыдущей версии элемента.
AddVirtualSignatureRequests Добавляет виртуальные запросы на подпись. Работает на стороне клиента.
DeleteVirtualSignatureRequests Удаляет виртуальные запросы на подпись. Работает на стороне клиента.
ReplaceVirtualSignatureRequest Заменяет виртуальные запросы на подпись. Работает на стороне клиента.
SetDateTimeAttributeValue Присваивает заданному атрибуту значение текущей даты/времени.
SetSystemStateValue Изменяет системное состояние объекта.
SetStateAttributeValue Изменяет значение атрибута типа Состояние.
SetSignatureRequestRelatedObjectStateAttribute

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

SetStateAttributeValueIfNotSigned

Изменяет значение атрибута типа Состояние, если документ не подписан.

Используется для сценария, в котором при добавлении вложений в задание на согласование задание перевыдается, если требуются подписи по новому документу

SetStateAttributeValueIfSigned

Изменяет значение атрибута типа Состояние, если документ подписан.

Используется для завершения задания при подписании документа.

SetStateAttributeValueIfDepartment

Изменяет значение атрибута типа Состояние, при выдаче задания на подразделение.

Устанавливает состояние Не назначен исполнитель при выдаче задания на подразделение.

UpdateSignatureRequests Обновляет (или создаёт, если отсутствуют) запросы на подпись для всех элементов процесса.
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": "Agreement",

        "inheritable": false,

        "orgUnitAttributeNames": ["executor"]

    }

}

Параметры действия

Имя параметра Обязательный Описание параметра Значения параметра

sourceTypes

да

Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию.

Список имён типов объектов. Пустой список будет означать "все типы объектов".

target

да

Определяет, направлено ли действие на сам объект или на его связи.

Self или Relations

relationType

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

accessLevel

да

Действие ChangeAccess изменит уровень доступа к элементу на уровень, определенный значением этого параметра.

{
None,
Create,
Edit,
View,
Freeze,
Agreement,
ViewCreate = View | Create,
ViewEdit = View | Create | Edit,
ViewEditAgreement = View | Edit | Agreement,
Full = View | Create | Edit | Freeze | Agreement
}

inheritable

да

Определяет, будет ли уровень доступа наследуемым

True или False

orgUnitAttributeNames

да

Определяет тех, для кого будет изменен уровень доступа.

Список имён атрибутов типа Организационная единица

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

targetTypes

да

Определяет, типы элементов, у которых будут добавлены запросы на подпись.

Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов".

orgUnitAttributeNames

да

Определяет список пользователей, для которых будет удалён виртуальный запрос на подпись

Список имён атрибутов типа Организационная единица

ReplaceVirtualSignatureRequest

Действие ReplaceVirtualSignatureRequest заменяет виртуальные запросы на подпись. Действие происходит на стороне клиента.

Пример реализации действия

При замене исполнителя автоматически заменяются виртуальные запросы на подпись.

{

    "activity": "ReplaceVirtualSignatureRequest",

    "params": {

        "sourceTypes": [],

        "target": "Relations",

        "relationType": "TaskAttachments",

        "orgUnitAttributeNames": ["executor"],

        "signingRoleAttributeName": "signingRole",

        "targetTypes": []

    }

}

Параметры действия

Имя параметра Обязательный Описание параметра Значения параметра

sourceTypes

да

Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию.

Список имён типов объектов. Пустой список будет означать "все типы объектов".

target

да

Определяет, направлено ли действие на сам объект или на его связи.

Self или Relations

relationType

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

signingRoleAttributeName

нет

Определяет имя атрибута, содержащего значения для выбора подписывающей роли.

Имя атрибута типа строка, который содержит список ролей, заданный в Доп.параметрах

targetTypes

да

Определяет, типы элементов, на которые будут добавлены запросы на подпись.

Список имён типов объектов с префиксом task_. Пустой список будет означать "все типы объектов".

orgUnitAttributeNames

да

Определяет тех пользователей, у которых будет запрошена подпись.

Список имён атрибутов типа Организационная единица

SetDateTimeAttributeValue

Действие SetDateTimeAttributeValue присваивает заданному атрибуту значение текущей даты/времени, смещённое на количество дней, определённое параметром offsetAttributeName.

Пример реализации действия

{

    "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.

relativeDeadlineDays

SetSystemStateValue

Действие SetSystemStateValue изменяет системное состояние объекта.

Пример реализации действия

{

    "activity": "SetSystemStateValue",

    "params": {

        "sourceTypes": ["task_approval"],

        "target": "Relations",

        "relationType": "TaskAttachments",

        "oldStates": ["Alive"],

        "newState": "Frozen"

    }

},

Параметры действия

Имя параметра Обязательный Описание параметра Значения параметра

sourceTypes

да

Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию.

Список имён типов объектов. Пустой список будет означать "все типы объектов".

target

да

Определяет, направлено ли действие на сам объект или на его связи.

Self или Relations

relationType

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

oldStates

да

Определяет имена системных состояний, из которых может осуществляться переход

Список имён системных состояний

{
Alive,
InRecycleBin,
DeletedPermanently,
Frozen,
LockRequested,
LockAccepted
}

newState

да

Определяет имя системного состояния, в которое будет осуществляться переход

Одно из имён списка системных состояний

{
Alive,
InRecycleBin,
DeletedPermanently,
Frozen,
LockRequested,
LockAccepted
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

attributeName

да

Определяет состояние, которое будет изменено действием

Имя атрибута типа состояние, значение которого будет изменено действием.

initialStateNames

да

Определяет состояния, которые будут изменены действием

Список имён состояний.

toStateName

да

Определяет, на какое состояние будет изменено исходное состояние.

Одно имя из списка состояний.

SetSignatureRequestRelatedObjectStateAttribute

По указанным правилам действие SetSignatureRequestRelatedObjectStateAttribute меняет состояния заданий, связанных с неподписанными запросами на подпись.

Пример реализации действия

{

    "activity": "SetSignatureRequestRelatedObjectStateAttribute",

    "params": {

        "attributeName": "state"

        "initialStateNames": ["assigned"],

        "toStateName": "inProgress"

    }

}

Параметры действия

Имя параметра Обязательный Описание параметра Значения параметра

sourceTypes

да

Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию.

Список имён типов объектов. Пустой список будет означать "все типы объектов".

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

attributeName

да

Определяет состояние, которое будет изменено действием

Имя атрибута типа состояние, значение которого будет изменено действием.

initialStateNames

да

Определяет состояния, которые будут изменены действием

Список имён состояний.

toStateName

да

Определяет, на какое состояние будет изменено исходное состояние.

Одно имя из списка состояний.

UpdateSignatureRequests

Действие UpdateSignatureRequests обновляет (или cоздаёт, если отсутствуют) запросы на подпись.

Пример реализации действия

{

    "activity": "UpdateSignatureRequests",

    "params": {

        "sourceTypes": ["workflow_approval"],

        "target": "Relations",

        "relationType": "TaskAttachments",

        "orgUnitAttributeNames": ["executor"],

        "isVirtual": true,

        "signingRoleAttributeName": "signRole",

        "targetTypes": ["document"],

        "typesForSignatureRequestData": ["task_approval"]

    }

}

Параметры действия

Имя параметра Обязательный Описание параметра Значения параметра

sourceTypes

да

Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию.

workflow_approval

процесс согласования

Пустой список будет означать "все типы объектов".

target

да

Определяет, направлено ли действие на сам объект или на его связи.

Self или Relations

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

isVirtual

да

Определяет, является ли запрос на подпись виртуальным.

true или false

relationType

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

signingRoleAttributeName

нет

Определяет имя атрибута, содержащего значения для выбора подписывающей роли.

Имя атрибута типа строка, который содержит список ролей, заданный в Доп.параметрах

typesForSignatureRequestData

нет

Определяет типы объектов, от которых будут взяты данные для создания запросов на подпись.

Список имён типов объектов.

targetTypes

да

Определяет, типы элементов, на которые будут добавлены запросы на подпись.

Список имён типов объектов с префиксом task_

Пустой список будет означать "все типы объектов".

orgUnitAttributeNames

да

Определяет тех пользователей, у которых будет запрошена подпись.

Список имён атрибутов типа Организационная единица

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

да

Определяет, будет ли:
- атрибуту присвоен идентификатор текущего пользователя;
- или его значение будет очищено;
- или его значение будет скопировано из атрибута, указанного в sourceAttributeName.

CurrentUser
Empty
AttributeCopy

sourceAttributeName   Определяет имя атрибута, значение которого будет скопировано в атрибут с именем, указанным в attributeName.  
changeListKind  

В зависимости от значения:

Replace — Заменяет значение атрибута attributeName на значение атрибута orgUnitAttributeValue;

Add — к текущему списку в attributeName добавятся значения из orgUnitAttributeValue;

Remove — значение атрибутаorgUnitAttributeValue будет удалено из списка значений attributeName

Replace
Add
Remove

ClearAttributeValue

Действие ClearAttributeValue очищает значение заданного атрибута.

Пример реализации действия

{

    "activity": "ClearAttributeValue",

    "params": {

        "sourceTypes": ["task_simple"],

        "attributeName": ["dateOfCompletion"],

        "target": Self,

    }

}

Параметры действия

Имя параметра Обязательный Описание параметра Значения параметра

sourceTypes

да

Определяет типы объектов, срабатывание триггера на которых позволит выполниться действию.

Список имён типов объектов. Пустой список будет означать "все типы объектов".

attributeName

да

Определяет имя атрибута, который будет очищен

Имя атрибута

target

да

Определяет, направлено ли действие на сам объект или на его связи.

Self или Relations

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

relationFilterByChangeKind нет

Разделяет изменения связей на добавление и удаление, если
"target": "Relations"

{
Removed,
Added,
}

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",
"new.attr.auditors.person.id",
"initiatingPerson.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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

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

нет

Определяет тип связи, на который будет направлено действие в случае, если
"target": "Relations".

{
SourceFiles,
Custom,
TaskAttachments,
}

attributeName

да

Определяет состояние, которое будет изменено действием

Имя атрибута типа состояние, значение которого будет изменено действием.

SendEmail

Действие SendEmail рассылает электронное письмо по списку адресов, указанных в списке recipients, игнорируя адреса из списка ignoreList. Заголовок письма поддерживает синтаксис, тело письма поддерживает синтаксис, HTML (только при "isBodyHtml": true) и шаблоны форматирования.

Пример №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",

                    "useDefaultCredentials": false,

                    "userName": "pilotuser@server",

                    "password": "1234567890",

                    "enableSsl": true,

                    "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,

        "useDefaultCredentials": false,

        "userName": "pilotuser@server",

        "password": "1234567890",

        "enableSsl": true,

        "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",

                    "useDefaultCredentials": false,

                    "userName": "user@server",

                    "password": "pass",

                    "enableSsl": true,

                    "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",

"useDefaultCredentials": false,

"userName": "user@server",

"password": "pass",

"enableSsl": true,

"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
useDefaultCredentials нет

управляет отправкой учетных данных при подключении к серверу.

Подробнее см. Свойство SmtpClient.UseDefaultCredentials

True — используются учетные данные по умолчанию;

False — при подключении к серверу используются значения, заданные в свойстве Credentials.
Если свойство UseDefaultCredentials имеет значение false и свойство Credentials не задано, почта отправляется на сервер анонимно. (False — значение по умолчанию).

userName да имя пользователя почтового сервера Например: "pilotuser@somemail.com"
password да пароль пользователя на почтовом сервисе Например: "123456"
enableSsl да включить поддержку SSL True или False
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.