Оператор IMPORT
Оператор IMPORT
- создание действия, импортирующего данные из заданного файла в заданные свойства (параметры) или, в общем случае, в заданную форму.
Синтаксис
IMPORT [importFormat] FROM fileExpr importDestination [DO actionOperator [ELSE elseActionOperator]]
IMPORT formName [importFormat] [FROM (fileExpr | (groupId1 = fileExpr1 [, ..., groupIdM = fileExprM])]
importFormat
может задаваться одним из следующих вариантов:
JSON [CHARSET charsetStr]
XML [ATTR] [CHARSET charsetStr]
CSV [separator] [HEADER | NOHEADER] [ESCAPE | NOESCAPE] [CHARSET charsetStr]
XLS [HEADER | NOHEADER] [SHEET (sheetExpr | ALL)]
DBF [CHARSET charsetStr]
TABLE
importDestination
может задаваться одним из следующих вариантов:
TO [(objClassId1, objClassId2, ..., objClassIdK)] propertyId1 [= columnId1], ..., propertyIdN [= columnIdN] [WHERE whereId]
FIELDS [(objClassId1 objAlias1, objClassId2 objAlias1, ..., objClassIdK objAliasK)] propClassId1 [propAlias1 =] columnId1 [NULL], ..., propClassIdN [propAliasN =] columnIdN [NULL]
Описание
Оператор IMPORT
создает действие, которое импортирует данные из файла в значения заданных свойств или в заданную форму.
Если формат импортируемого файла не задан, то он автоматически определяется, в зависимости от класса импортируемого файла (или от расширения, если этот класс равен FILE
), следующим образом:
Формат | Расширение | Класс |
---|---|---|
JSON | json | JSONFILE |
XML | xml | XMLFILE |
CSV | csv | CSVFILE |
XLS | xls или xlsx | EXCELFILE |
DBF | dbf | DBFFILE |
TABLE | table | TABLEFILE |
Для автоматического определения плоского формата файла по его расширению используется первый переданный файл
Параметры
Источник импорта
-
fileExpr
Выражение, значением которого является импортируемый файл. Значение выражения должно быть объектом файлового класса (
FILE
,RAWFILE
,JSONFILE
и т. д.). Если при импорте формы это выражение не указано, то по умолчанию используется выражениеSystem.importFile()
. -
groupId1, ..., groupIdM
Имена групп объектов импортируемой формы, для которых необходимо импортировать данные. Простые идентификаторы. Используется только для импорта формы из плоских форматов.
-
fileExpr1 , ..., fileExprM
Выражения, значения которых являются файлами, которые необходимо импортировать для заданных групп объектов. Значения выражений должны быть объектами файлового класса (
FILE
,RAWFILE
,JSONFILE
и т. д.). Используется только для импорта формы из плоских форматов. Для пустой группы объектов используется имяroot
.
Формат импорта
-
ATTR
Ключевое слово, указывающее на чтение значений из атрибутов элемента. Если не указывается, то чтение производится из дочерних элементов. Применяется только для импорта XML.
-
separator
Разделитель в CSV файле. Строковый литерал. Если не указывается, то по умолчанию берётся разделитель
;
. -
HEADER
|NOHEADER
Ключевые слова, указывающие на присутствие (
HEADER
) или отсутствие (NOHEADER
) в CSV / XLS файле строки заголовка, в которой содержатся имена колонок. По умолчанию используетсяNOHEADER
.При использовании опции
NOHEADER
:- именами колонок считаются :
A
,B
, ...,Z
,AA
, ...,AE
, ... - если колонка не найдена / не соответствует типу свойства назначения, значением этой колонки считается значение
NULL
(в остальных форматах импорта в этих случаях платформа выдает ошибку).
- именами колонок считаются :
-
ESCAPE
|NOESCAPE
Ключевое слово, указывающее на присутствие (
ESCAPE
) или отсутствие (NOESCAPE
) в CSV файле экранирования спецсимволов (\r
,\n
,"
(двойные кавычки)) и указанного разделителяseparator
.NOESCAPE
имеет смысл использовать, только в случаях, когда в данных гарантировано не будет заданного разделителя. П о умолчанию используетсяESCAPE
. -
SHEET (sheetExpr | ALL)
Опция, указывающая на импорт конкретного листа Excel файла. Если опция не указана, то берется лист номер один.
-
sheetExpr
Выражение, значение которого определяет номер импортируемого листа Excel файла. Значение выражения должно иметь класс
INTEGER
илиLONG
. Нумерация начинается с единицы. -
ALL
Ключевое слово, которое означает, что импорт будет производится из всех листов excel файла.
-
-
CHARSET charsetStr
Опция, указывающая кодировку файла, используемую при импорте.
charsetStr
Cтроковый литерал, определяющий кодировку.
-
actionOperator
Контекстно-зависимый оператор-действие, описывающий действие, которое выполняется для каждой импортированной записи.
-
elseActionOperator
Контекстно-зависимый оператор-действие, описывающий действие, которое выполняется, если ни одной записи импортировано не было. В качестве параметров нельзя использовать параметры, в которые импортируются данные.