Стартовый шаг задаёт базовые настройки работы всего сценария. Именно этот шаг настраивается при его создании и редактировании, а также при переходе со страницы списков сценариев.
Пользовательское имя сценария. Отображается в колонке Name списка сценариев.
Именно в эту структуру будет "смотреть" сценарий.
Группа, которой принадлежит сценарий.
Запускать сценарий при появлении новых объектов в целевой структуре, по изменению объектов, или по расписанию. По умолчанию выставлено условие входа объекта "Повторять только один раз".
При выборе запуска сценария по расписанию, в него попадают только те объекты, которые удовлетворяют условиям фильтра.
Объявление контекстных переменных сценария и их значений.
При включении опции все ошибки, которые проявились при работе сценария, будут отражаться в специальной системной структуре SystemExceptions.
В структуре предусмотрены поля: id, msg, pilotID, stepID, objectID. Соответственно, на каждую ошибку будет создан объект с указанием сообщения, ID сценария, шага и объекта на которых произошла ошибка.
Новые объекты с информацией об ошибках появляются в течение 10 минут с момента обнаружения. Связано с особенностями механизма обработки данных.
Все сценарии и шаги в нашей системе выполняются асинхронно. Это значит, что они не выстроены в очередь, а выполняются параллельно. Сделано это для повышения производительности.
В платформе предусмотрен однопоточный режим. Он используется в случае необходимости использования механизмов однопоточности (с некоторым уровнем распараллеливания), а также при синхронном запуске сценария.
У вас есть 3 товара. В каждом из товаров есть ссылка на заказ. Вам необходимо собрать список товаров в заказе.
Задача сценария — пройти по ссылке в каждом товаре и добавить его в поле со списком.
При асинхронной обработке вы рискуете потерять 1 товар (или более, в зависимости от объема списка), т.к. сценарий будет одновременно обращаться к полю списка и получать неактуальное значение.
Чтобы избежать этой ситуации, используется однопоточность, которая выстроит объекты в очередь друг за другом.
Выстраивать все объекты в одну очередь не всегда разумно (хотя может сложиться и такая необходимость), и это вредит времени исполнения, поэтому существует возможность распределения очереди по ключу.
В качестве ключа очереди стоит выбирать ID объекта, к которому обращается множество объектов из сценария. Ключ очереди поддерживает шаблонизацию, например - {{current_object_ID}}.
Время жизни лока — значение, гарантирующее, что в случае подвисания обработки блокировка сценария будет снята.
Как и говорилось ранее, сценарии выполняются асинхронно, но может возникнуть необходимость синхронизации параллельных процессов, для этого и существует Глобальная очередь (global lock). При активации параметра очередь будет межсценарной. Тогда, если один из Ваших процессов работает, второй будет ожидать конца его исполнения.
Есть возможность взятия лока непосредственно в JS SDK ($D.tryLock), подробнее в списке методов.
Его невозможно изменить, но можно скопировать. Значение этого поля используется для запуска сценария с помощью внешнего запроса.
В настройках сценария можно указать ограничения на размер лога:
Максимальный размер лога (KB): Хранить указанное количество последних сообщений в логах в KB. Значение по умолчанию: 100000KB.
Максимальный размер в строках (шт.): Хранить указанное количество последних сообщений в логах в количестве сообщений. Значение по умолчанию: 100000 строк.