Компонент Запуск сценария

Описание

Обеспечивает процессное или функциональное ветвление на уровне сценариев.

В случае организации автоматических сервисов размеры сценария могут быть достаточно велики, и компонент «Запуск сценария» предоставляет возможность разбить крупный сценарий на несколько логических блоков. Таким образом, один сценарий передает управление в начало другого сценария. При этом можно задать некоторое значение на запуск, которое примет компонент «Старт» вложенного сценария и сохранит в свою локальную переменную. Помимо этого, все переменные одного типа, которые названы одинаково в запускающем и запускаемом сценариях, перенесут свои значения из одного в другой без изменений. Такой способ запуска называется вложенным.

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

Table 1. Системные характеристики

Индекс

107

Краткое название

execscript

Типы сценариев

Все

Стартовый модуль

r_script_component_execscript

Режим

Синхронный

Иконка

107

Характер разветвления

Разветвляющий, замыкающий

Свойства

Table 2. Свойства
Спецификация Описание

Название: Режим
Код: startMode
Усл. видимости: нет
По умолчанию: Вложенный

Режим запуска дочернего сценария.
Возможные значения:

  • Вложенный (sub,0) – Вложенный с объединением переменных.
    Запускается в том же обработчике, приостанавливая выполнение текущего сценария и передавая вложенному сценарию весь набор накопленных значений локальных переменных и других контекстов.
    После завершения вложенного сценария может быть осуществлен возврат управления при одновременном выставлении свойства 'Возврат управления' в текущем компоненте и в компоненте Стоп вложенного сценария.
    Поскольку переменные общие, то все измененные значения локальных переменных транслируются обратно в передавший управление сценарий.
    Допускается каскадная вложенность сценариев глубиной до 100 уровней.

  • Влож. без переменных (sub_split_vars,2) – Вложенный без объединения переменных.
    Запускается в том же обработчике, приостанавливая выполнение текущего сценария и передавая вложенному сценарию параметры вызова, доступные там через функцию выражений 'startparam/1'. Значения переменных не передаются внутрь и не возвращаются назад.
    После завершения вложенного сценария может быть осуществлен возврат управления при одновременном выставлении свойства 'Возврат управления' в текущем компоненте и в компоненте Стоп вложенного сценария.
    При возврате назад, может передать результат, установленный компонентом 'Стоп'. Это значение поступает в виде аргумента для сохранения в переменную, указанную в поле 'Результат в переменную'.
    Все локальные переменные сценария, передавшего управление вложенному, сохраняют свои значения на момент передачи управления.
    Допускается каскадная вложенность сценариев глубиной до 100 уровней.

  • Асинхронный служебный (async,1) – Запускается новый экземпляр обработчика служебного сценария.
    Запущенный сценарий получает весь набор накопленных на текущий момент переменных и их значений на вход. При совпадении имен переменных производится заполнение их значений вне зависимости от того, на каком уровне вложенности внутри нового обработчика используется сценарий с совпавшим
    именем переменной.
    Исполнение производится на произвольном сервере текущего сайта с ролью svc.

  • Асинх. без переменных (async_split_vars,3) – Асинхронный служебный без копирования значений переменных.
    Запускается новый экземпляр обработчика служебного сценария.
    Исполнение производится на произвольном сервере текущего сайта с ролью svc.
    Запущенный сценарий инициализирует значения переменных без копирования накопленных на момент вызова значений из текущего сценария.
    Асинхронному сценарию могут быть переданы несколько параметров вызова, доступные там через функцию выражений 'startparam/1'.

Название: Источник сценария
Код: scriptMode
Усл. видимости: нет
По умолчанию: Код сценария

Способ выбора сценария для запуска.
Возможные значения:

  • Вложенный (code_sel,0) – Выбор вложенного сценария из списка.

  • Асинхронный служебный (code,1) – Указание кода сценария с помощью аргумента.

Название: Сценарий
Код: scriptCodeSync
Усл. видимости: да
По умолчанию: — 

Выпадающий список с кодами сценариев. Содержит все доступные (нескрытые) сценарии того же типа, что и текущий сценарий, содержащиеся в текущем домене.

Название: Сценарий
Код: scriptCodeAsync
Усл. видимости: да
По умолчанию: — 

