Вы можете посмотреть значения переменной Context:
- В ручном сценарии
- В системных событиях
- В полях с типом Сообщение
- В полях карточки объекта для оператора Ожидать
Просмотр значений в переменной Context скриптов при запуске ручного сценария
При запуске ручного сценария в объекте или деле с помощью нажатия на кнопку (поле с типом Кнопка) в переменную Context скриптов передается следующая информация:
- BlockId — идентификатор блока в метаданных (типе дела), служит для дополнительной идентификации блока, в котором расположено поле с типом Кнопка.
- BlockN — порядковый номер блока в деле (для мультиблоков).
- LineN — порядковый номер строки в блоке (для мультистрок).
- Source — определяет источник по параметрам запроса, из которого было запущено условие срабатывания сценария:
- Front — действие было выполнено в Case.one (фронт)
- API — изменение было выполнено через API из внешней системы
- Script — изменение было выполнено в результате запроса API из скрипта в сценариях автоматизации
- Workflow — изменение было выполнено в результате действия системных, без JS-операторов (Создать, Изменить)
- Integration — изменение было выполнено в результате системной синхронизации (Casebook)
- WorkflowId — если в качестве источник определен Script или Workflow, то в параметр будет передан идентификатор сценария, из которого было запущено условие срабатывания сценария.
context.Source // название источника, из которого произошло срабатывание сценария автоматизации (обязательный, строка)
context.WorkflowId // идентификатор сценария автоматизации, из которого произошло срабатывание сценария автоматизации (необязательный, строка)
Доступ к значениям в переменной Context осуществляется через глобальную переменную в скриптах, например:
let blocId = context.BlockId;
let blockN = context.BlockN;
let lineN = context.LineN;
Если блок, где расположено поле с типом Кнопка, по которой был вызван сценарий, находится в простом блоке (простой строке), то BlockN (LineN в случае простой строки) будет равен undefined.
Для ClearScript BlockN и LineN будет равен null в случае простого блока/строки.
При разработке ручных сценариев необходимо учитывать, что свойства blockN и lineN могут быть не актуальными на момент выполнения ручного сценария, если:
- Сохранение дела повлекло за собой запуск других сценариев, которые могут изменить дело (если перед запуском сценария посредством нажатия на поле с типом Кнопка в дело были внесены изменения, и дело еще не было сохранено).
- В сценарии перед оператором Скрипт находится оператор Изменить.
Описание всех полей переменной Context:
{
UserId, // идентификатор пользователя, инициировавшего срабатывание сценария (обязательный, строка)
Date, // дата и время срабатывания сценария автоматизации (обязательный, date)
ProjectId, // идентификатор дела, к которому относится сущность (необязательный, строка)
EntityId, // идентификатор сущности, изменение которой привело к срабатыванию сценария (необязательный, строка)
BlockId, // идентификатор блока в метаданных (типе дела). Служит для дополнительной идентификации блока, в котором расположено поле типа "Кнопка" (необязательный, строка)
BlockN, // порядковый номер блока в деле (для мультиблоков) (необязательный, число)
LineN, // порядковый номер линии в блоке (для мультистрок) (необязательный, число)
Source, // название источника, из которого произошло срабатывание сценария автоматизации (обязательный, строка)
WorkflowId // идентификатор сценария автоматизации, из которого произошло срабатывание сценария автоматизации (необязательный, строка)
}
Context системных событий
В Context передаются переменные по системным событиям: EntityId (идентификатор объекта, над которым произошло действие) и EntityType (системный класс объекта, над которым произошло действие) в следующих системных событиях:
- Активация модуля
- Выход пользователя из системы
- Неудачная попытка авторизации
- Редактирование данных пользователя
- Редактирование отчета
- Редактирование элемента справочника (entittyID — идентификатор справочника, ValueId — идентификатор элемента справочника)
- Создание группы
- Создание отчета
- Создание пользователя
- Создание элементов справочника (entittyID — идентификатор справочника, ValueId — идентификатор элемента справочника)
- Удаление группы
- Удаление отчета
- Удаление пользователя
- Удаление элемента справочника (entittyID — идентификатор справочника, ValueId — идентификатор элемента справочника)
В Context приходит информация о сущности:
- Блокировка и разблокировка пользователей — переменные в Context:
- EntityId — передается идентификатор пользователя, которого заблокировали
- EnttityType — передается системный класс объекта
- UserId — передается идентификатор пользователя, который выполнил действие
- Date
- Source
- Изменение пароля — переменные в Context:
- EntityId — передается идентификатор пользователя, которому изменили пароль
- EnttityType
- UserId — передается идентификатор пользователя, который изменил пароль
- Date
- Source
- Редактирование данных группы — переменные в Context:
- EntityId — передается идентификатор группы, которою отредактировали
- EnttityType
- UserId — передается идентификатор пользователя, который выполнил действие
- Date
- Source
- Редактирование прав доступа — переменные в Context:
- EntityId — передается идентификатор объекта, в котором изменились права
- EnttityType — передается системный класс объекта, в котором изменились права
- UserId — передается идентификатор пользователя, который выполнил действие
- Date
Context сообщений
Context сообщений в мультиполях/мультиблоках передается, если на момент отправки сообщения поля/блоки в них не существовали (карточка не была сохранена), при использовании поля с типом Сообщение в операторе Ожидать для действий Заполнение и Редактирование:
- EntityId — идентификатор дела
- EntityType — тип сущности
- UserId — идентификатор пользователя
- Дата — время
- Массив комментариев
Поскольку сценарии автоматизации могут срабатывать при редактировании или удалении комментария, в Context для поля с типом Сообщение присутствует параметр ActionType, который указывает тип действия, произведенного над комментарием:
- Добавление комментария — тип действия в контексте: Created.
- Редактирование комментария — тип действия в контексте: Edited.
- Удаление комментария — тип действия в контексте: Deleted.
Context выполнения скрипта для оператора Ожидать
В Context выполнения скрипта, доступный в JS-скриптах, доступен массив для передачи изменений в полях (как простых, так и из мультистрок/мультиблоков) карточки объекта при выборе в операторе Ожидать условий срабатывания Заполнение поля и Редактирование:
В контекст передаются следующие параметры:
- ProjectId — идентификатор объекта/дела (параметр передается перед массивом с изменениями).
- BlockOldNum — (число) порядковый номер мультиблока до сохранения изменений в объекте:
- Нумерация начинается с 0
- Для мультиблоков — нумерация в пределах мультиблоков
- Для удаленных мультиблоков передается номер, который был присвоен до сохранения изменений
- Для добавленных мультиблоков передается значение null
- Для простых блоков передается значение 0
- BlockNewNum — (число) порядковый номер мультиблока после сохранения изменений в объекте:
- Нумерация начинается с 0
- Для мультиблоков — нумерация в пределах мультиблоков
- Для удаленных мультиблоков передается значение null
- Для добавленных мультиблоков передается номер, который был присвоен после сохранения изменений
- Для простых блоков передается значение 0
- LineOldNum — (число) порядковый номер мультистроки до сохранения изменений в объекте:
- Нумерация начинается с 0
- Для мультистрок — нумерация в пределах мультистрок
- Для удаленных мультистрок передается номер, который был присвоен до сохранения изменений
- Для добавленных мультистрок передается значение null
- Для простых строк передается значение 0
- LineNewNum — (число) порядковый номер мультистроки после сохранения изменений в объекте:
- Нумерация начинается с 0
- Для мультистрок — нумерация в пределах мультистрок
- Для удаленных мультистрок передается значение null
- Для добавленных мультистрок передается номер, который был присвоен после сохранения изменений
- Для простых строк передается значение 0
- FieldId — идентификатор поля.
- SystemFieldSysName — системное имя поля, заполняется только для системных полей объекта;
- FieldTag — значения тега (если значение отсутствует, передается null).
- FieldOldValue — значение поля до сохранения изменений (если значение отсутствует, передается null).
- FieldNewValue — новое значение поля (если значение отсутствует, либо удалено, передается null).
В Context передаются следующие типы полей при изменении карточки объекта:
- Гиперссылка — (строка), формат — значение
- Дата — (строка), формат — yyyy-mm-dd
- Дата и время — (строка), формат — yyyy-mm-ddThh:mm:ss.fffZ (время передается в UTC)
- Логический — (логический), формат — системное название значения (true/false)
- Справочник — (строка), формат — идентификатор значения
- Текст — (строка), формат — значение
- Текстовое расширяемое — (строка), формат — значение
- Формула расчета — (число), формат — значение без учета формата из настроек локализации
- Чекбокс — (логический), формат — системное название значения (true/false)
- Число — (число), формат — значение без учета формата из настроек локализации
- Шаблон номера дела — (строка), формат — значение
- Объект-Документ — (строка), формат — идентификатор документа
- Объект-Объект — (строка), формат — идентификатор объекта
- Объект-Пользователь — (строка), формат — идентификатор пользователя
- Объект-Участник — (строка), формат — идентификатор участника
- Системные поля:
- Название — (строка), формат — значение
- Номер дела — (строка), формат — значение
- Клиент — (строка), формат — идентификатор клиента
- Описание — (строка), формат — значение
- Ответственный — (строка), формат — идентификатор пользователя
- Стадия — (строка), формат — идентификатор значения
- Статус — (логический), формат — системное название значения (true — в архиве, false — не в архиве)