Задача и предварительные условия

Позвольте пользователю выбирать регион и минимальную сумму без редактирования самого потока.

В примере используются демонстрационные данные и настройки. Проверьте ожидаемый результат в своей среде до подключения рабочих получателей. Идентификаторы demo_* условны: выберите собственные учебные подключения или источники в редакторе. JSON ниже показывает структуру блоков и связей, а не готовый архив потока для переноса.

Учебные входные данные

sales.csv

Order;Region;Amount
O1;North;1200
O2;North;400
O3;South;900

Блоки, связи и точные настройки

Поясняющая схемаУвеличить ↗12. Фильтр с параметром запуска. Схема примера 12: 5 блоков, 4 связи. Идентификаторы узлов и порты настроенной схемы сохранены.
Схема потока 12

Схема примера 12: блоков — 5, связей — 4. Идентификаторы узлов и порты настроенной схемы сохранены.

Добавьте перечисленные блоки в конструкторе, откройте свойства каждого и задайте эти значения. Имена demo_* обозначают учебные источники и подключения.

БлокНастройка
1
Файл
src
  • Роль: source
  • Источник: demo_param_sales
  • Настройки чтения:
    • Лист: CSV
    • Диапазон: A1:C4
    • Первая строка — заголовок: так
    • Разделитель: ;
2
Параметры запуска
params
  • wizard: так
  • Заголовок: Відбір продажів
  • Поля:
      • Имя: SelectedRegion
      • Подпись: Регіон
      • Тип: text
      • Обязательно: так
      • Значение: North
      • Имя: MinAmount
      • Подпись: Мінімальна сума
      • Тип: number
      • Обязательно: так
      • Значение: 500
3
Фильтрация
filter
  • Режим: all
  • Условия отбора:
      • column: Region
      • Эксплуатация: eq
      • value_mode: parameter
      • Блок параметров: params
      • Параметр: SelectedRegion
      • column: Amount
      • Эксплуатация: gte
      • Числовое сравнение: так
      • value_mode: parameter
      • Блок параметров: params
      • Параметр: MinAmount
4
Сопоставление столбцов
map
  • Режим: columns
  • Столбцы:
      • Имя: Order
      • Значение: Order
      • Имя: Region
      • Значение: Region
      • Имя: Amount
      • Значение: Amount
5
Экспорт данных
out
  • Формат: csv
  • Имя файла: selected_sales
  • Назначение: download
  • Разделитель: ;
  • Часовой пояс: Europe/Kyiv

Связи портов

  • src out → params in
  • params out → filter in
  • filter out → map in
  • map out → out in
Полная конфигурация схемы в JSON
{
  "version": 3,
  "nodes": [
    {
      "id": "src",
      "type": "file",
      "label": "src",
      "config": {
        "role": "source",
        "source_id": "demo_param_sales",
        "options": {
          "sheet": "CSV",
          "range": "A1:C4",
          "header": true,
          "delimiter": ";"
        }
      }
    },
    {
      "id": "params",
      "type": "parameters",
      "label": "params",
      "config": {
        "wizard": true,
        "title": "Відбір продажів",
        "fields": [
          {
            "name": "SelectedRegion",
            "label": "Регіон",
            "kind": "text",
            "required": true,
            "value": "North"
          },
          {
            "name": "MinAmount",
            "label": "Мінімальна сума",
            "kind": "number",
            "required": true,
            "value": 500
          }
        ]
      }
    },
    {
      "id": "filter",
      "type": "filter",
      "label": "filter",
      "config": {
        "mode": "all",
        "predicates": [
          {
            "column": "Region",
            "op": "eq",
            "value_mode": "parameter",
            "parameter_block": "params",
            "parameter": "SelectedRegion"
          },
          {
            "column": "Amount",
            "op": "gte",
            "numeric": true,
            "value_mode": "parameter",
            "parameter_block": "params",
            "parameter": "MinAmount"
          }
        ]
      }
    },
    {
      "id": "map",
      "type": "mapping",
      "label": "map",
      "config": {
        "mode": "columns",
        "columns": [
          {
            "name": "Order",
            "value": "Order"
          },
          {
            "name": "Region",
            "value": "Region"
          },
          {
            "name": "Amount",
            "value": "Amount"
          }
        ]
      }
    },
    {
      "id": "out",
      "type": "export",
      "label": "out",
      "config": {
        "format": "csv",
        "filename": "selected_sales",
        "destination": "download",
        "delimiter": ";",
        "timezone": "Europe/Kyiv"
      }
    }
  ],
  "edges": [
    {
      "source": "src",
      "target": "params",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "params",
      "target": "filter",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "filter",
      "target": "map",
      "source_port": "out",
      "target_port": "in"
    },
    {
      "source": "map",
      "target": "out",
      "source_port": "out",
      "target_port": "in"
    }
  ]
}

Ожидаемый результат

При SelectedRegion=North и MinAmount=500 возвращается только O1=1200. При SelectedRegion=South и MinAmount=500 — только O3=900.

Запуск и проверка

  1. Сохраните поток; параметры должны предшествовать фильтру в той же активной ветке. После фильтрации сопоставление оставляет только Order, Region и Amount.
  2. Запустите интерактивно, оставьте North и 500 и проверьте O1.
  3. Запустите снова с South; получите O3 без изменения схемы.

Частые ошибки

  • Укажите parameter_block=params: одного имени поля недостаточно для определения блока-источника.
  • mode=any пропускает строки, соответствующие только одному условию.
  • Не называйте параметр Region: этот столбец уже существует в источнике, а блок параметров добавляет собственные столбцы. Поэтому используется SelectedRegion.