Условие Условие

Компонент используется в точке разветвления сценария в качестве переключателя между вариантами обработки данных. В соответствии с заданными ему условиями выполняется только одна ветвь сценария и блокируется выполнение всех остальных.

Выявление активной ветви происходит по следующему принципу:

  1. Ветви проверяются на истинность последовательно по списку сверху вниз, начиная с самой первой.
  2. При выявлении ветви со значением «истина» проверка останавливается, ветвь становится активной, а остальные блокируются, даже если ниже по списку остались истинные.
  3. Если все ветви примут значение «ложь», то будет активизирована специальная ветвь Иначе.

Порты

Изначально входных и выходных портов нет, они создаются пользователем в мастере настройки. При первоначальной настройке достаточно добавить входные порты и сохранить настройки компонента. Настройка списка условий при этом не требуется, так как в компонент ещё не передана структура входных данных. Порты могут быть следующих типов:

Вход

  • Входные переменные Входные переменные — набор переменных.
  • Входной источник данных Входной источник данных — таблица данных.

Выход

  • Выходные переменные Выходные переменные — набор переменных.
  • Выходной набор данных Выходной набор данных — таблица данных.

Мастер настройки

Шаг 1. Настройка портов узла

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

  • Создать новый порт Добавить — создать новый порт входа:
    • Для переменных Переменные — для переменных.
    • Для таблицы Таблица — для таблицы.
    • Для дерева данных Дерево данных — для дерева данных.
  • Смещение порта вниз Переместить вниз, Смещение порта вверх Переместить вверх — путем смещения выделенного порта определить его положение относительно узла компонента.
  • Редактировать параметры порта Редактировать — редактировать параметры порта.
  • Создание выхода Передавать на выход — для выделенного входного порта будет создан порт выхода в каждой ветви.
  • Удалить порт — удалить порт.
  • Удалить все порты — удалить все порты.

Шаг 2. Настройка списка условий

Список ветвей условия — содержит варианты дальнейшего выполнения сценария.

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

Ниже располагается таблица — область конфигурации условий для конкретной ветви. Строки в таблице отображаются при выделении ветви в Списке ветвей условия... . Каждая строка таблицы представляет собой условие фильтрации либо служебную строку с оператором ИЛИ. Если между условиями нет строки ИЛИ, то считается, что они объединены через логическое И.

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

На панели инструментов и в контекстном меню доступны следующие команды:

  • Добавить (Alt+N) — добавляет новое условие.
  • Добавить оператор ИЛИ (Alt+O) — добавляет логический оператор ИЛИ.
    • И — связываемые условия дадут значение «истина», если они оба истинны.
    • ИЛИ — связываемые условия дадут значение «истина», если истинно хотя бы одно из них.
  •  Клонировать (Ctrl+D) — добавляет новое условие с параметрами, как у выбранного условия.
  •  Переместить вверх (Ctrl+Up) — поднять условие или логический оператор ИЛИ на одну позицию вверх по списку.
  •  Переместить вниз (Ctrl+Down) — опустить условие или логический оператор ИЛИ на одну позицию вниз по списку.

Также поля и операторы можно перемещать перетягиванием выше или ниже.

Важно:

  • Условие проверяется на атомарных значениях, например, "A > 1". Таким значением может быть переменная. Если же на вход подана таблица, то поле обозначает не одно значение, а целую колонку. В этом случае данную колонку необходимо свести к одному значению с помощью методов агрегации.

  • При написании сложных условий приоритет будет у оператора И. Например, сложное условие вида: "A ИЛИ B И C ИЛИ D И E И F" будет выполняться следующим образом: "A ИЛИ (B И C) ИЛИ (D И E И F)".

Таблица настройки условия содержит следующие столбцы:

  • Поле — содержит список переменных, столбцов таблиц, узлов дерева (для данных в древовидной форме) со всех входных портов узла. Выбранный объект будет использован для сравнения.
  • Агрегация — содержит список методов агрегации, применимых к полям таблиц. Список недоступен для полей-переменных.
Агрегация полей и возможные типы данных:
Вид агрегации
Сумма
Минимум
Максимум
Среднее
Количество пропусков
Первый
Последний                              
  • Отношение — выбор оператора из выпадающего списка: <,<=,>,>=,=,<>.
  • Значение — значение, с которым будет сравниваться выбранный объект. Значения задаются из выпадающего списка или вручную. Значения добавляются по клавише Enter, удаляются — по клавишам Backspace или Delete.
  • **Удалить все условия** Удалить все условия — удалить все условия для выбранной ветви.
  •  Удалить — удаляет выбранное условие.

Примечание: Если в уже существующем условии требуется изменить поле, и тип данных нового поля отличается от типа предыдущего поля, то значения агрегации и отношения корректируются:

  • Если текущее значение недопустимо для нового типа данных, оно заменяется на значение по умолчанию без оповещения пользователя.
  • Если новый тип несовместим со старым:
    • выполняется попытка конвертации старого значения к новому типу;
    • при неудаче устанавливается значение по умолчанию для нового типа.

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

  • Список пользовательских ветвей — добавленные пользователем ветви, можно выбрать одну из них.
  • Все ветви — активирует выполнение всех ветвей, в том числе ветвь Иначе.
  • Иначе — активирует выполнение только ветви Иначе.

Шаг 3. Описание узла

Автоматическая метка — переключатель режима формирования метки узла.

Если выбран режим Автоматическая метка и задана только одна ветвь условия, в качестве метки используется список уникальных меток полей (с указанием меток портов), входящих в условие. При включенном Режиме отладки перед этим списком добавляется слово Отладка, в противном случае — Условие.

Пользовательская метка задаётся вручную и не меняется автоматически. В этом режиме можно ввести любое текстовое описание. Рядом с полем ввода отображается значок обновления, который становится активным, если текущая пользовательская метка отличается от метки компонента по умолчанию. Нажатие на значок обновления восстанавливает метку компонента по умолчанию.

На этом шаге также можно задать описание узла на вкладке Заметка(markdown). При задании описания можно использовать синтаксис markdown, а результат верстки посмотреть на вкладке Предпросмотр. Описание команд панели инструментов приведено в статье Заметки.

Новости, материалы по аналитике, кейсы применения, активное сообщество