Обзор преобразования
Преобразование меняет значение поля уже после того, как столбец сопоставлен с полем. Это основной способ нормализовать данные: привести цены к нужному виду, убрать лишние пробелы, поменять регистр.
Как это устроено
К каждому полю профиля привязывается трансформер — одна операция и её параметры. Трансформер задаётся в редакторе поля профиля сопоставления.
Столбец поставщика → сопоставление с полем → трансформер → результат
Отдельного «редактора преобразований» нет: преобразование настраивается там же, где и сопоставление, — в карточке поля.
Доступные операции
| Операция | Что делает |
|---|---|
trim | Убирает пробелы по краям |
uppercase | Переводит в верхний регистр |
lowercase | Переводит в нижний регистр |
replace | Заменяет подстроку на другую |
regexp_replace | Заменяет по регулярному выражению |
decimal_normalize | Приводит число к десятичному виду, разбирая разделители |
numeric_normalize | Оставляет только цифры и приводит к целому |
boolean_normalize | Приводит значение к «да / нет» по набору значений |
value_map | Заменяет значения по словарю |
multiply | Умножает на коэффициент |
add | Прибавляет число |
subtract | Вычитает число |
divide | Делит на число |
round | Округляет |
ceil | Округляет вверх |
floor | Округляет вниз |
abs | Берёт модуль числа |
percentage | Умножает на процент из параметров |
chain | Последовательно применяет несколько операций к одному значению |
Параметры
Параметры задаются в формате JSON рядом с выбором трансформера. Набор параметров зависит от операции.
Примеры:
{ "factor": 1.35 }
{ "thousands_separator": " ", "decimal_separator": "," }
{ "search": "руб.", "replace": "" }
Частые случаи
- Разделители дробной части —
decimal_normalizeпревращает «1 234,56» в число - Наценка —
multiplyс коэффициентом1.35 - Округление до целых —
round - Чистка текста —
trim, затемuppercaseилиlowercase - Словарная замена —
value_map
Подробнее про числовые операции — в статье Коэффициенты.
Что преобразования не умеют
- Условных ветвлений нет. Нельзя написать «если цена больше 100, то…». Если значение должно зависеть от условия, используйте фильтры.
- Формул по нескольким полям нет. Трансформер применяется к одному
значению;
chain— тоже к одному, но в несколько шагов. - Работы с датами нет. Отдельной операции для дат в наборе нет.
- Объединения данных из нескольких файлов нет. Для этого есть отдельный сценарий обработки.
Преобразования сохраняются
Трансформер сохраняется вместе с профилем и применяется при каждой следующей обработке — в том числе к файлам, приходящим из фида поставщика. Исходный загруженный файл при этом не меняется: преобразуется результат.
Связанные статьи
- Коэффициенты — числовые операции
- Фильтры и правила отбора — отбор строк
- Поля — работа с полями
- Сохранённые маппинги — где настраиваются преобразования