Выпадающий список с кодами сценариев. Содержит все доступные (нескрытые) служебные сценарии, содержащиеся в текущем домене.

Название: Код сценария
Код: svcScriptCodeArg
Усл. видимости: да
По умолчанию: — 

Аргумент, определяющий код запускаемого сценария. Может указывать также коды скрытых сценарии.
При отсутствии сценария с указанным кодом, управление передается по ветке ошибки.

В мастер-домене в качестве кода сценария может быть указано значение "DOMAIN @ SCRIPT_CODE", где в качестве домена указывается название любого домена кластера, а в качестве кода - код содержащегося в этом домене сценария.
Такой режим используется для запуска контекстных сценариев звонка в домене и трансляции ему событий: поскольку звонок не принадлежит домену, то контекстный сценарий запускается в мастер-домене.
Настройка контекстного сценария производится в настройках мастер-домена.

Название: Ид в переменную
Код: uuidVariable
Усл. видимости: нет
По умолчанию: — 

Переменная для сохранения значения идентификатора запущенного сценария, по которому можно производить взаимодействие.

Название: Возврат управления
Код: takeOver
Усл. видимости: да
По умолчанию: Нет

Разрешает или запрещает возврат управления из вложенного сценария и продолжение работы по ветке дальше.

Название: Значения переменных
Код: varValuesT
Усл. видимости: да
По умолчанию: — 

Таблица начальных значений для локальных переменных запускаемого сценария.

Доступно только если выбранный режим отличается от "вложенного с объединением переменных".

Ключи - названия переменных запускаемого сценария.
Сопоставление происходит по именам переменных, значения присваиваются только тем переменным, которые определены в сценарии.

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

Установленные таким образом значения приоритетны перед значениями по умолчанию внутри запускамого сценария.

Название: Параметр 1
Код: param1
Усл. видимости: да
По умолчанию: — 

Первый параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(1) или через сохранение значения в компоненте Старт.

Название: Параметр 2
Код: param2
Усл. видимости: да
По умолчанию: — 

Второй параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(2).

Название: Параметр 3
Код: param3
Усл. видимости: да
По умолчанию: — 

Третий параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(3).

Название: Параметр 4
Код: param4
Усл. видимости: да
По умолчанию: — 

Четвертый параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(4).

Название: Параметр 5
Код: param5
Усл. видимости: да
По умолчанию: — 

Пятый параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(5).

Название: Параметр 6
Код: param6
Усл. видимости: да
По умолчанию: — 

Шестой параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(6).

Название: Параметр 7
Код: param7
Усл. видимости: да
По умолчанию: — 

Седьмой параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(7).

Название: Параметр 8
Код: param8
Усл. видимости: да
По умолчанию: — 

Восьмой параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(8).

Название: Параметр 9
Код: param9
Усл. видимости: да
По умолчанию: — 

Девятый параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(9).

Название: Параметр 10
Код: param10
Усл. видимости: да
По умолчанию: — 

Десятый параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(10).

Название: Прочие параметры
Код: paramsOther
Усл. видимости: да
По умолчанию: — 

JSON-массив, содержащий параметры 11, 12 и т.д. для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(N), где N > 10.

Название: Параметр 6
Код: param6
Усл. видимости: да
По умолчанию: — 

Шестой параметр для асинхронного служебного сценария. Доступ к значению осуществляется через функцию выражений startparam(6).

Название: Результат в переменную
Код: resultVar
Усл. видимости: да
По умолчанию: — 

Переменная, куда будет сохранено возвращаемое из вложенного сценария значение, установленное в компоненте 'Стоп'.
Доступно только для режимов запуска вложенного сценария.

Название: Переход
Код: transfer
Усл. видимости: нет
По умолчанию: — 

Компонент, которому передается управление при успешном запуске асинхронного служебного сценария, либо после возврата управления из вложенного сценария.

Название: Переход, ошибка
Код: transferError
Усл. видимости: да
По умолчанию: — 

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

  • отсутствие сценария по коду

  • отсутствие доступа к доменному центру

  • отсутствие роли svc

  • превышение допустимых лимитов

  • другое

См. также