Export

Категория Export объединяет типы задач, с помощью которых можно организовать выгрузку данных из базы во внешние файлы.

Export Data To Excel File

Тип задач Export Data To Excel File организует выгрузку данных из объекта БД в целевой Excel-файл (XLSX).

ExportToExcel
Пример конфигурации

Элемент

Описание

Объект источник

Объект БД (таблица, представление), из которого будут выгружены данные

Ресурс директории

Директория (на сервере DCore), в которой будет создан файл

Имя файла

Имя, с которым будет создан файл (поддерживает маски даты и времени)

Имя листа

Имя, с которым будет создан лист с данными

Исключаемые поля

Набор полей (из структуры объекта источника), которые будут исключены из выгрузки

Порядок полей

Задает порядок полей. Если заполнено, то должно содержать все поля, которые должны быть выгружены.

Тип задач поддерживает следующие системные функции:

Техническая реализация

Перед прочтением следует ознакомится с документацией ICS.ETL

Процесс выгрузки данных из объекта БД в Excel-файл состоит из следующих шагов:

  1. Определяется имя сервера (выполняется запрос свойства serverproperty('ServerName')), на котором будет выполнен скрипт выборки данных из объекта источника.

  2. Формируется полный путь к создаваемому файлу на сервере DCore.

  3. Формируется список полей объекта источника в заданном порядке с учётом исключаемых.

  4. Генерируется ICS YAML скрипт с учётом переданных пользователем параметров и параметров определенных в пунктах 1-3 по шаблону:

    resources: - $: db Server: <имя_сервера> Database: <имя_базы> IntegratedSecurity: true stages: - DbSelect Select=[<список_полей>] From=<объект_источник> $out CommandTimeout=120 - ExcelWriter SheetName=<имя_листа> $out - FileWriter Rewrite=true Path=<Ресурс директории>\<имя_файла>
  5. YAML-скрипт запускается через ics.etl.dll.

  6. Логи выполнения скрипта записываются в таблицу audit.LogIcsScript.

Ожидаемое поведение

  • Выгрузка происходит в файл с расширением XLSX: если расширение не указано или указано отличное от XLSX — все равно будет создан XLSX-файл, при этом указанное пользователем отличное от XLSX расширение попадёт в имя файла.
  • Источником выгружаемых данных может быть только таблица или представление, иначе будет вызвана ошибка.

Export Data To Flat File

Тип задач Export Data To Flat File организует выгрузку данных из объекта БД в целевой текстовый файл.

ExportToFlatFile
Пример конфигурации

Элемент

Описание

Объект источник

Объект БД (таблица, представление), из которого будут выгружены данные

Ресурс директории

Директория (на сервере DCore), в которой будет создан файл

Имя файла

Имя, с которым будет создан файл (поддерживает маски даты и времени). В имени файла можно явно указать расширение (по умолчанию csv)

Кодировка

Стандарт кодирования символов в созданном файле (utf-8, windows-1251)

Разделитель полей

Символ-разделитель полей в созданном файле

Перенос строки

Определяет какой символ переноса строк будет использован (Cr, CrLf, Lf) в итоговом файле. Если не указан, используется символ текущей платформы.

Исключаемые поля

Набор полей из структуры объекта источника, которые будут исключены из выгрузки

Порядок полей

Задает порядок полей. Если заполнено, то должно содержать все поля, которые должны быть выгружены.

Использовать цитирование

Если включено то символ цитирования применяется

Символ цитирования

Задает символ цитирования — это означает, что все, что находится в внутри цитирования, принадлежит одной ячейке, даже если в строке будет символ разделения ячейки. По умолчание символ "

Тип задач поддерживает следующие системные функции:

Техническая реализация

Перед прочтением следует ознакомится с документацией ICS.ETL

