Вызов сценария

Для того, чтобы из одного сценария запустить на выполнение другой сценарий создан кубик link scenario.

Настройка шага предусматривает три параметра:

  • Выбор исполняемого объекта (какой объект/объекты запустить в сценарий);

  • Выбор сценария для запуска;

  • Тип исполнения кубика (синхронный или асинхронный режим).

Выбор объекта

Платформа предусматривает возможность выбора объектов, которые будут обработаны в "слинкованном" сценарии.

  1. Текущий объект — тот объект, который "зашёл" в шаг вызова сценария и будет передан в "слинкованный".

  2. Объект из связанной структуры, указанный в поле типа "link". Если у объекта есть поле типа link и в нём записан id объекта в слинкованной структуре, то именно этот объект будет передан в вызываемый сценарий.

  3. Массив объектов. Список id объектов связанной структуры, указанный в поле arrayLink можно запустить в "слинкованном" сценарии.

В сценарий зашёл объект с id=start, дошёл до кубика link scenario, где выбран параметр "Текущий объект", значит в связанный сценарий зайдёт этот же объект.

Второй вариант, когда у объекта (id=start) имеет поле типа link со значением 1, то при выборе этого поля, в "слинкованный" сценарий будет передан объект с id=1 слинкованной структуры.

В третьем случае, если в поле arrayLink будет записано: 1,2,3, то в связанный сценарий зайдут объекты с id=1, id=2 и id=3 из связанной arrayLink'ом структуры.

Выбор сценария

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

Родительский сценарий "смотрит" на структуру parent, при запуске текущего объекта будут предложены сценарии, которые также работают со структурой parent.

В случае запуска объекта из поля link или arrayLink будут предложены сценарии, использующие структуру, на которую ссылаются эти поля.

Тип исполнения

Предусмотрено асинхронное и синхронное выполнение кубика link scenario.

  • При асинхронном типе: в процессе исполнения кубика "link scenario" объект не будет ждать исполнения слинкованного сценария и продолжит работу дальше, не дожидаясь окончания выполнения вызванного сценария.

  • В случае синхронного запуска, объект не перейдёт в следующий кубик, пока не выполнится "слинкованный" сценарий.

"Слинкованные" сценарии по умолчанию выполняются асинхронно. Если логика предусматривает синхронное (последовательное) исполнение такого сценария, в нём (вызываемом сценарии) необходимо включить однопоточность.