Служебный сценарий (svcscript)

Описание

Сценарий, используемый в качестве подпрограммы управления общими событиями и данными. Исполняется ролью Script, может работать асинхронно без привязки к каким либо другим runtime-ресурсам.
Может запускаться для обработки:
- служебной задачи по расписанию (svctask),
- данных из другого сценария вложенно или асинхронно,
- для обработки поступившего HTTP-запроса,
- для обработки контекстных данных звонка,
- для отправки сообщения в интеграционный канал,
и т.д.

Содержит только общие компоненты, доступные всем типам сценариев.

Редактирование сценария производится в визуальном редакторе сценариев (приложение scripteditor).

Ограничения

  • Коллекция доступна в любом домене, включая мастер-домен.

  • На обработчик сценария могут быть наложены ограничения, установленные в родительском домене для текущего домена: пауза между компонентами, количество компонентов, время исполнения и т.д.

  • Лицензируется количественным параметром: расходуется лицензия на служебные сценарии.

Поля

Структура сущности
{
  "id": uuid,
  "code": str,
  "name": str,
  "scriptdata": object,
  "projectid": uuid,
  "lwt": date,
  "opts": {
    "title": str,
    "comment": str,
    "loglevel": int,
    "variables": object
  },
  "ext": {
    "ct": date,
    "lwt": date
  }
}
Table 1. Поля
Спецификация Описание

Поле: id
Режим: inout
Тип: uuid
По умолчанию: generated

Идентификатор. Может быть задан при создании, иначе генерируется системой.

Поле: code
Режим: in
Тип: str
По умолчанию: required

Код. Применяется для ассоциации с другими сущностями.

Поле: name
Режим: in
Тип: str
По умолчанию: required

Название

Поле: scriptdata
Режим: in
Тип: object
По умолчанию: required

Содержание сценария: компоненты, переменные, некоторые другие свойства.
Подробно рассматривается в разделе Сценарии.

Поле: projectid
Режим: in
Тип: uuid
По умолчанию: empty

Идентификатор проекта, которому принадлежит сценарий

Поле: lwt
Режим: out
Тип: date
По умолчанию: generated

(дубль, устаревшее) Время последней модификации объекта

Поле: opts
Режим: in
Тип: object
Составное поле

Поле: opts.title
Режим: in
Тип: str
По умолчанию: empty

Произвольный заголовок

Поле: opts.comment
Режим: in
Тип: str
По умолчанию: empty

Произвольный комментарий

Поле: opts.loglevel
Режим: in
Тип: int
По умолчанию: 0

Уровень логирования сценария (0-3).
0 – отключено, …​, 2 – максимально.
Логирование производится в:

  • общий лог-журнал /script/erl_*.log. В любом случае фиксирует только факт запуска процесса обработчика сценария и переходы по компонентами и сценариям;

  • типизированный подоменный лог-журнал /script/svc@<domain>_*.log. Предназначен для выдачи информации по запросу через диагностическое API администратору текущего домена.

    • 0 – только крэши;

    • 1 – ошибки компонентов и логики;

    • 2 – предупреждения;

    • 3 – переходы по компонентами и сценариям и некоторые промежуточные данные.

Поле: opts.variables
Режим: in
Тип: "object"
По умолчанию: empty

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

Поле: ext
Режим: inout
Тип: object
Составное поле

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

Поле: ext.ct
Режим: out
Тип: date
По умолчанию: generated

Время создания объекта

Поле: ext.lwt
Режим: out
Тип: date
По умолчанию: generated

Время последней модификации объекта

См. также

Логические роли

  • svc производит обслуживание служебных сценариев.