Экспорт данных (EXPORT)
Оператор эк спорта данных создает действие, которое для всех наборов объектов, для которых значение заданного свойства (условия) не равно NULL
, читает значения других заданных свойств, после чего сохраняет их в файл в заданном формате.
Условие в этом операторе можно не задавать, в этом случае оно считается равным дизьюнкции всех экспортируемых свойств (то есть хотя бы одно из экспортируемых свойств должно быть не NULL
).
Как и для других операций со множествами, условие должно быть таким, чтобы операция была корректной.
Общий случай
Стоит отметить, что экспорт данных является частным случаем (синтаксическим сахаром) экспорта форм, в котором экспортируемая форма создается автоматически с именем export
и состоит из:
- одной группы объектов с именем
value
, объекты котор ой соответствуют параметрам экспортируемых свойств (не создается, если все параметры экспортируемых свойств являются фиксированными значениями). - экспортируемых свойств. В качестве группы свойств для создаваемых свойств на форме при этом используется встроенная группа
System.private
, а в качестве группы отображения - созданная группа объектов. Если экспортируемое свойство одно и не имеет имени, соответствующее свойство на форме создается с именемvalue
. - фильтра равного заданному условию.
- заданных порядков
Соответственно, поведение оператора экспорта данных (например, определение имен результирующих колонок / ключей, обработка значений value
и т.п.) полностью определяется поведением оператора экспорта формы (как если бы ему параметром передали вышеописанную форму).
Язык
Для объявления действия, экспортирующего данные, используется оператор EXPORT
.
Примеры
CLASS Store;
name = DATA STRING[20] (Sku);
weight = DATA NUMERIC[10,2] (Sku);
in = DATA BOOLEAN (Store, Sku);
exportSkus (Store store) {
// выгружаем в DBF все Sku, для которых задано in (Store, Sku) для нужного склада
EXPORT DBF CHARSET 'CP866' FROM id(Sku s), name(s), weight(s) WHERE in(store, s);
// выгружает CSV без строки заголовков и без экранирования спецсимволов
EXPORT CSV NOHEADER NOESCAPE FROM id(Sku s), name(s), weight(s) WHERE in(store, s);
// выгружает JSON, сортируем по свойству name[Sku] в порядке убывания
EXPORT FROM id(Sku s), name(s), weight(s) WHERE in(store, s) ORDER name(s) DESC;
// выгружает JSON {"ff":"HI"}, так как по умолчанию получает имя value, а платформа объект {"value":"HI"}
// автоматически преобразует в "HI"
EXPORT FROM ff='HI';
// выгружает JSON "HI", так как по умолчанию получает имя value, а платформа объект {"value":"HI"}
// автоматически преобразует в "HI"
EXPORT FROM 'HI';
}