Процесс выгрузки данных из объекта БД в в целевой текстовый файл состоит из следующих шагов:

  1. Формируется полный путь к создаваемому файлу на сервере DCore API.

  2. Формируется список полей объекта источника в заданном порядке с учётом исключаемых.

  3. Генерируется инструкция select выборки данных по списку полей, определённых в пункте 3, для использования в качестве DbSelect Query в ICS YAML.

  4. Генерируется ICS YAML скрипт с учётом переданных пользователем параметров и параметров определенных в пунктах 1-4 по шаблону:

    resources: - $: db Server: <имя_сервера> Database: <имя_базы> IntegratedSecurity: true stages: - DbSelect Query="<select_запрос>" $out CommandTimeout=6000 - CsvWriter Delimiter='<разделитель_полей>' Encoding='<кодировка>' LineEnding='<перенос_строки>' QuoteAll=true $out - FileWriter Rewrite=true Path=<Ресурс директории>\<имя_файла>
  5. YAML script скрипт запускается через ics.etl.

Ожидаемое поведение

  • Если не указано раcширение создаваемого файла в параметре Имя файла, то будет создан файл с расширением CSV.
  • Если в параметре Ресурс директории указан ресурс с несуществующей в момент исполнения папкой на диске, то указанная папка будет создана и в неё будет сохранен файл с данными.
  • Если в параметре Ресурс директории указан несуществующий в момент исполнения диск, то будет вызвана ошибка.
  • Если файл с указанным именем уже существует в директории сохранения, то он будет перезаписан.
  • Если в качестве Символа цитирования задана пустая строка(Null) и Использовать цитирование в значении false то в стадию CsvWriter добавляется IgnoreQuotes=true при таком сочетании нужно учитывать что вам нужно гарантировать что в значениях точно не встречается символ указанный в Разделителе полей, иначе выгрузка корректного csv будет невозможна.

Export Data to JSON File

Тип задач Export Data to JSON File организует выгрузку данных из объекта БД в целевой JSON-файл.

ExportDataToJson
Пример конфигурации

Элемент

Описание

Объект источник

Объект БД (таблица, представление), из которого будут выгружены данные

Ресурс директории

Директория (на сервере DCore), в которой будет создан файл

Имя файла

Имя, с которым будет создан файл (поддерживает маски даты и времени). В имени файла можно явно указать кодировку (по умолчанию JSON)

Порядок полей

Задает порядок полей. Если заполнено, то должно содержать все поля, которые должны быть выгружены.

JSON формат целевого файла:

[ { "ColumnName1": RowValue11, "ColumnName2": RowValue12 }, { "ColumnName1": RowValue21, "ColumnName2": RowValue22 }, ]

Тип задач поддерживает следующие системные функции:

Техническая реализация

Перед прочтением следует ознакомится с документацией ICS.ETL

Процесс выгрузки данных из объекта БД в JSON-файл состоит из следующих шагов:

  1. Определяется имя сервера (выполняется запрос свойства serverproperty('ServerName')), на котором будет выполнен скрипт выборки данных из объекта источника.

  2. Формируется полный путь к создаваемому файлу на сервере DCore.

  3. Формируется список полей объекта источника в заданном порядке.

  4. Генерируется инструкция select выборки данных по списку полей, определённых в пункте 3, для использования в качестве DbSelect Query в ICS YAML.

  5. Генерируется ICS YAML скрипт с учётом переданных пользователем параметров и параметров определенных в пунктах 1-4 по шаблону:

    resources: - $: db Server: <имя_сервера> Database: <имя_базы> IntegratedSecurity: true stages: - DbSelect Query="<select_запрос>" CommandTimeout=120 $out - JsonWriter $out - FileWriter Rewrite=true Path='<Ресурс директории>\<имя_файла>'
  6. YAML script скрипт запускается через ics.etl.dll.

  7. Логи выполнения скрипта записываются в таблицу audit.LogIcsScript.

Ожидаемое поведение

  • Выгрузка происходит в файл с расширением JSON: если расширение не указано или указано отличное от JSON — все равно будет создан JSON-файл, при этом указанное пользователем отличное от JSON расширение попадёт в имя файла.