Управление ходом выполнения
Последовательность выполнения
В общем случае последовательность выполнения узлов задается соединением их входных и выходных портов. Узлы выполняются последовательно от выходного порта к входному. Однако, иногда последовательность обработки данных не может быть задана таким образом. Например, если необходимо выгрузить данные во внешний источник и следующим действием загрузить уже модифицированные данные из внешнего источника. В этом случае для задания порядка выполнения узлов применяют служебные порты (см. рисунок 1).
![Использование служебных портов для задания последовательности выполнения узлов.](run-order-1.png)
Кроме того, Loginom позволяет параллельно выполнять нескольких ветвей Сценария. Для этого не требуются дополнительные настройки, достаточно выполнить параллельное соединение узлов. Например, следующие цепочки узлов будут выполнены параллельно (см. рисунок 2):
![Параллельность выполнения веток сценария.](run-order-2.png)
Такая возможность позволяет сократить время выполнения Сценария за счет более полного использования вычислительных мощностей компьютера.
Настройка последовательности выполнения узлов
Иногда необходимо вручную задать последовательность выполнения узлов в Сценарии. Для этого используют порт порядка выполнения .
Для отображения этих портов необходимо воспользоваться кнопкой панели инструментов области построения Сценариев.
Пример настройки последовательности выполнения узлов см. в разделе Служебные порты.
Цикл
Цикл — управляющая конструкция, предназначенная для организации многократного исполнения набора инструкций.
Loginom предоставляет возможность использования следующих разновидностей циклов:
- Цикл со счётчиком — аналог "FOR … TO …";
- Цикл с постусловием — аналог "DO … WHILE …";
- Цикл по набору данных (групповая обработка) — аналог "FOR EACH".
Использование Подмоделей позволяет легко реализовать вложенность циклов.
Имеется возможность выполнения Циклов в несколько потоков, что может существенно сократить время обработки.
Условие (ветвление)
Условие — управляющая конструкция, обеспечивающая ветвление алгоритма в зависимости от значения некоторого выражения (аналог "SWITCH... CASE..."). В зависимости от заданного условия ход выполнения Сценария может пойти по одной из возможных веток (см. рисунок 3).
![Выполнение одной из веток сценария в зависимости от условия.](run-order-3.png)