Стартовый шаг

Стартовый шаг задаёт базовые настройки работы всего сценария. Именно этот шаг настраивается при его создании и редактировании, а также при переходе со страницы списков сценариев.

Основные настройки

Имя сценария

Пользовательское имя сценария. Отображается в колонке Name списка сценариев.

Целевая структура данных

Именно в эту структуру будет "смотреть" сценарий.

Папка назначения

Группа, которой принадлежит сценарий.

Условие вхождения объекта в сценарий

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

Фильтр объектов

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

Параметры

Объявление контекстных переменных сценария и их значений.

Дополнительные настройки

Логировать ошибки

При включении опции все ошибки, которые проявились при работе сценария, будут отражаться в специальной системной структуре SystemExceptions.

В структуре предусмотрены поля: id, msg, pilotID, stepID, objectID. Соответственно, на каждую ошибку будет создан объект с указанием сообщения, ID сценария, шага и объекта на которых произошла ошибка.

Новые объекты с информацией об ошибках появляются в течение 10 минут с момента обнаружения. Связано с особенностями механизма обработки данных.

Однопоточный режим (Single-threaded)

Все сценарии и шаги в нашей системе выполняются асинхронно. Это значит, что они не выстроены в очередь, а выполняются параллельно. Сделано это для повышения производительности.

В платформе предусмотрен однопоточный режим. Он используется в случае необходимости использования механизмов однопоточности (с некоторым уровнем распараллеливания), а также при синхронном запуске сценария.

Пример

У вас есть 3 товара. В каждом из товаров есть ссылка на заказ. Вам необходимо собрать список товаров в заказе.

Задача сценария — пройти по ссылке в каждом товаре и добавить его в поле со списком.

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

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

Ключ блокировки (Lock key)

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

В качестве ключа очереди стоит выбирать ID объекта, к которому обращается множество объектов из сценария. Ключ очереди поддерживает шаблонизацию, например - {{current_object_ID}}.

Важно!

Очередь живет в рамках одного сценария.

Время блокировки (в секундах)

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

Глобальная блокировка (Global lock)

Как и говорилось ранее, сценарии выполняются асинхронно, но может возникнуть необходимость синхронизации параллельных процессов, для этого и существует Глобальная очередь (global lock). При активации параметра очередь будет межсценарной. Тогда, если один из Ваших процессов работает, второй будет ожидать конца его исполнения.

Важно!

Есть возможность взятия лока непосредственно в JS SDK ($D.tryLock), подробнее в списке методов.

Системное имя сценария

Его невозможно изменить, но можно скопировать. Значение этого поля используется для запуска сценария с помощью внешнего запроса.

Ограничение на размер лога

В настройках сценария можно указать ограничения на размер лога:

Максимальный размер лога (KB): Хранить указанное количество последних сообщений в логах в KB. Значение по умолчанию: 100000KB.

Максимальный размер в строках (шт.): Хранить указанное количество последних сообщений в логах в количестве сообщений. Значение по умолчанию: 100000 строк.