Условия выгрузки: как не отправлять лишние данные в экспорт

Как настроить условия выгрузки в таблицах, JSON и XML: не отправлять пустые поля, отдельные узлы или целые элементы.

Условия выгрузки определяют, попадет ли выбранная часть данных в итоговый экспорт.

Например, можно не отправлять пустое описание, убрать из XML пустой тег или не выгружать строку таблицы без артикула.

Где открыть условия выгрузки

Где работаетеКак открытьЧто будет проверяться
ТаблицаОткройте настройки нужной колонки.Условие проверяет значение в строке. Если проверка не проходит, строка не попадает в экспорт.
JSONКликните по нужному ключу или значению в JSON-редакторе.На значении JSON вариант Для узла убирает ключ и сохраняет объект, а Для элемента целиком удаляет содержащий его объект массива.
XMLКликните по нужному тегу, атрибуту или значению в XML-редакторе.На листовом значении XML вариант Для узла оставляет пустой тег, а Для элемента целиком удаляет только выбранный листовой элемент; родительская запись остаётся. Чтобы удалить всю повторяющуюся запись, задайте условие на её узле и выберите дочернее поле как источник проверки.

Что выбрать: «Для узла» или «Для элемента целиком»

В JSON и XML в блоке условий есть выбор области. Он нужен, чтобы решить, какую часть данных убрать из экспорта, если условие не выполнено.

  • На значении JSON вариант Для узла убирает этот ключ и сохраняет объект. Для элемента целиком удаляет содержащий его объект массива.
  • На листовом значении XML вариант Для узла убирает текст, но оставляет пустой тег. Для элемента целиком удаляет только этот листовой узел; родительская запись остаётся.
  • Чтобы исключить всю JSON/XML-запись, задайте условие на её повторяющемся узле, выберите дочернее поле как источник проверки, затем укажите До преобразований и Для элемента целиком.
  • В таблице переключателя области нет: невыполненное условие выгрузки исключает всю строку.
Выбор Для узла и Для элемента целиком в условиях выгрузки XML
В XML область считается относительно выбранного узла. Условие на листовом значении не удаляет родительскую запись.

Что задается в условии

НастройкаЧто означает
Источник проверкиТекущее значение, другой узел XML/JSON, соседняя колонка таблицы или системное значение.
Момент проверкиДо преобразований или После преобразований. Для рецепта, который должен одинаково работать в таблице, JSON и XML, используйте До преобразований и проверяйте исходное значение. После преобразований используйте только в профиле конкретного формата после проверки предпросмотра и результата.
ОператорПустое, Не пустое, Равно, Больше, Содержит подстроку, Регулярное выражение и другие проверки.

Примеры результата

JSON: убрать пустой ключ description

Условие задано в настройках значения description: Текущее значение, До преобразований, Не пустое, Для узла. Значение пустое, поэтому ключ description не попадает в результат, а объект товара остаётся.

Входит

JSON
{
  "sku": "SKU-1001",
  "name": "Куртка",
  "description": ""
}

На экспорте

JSON
{
  "sku": "SKU-1001",
  "name": "Куртка"
}

XML: сохранить запись и оставить пустой тег description

Условие задано на листовом значении внутри description: Текущее значение, До преобразований, Не пустое, Для узла. Значение не выгружается, но XML-сериализатор оставляет пустой тег <description>, а родительский offer сохраняется.

Входит

XML
<?xml version="1.0" encoding="UTF-8"?>
<offer>
  <sku>SKU-1001</sku>
  <name>Куртка</name>
  <description></description>
</offer>

На экспорте

XML
<?xml version="1.0" encoding="UTF-8"?>
<offer>
  <sku>SKU-1001</sku>
  <name>Куртка</name>
  <description></description>
</offer>

Таблица: не выгружать строку с пустым обязательным полем

В настройках колонки sku выберите Не пустое. Если sku пустой, в результат не попадет вся строка.

skunameЧто будет на экспорте
SKU-1001JacketСтрока выгружается.
No SKU itemСтрока не выгружается.

Чем это отличается от действия в преобразованиях

В правилах преобразований есть группа Управление выгрузкой. Это действие меняет обработку выбранного значения; оно не решает, убирать ли строку таблицы, JSON-узел или XML-элемент из экспорта.

  • Не загружать поле — действие преобразования. Оно очищает только текущее итоговое значение, завершает цепочку правил для него и не удаляет строку или родительский JSON/XML-элемент.
  • Пропустить пропускает текущее правило преобразования и продолжает цепочку дальше.
  • Для одинакового фильтра записи во всех форматах используйте Условия выгрузки. В таблице переключателя области нет: невыполненное условие исключает строку. В JSON/XML откройте повторяющийся узел записи, например item, выберите дочернее поле как источник проверки и укажите До преобразований и Для элемента целиком.

Как выбрать механизм

ЗадачаЧто использовать
Убрать пустой ключ из JSONУсловие выгрузки на этом JSON-значении: Не пустое и Для узла.
Убрать пустой тег из XMLУсловие выгрузки на листовом XML-значении: Не пустое и Для элемента целиком. Удаляется только выбранный тег; родительская запись остаётся.
Убрать строку таблицы с пустым SKUУсловие выгрузки в настройках колонки sku: Не пустое.
Только изменить значение поляПравило в блоке Преобразования.