Условие
Компонент используется в точке разветвления сценария в качестве переключателя между вариантами обработки данных. В соответствии с заданными ему условиями выполняется только одна ветвь сценария и блокируется выполнение всех остальных.
Выявление активной ветви происходит по следующему принципу:
- Ветви проверяются на истинность последовательно по списку сверху вниз, начиная с самой первой.
- При выявлении ветви со значением "истина" проверка останавливается, ветвь становится активной, а остальные блокируются, даже если ниже по списку остались истинные.
- Если все ветви примут значение "ложь", то будет активизирована специальная ветвь Иначе.
Порты
Изначально входных и выходных портов нет, они создаются пользователем в мастере настройки. При первоначальной настройке достаточно добавить входные порты и сохранить настройки компонента. Настройка списка условий при этом не требуется, так как в компонент ещё не передана структура входных данных. Порты могут быть следующих типов:
Вход
- Входные переменные — набор переменных.
- Входной источник данных — таблица данных.
Выход
- Выходные переменные — набор переменных.
- Выходной набор данных — таблица данных.
Мастер настройки
Шаг 1. Настройка портов узла
Здесь задается наличие необходимых портов. Каждому порту можно задать тип, имя и название, которое будет отображаться при наведении курсора на него.
- Добавить — создать новый порт входа:
- Переменные — для переменных.
- Таблица — для таблицы.
- Дерево данных — для дерева данных.
- Переместить вниз, Переместить вверх — путем смещения выделенного порта определить его положение относительно узла компонента.
- Редактировать — редактировать параметры порта.
- Передавать на выход — для выделенного входного порта будет создан порт выхода в каждой ветви.
- — удалить порт.
- — удалить все порты.
Шаг 2. Настройка списка условий
Список ветвей условия — содержит варианты дальнейшего выполнения сценария.
- Добавить — добавить новую ветвь условия.
- Переместить вниз, Переместить вверх — установить приоритет выделенной ветви путем её смещения относительно других ветвей.
- — удалить ветвь.
- — удалить все ветви условий.
Условие — область конфигурации условий для конкретной ветви, отображается при выделении ветви в списке.
- — добавить в ветвь новое условие, после нажатия открывается окно для его настройки:
- Поле — содержит список всех переменных, столбцов таблиц и указатель записей таблиц, поданных на входные порты компонента. Выбранный объект будет использован для сравнения.
- Агрегация — содержит список методов агрегации, применимых к полям таблиц. Список недоступен для полей-переменных.
Вид агрегации | ||||||
---|---|---|---|---|---|---|
Сумма | • | • | • | |||
Минимум | • | • | • | • | • | • |
Максимум | • | • | • | • | • | • |
Среднее | • | • | • | • | ||
Количество пропусков | • | • | • | • | • | • |
Первый | • | • | • | • | • | • |
Последний | • | • | • | • | • | • |
- Условие — выбор метода сравнения.
- Сравниваемое значение — значение, с которым будет сравниваться выбранный объект.
- И/ИЛИ — кнопка-переключатель появляется между двумя условиями в ветви:
- И — связываемые условия дадут значение "истина", если они оба истинны.
- ИЛИ — связываемые условия дадут значение "истина", если истинно хотя бы одно из них.
- Удалить все условия — удалить все условия для выбранной ветви.
Примечание: условие проверяется на атомарных значениях, например, "A > 1". Таким значением может быть переменная. Если же на вход подана таблица, то поле обозначает не одно значение, а целую колонку. В этом случае данную колонку необходимо свести к одному значению с помощью методов агрегации.
Важно: при написании сложных условий приоритет будет у оператора И. Например, сложное условие вида: "A ИЛИ B И C ИЛИ D И E И F" будет выполняться следующим образом: "A ИЛИ (B И C) ИЛИ (D И E И F)".
Режим отладки — применяется для проверки корректности данных на выходных портах вне зависимости от условий. Активны будут ветви, указанные в списке Выполнять ветвь условия, который включает в себя:
- Список пользовательских ветвей — добавленные пользователем ветви, можно выбрать одну из них.
- Все ветви — активирует выполнение всех ветвей, в том числе ветвь Иначе.
- Иначе — активирует выполнение только ветви Иначе.