Как выполняются сценарии Loginom и зачем нужен Порт порядка выполнения

13 августа 2026
0 комментариев

Loginom автоматически оптимизирует выполнение Сценариев, запуская только Узлы, связанные цепочкой передачи данных, и используя параллельные вычисления. Однако в некоторых случаях порядок выполнения необходимо задавать вручную. Для этого предназначен Порт порядка выполнения.

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

За внешней простотой интерфейса стоит множество принципов оптимизации и ускорения, которые обеспечивают высокую скорость обработки данных. В статье рассматриваются некоторые из них, а также связанные с ними особенности построения Сценариев.

Почему Loginom не всегда выполняет Сценарий целиком

Чтобы Сценарии работали экономно, используется принцип ленивых вычислений. Если для решения задачи не нужны какие-то из предложенных расчетов, то они не выполняются. Есть три варианта выполнения Сценария:

  1. Выполнить все. Для этого есть специальная кнопка. Выполняются все Узлы Сценария, за исключением некоторых Узлов внутри Подмоделей (см. п. 3).
  2. Отдельный Узел. Loginom отслеживает цепочку данных, необходимых для выполнения Узла. Выполняется только эта цепочка.
  3. Подмодель. В этом случае отслеживается и выполняется цепочка данных, необходимая для выходного Порта (или ПортовПодмодели.
Кнопка Выполнить все

Кнопка Выполнить все

При определении необходимых вычислений Loginom проходит по цепочке передачи данных от целевого Узла к источникам данных (условно — справа налево). Далее Узлы выполняются слева направо. Рассмотрим, как это работает, на примере конкретного Сценария.

Пример Сценария

Пример Сценария

Требуется загрузить два файла, объединить их, отфильтровать данные и выгрузить два файла Excel, один из которых — отчет об исключениях.

На Узел «Выгрузка данных» приходит запрос на выполнение. В этом случае Loginom перед запуском расчетов проходит по цепочке от него назад, выбирает Узлы, которые должны быть выполнены для решения поставленной задачи. И далее выполняется только то, что необходимо для выполнения целевого Узла.

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


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

Параллельное выполнение

Еще один механизм повышения производительности — параллельные вычисления.

Если в Сценарии есть независимые Узлы обработки данных, Loginom по возможности выполняет их одновременно, используя доступные ядра процессора и другие ресурсы системы.

В большинстве случаев это дает заметный выигрыш по времени и позволяет быстрее получать результат без дополнительных настроек со стороны пользователя.

Когда возникают проблемы

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

  • не выполняются ответвления Сценария;
  • не выполняются Узлы внутри Подмоделей;
  • возникают ошибки, связанные с последовательностью выполнения операций.

Например, для проверки корректности работы в Сценарии закладывают отчеты как раз в форме ответвлений. И так как они никуда внутри Сценария не передают данные, без дополнительных манипуляций эти Узлы не выполняются.

С Подмоделями подобные ситуации встречаются особенно часто. Когда пользователь видит запущенную Подмодель, ему может показаться, что внутри все Узлы выполнены. На практике Loginom не запускает вычисления, если в результате не формируются необходимые для итоговых расчетов данные.

Важно понимать: это не ошибка платформы. Наоборот, именно благодаря такому поведению Loginom работает быстрее и экономнее. Однако в некоторых Сценариях требуется явно указать, какие действия должны выполняться обязательно.

Когда задавать порядок выполнения вручную

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

  • Сценарий отправляет запрос к REST-сервису и затем обрабатывает полученный ответ;
  • данные выгружаются в базу данных, после чего из нее выполняется чтение;
  • создаются файлы, которые должны быть использованы на следующем шаге;
  • выполняется рассылка уведомлений после завершения обработки данных.

Пользователь ожидает, что эти операции будут выполняться последовательно. Платформа же анализирует связи по данным внутри Сценария: если их нет, то может выполнить операции параллельно.

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

Порт порядка выполнения

Для управления последовательностью выполнения Узлов в Loginom есть Порт порядка выполнения.

Этот механизм позволяет указать платформе, какие Узлы должны запускаться строго после завершения других Узлов, даже если между ними отсутствует поток данных.

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

Кнопка Настроить порядок выполнения

Кнопка Настроить порядок выполнения

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

Настройка порядка выполнения особенно важна, если Сценарий запускается в автоматическом режиме (через Планировщик задач или BatchLauncher).

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

Ленивые вычисления и параллельное выполнение — важные механизмы повышения производительности Loginom. Благодаря им Сценарии выполняются быстрее и используют меньше ресурсов. Однако в ситуациях, когда важна последовательность выполнения определенных действий, рекомендуется использовать Порт порядка выполнения.

Существуют ситуации, когда в Сценарии есть Подмодель без выходных Портов. В видеопримере ниже внутри такой Подмодели происходит импорт из двух файлов Excel, объединение и экспорт в третий файл Excel. Без дополнительной настройки при ее запуске Узлы, находящиеся внутри, не выполняются: нет цепочки передачи данных наружу.

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

Другой распространенный случай — наличие нескольких ветвей внутри Подмодели, только одна из которых связана с выходным Портом. При запуске Подмодели выполняются только те Узлы, которые участвуют в формировании требуемого результата. Ответвление остается невыполненным.

Чтобы оно тоже запускалось, нужно соединить Порты порядка выполнения последнего Узла ответвления и Узла, который связан с выходным Портом Подмодели.

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

При подключении к внешним сервисам часто необходимы временные ограничения. В примере ниже показано, как делается пауза перед подключением по API. Узел «таймаут» соединяется с предыдущим и последующим узлами через Порты порядка выполнения.

Есть специальный демопример «Использование портов порядка выполнения». В нем разбираются типовые проблемы, а именно:

  • настройка порядка выполнения внутри Подмодели;
  • настройка последовательности выполнения в сложном Сценарии;
  • порядок работы с базами данных;
  • пауза в REST-запросе;
  • рассылка.

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

Другие материалы по теме:

Технические особенности логирования в Loginom

Планировщик задач в Loginom

Смотрите также

Подписывайтесь на телеграмм-канал Loginom
Новости, материалы по аналитике, кейсы применения, активное сообщество
Подписаться