В Базе-источнике должен быть установлен Адаптер ETL не ниже 1.1.11.2.

 

Механизм выполнения внешних обработок в базах-источниках :Предприятие через Адаптер позволяет получать данные с помощью обработок, встроенных в базы-источники . Этот подход используется, когда данные можно извлечь только с помощью программного кода на языке или когда требуется дополнительная программная обработка данных, полученных через запросы или механизмы СКД.

Для использования внешних обработок в базах-источниках через Адаптер необходимо подготовить информационную базу-источник: разместить модуль получения данных. Обработки можно добавить через расширение или подключить как внешнюю обработку в информационную базу. На стороне ETL требуется подключение соответствующего модуля.

Для подключения модуля перейдите в раздел ETL «Главное/ Настройки/ Модули получения данных»:

В открывшемся окне нажмите на кнопку «Создать», чтобы создайте новый элемент «Модуль получения данных из источника»:

Укажите в форме «Наименование» модуля и заполните поля:

  1. Вид модуля — «Модуль на стороне базы-источника.
  2. База источник — Информационная система :Предприятие, в которой размещен модуль получения данных в п.1.
  3. Вид объекта обработки — «Дополнительная обработка», если обработка добавлена как внешняя или «Обработка конфигурации» — если обработка добавлена через расширение или находится внутри конфигурации.
  4. Обработка — имя модуля получения данных из п.1. Выберите из списка (кнопка с тремя точками справа от поля).
  5. После выбора обработки автоматически заполняется табличная часть с информацией по группам обработчиков. Чтобы принудительно обновить информацию в табличной части нажмите на кнопку «Обновить данные по обработке».

Настройка получения данных

Для получения данных создайте правило выгрузки. Для этого перейдите в раздел «Установка правил выгрузки» и нажмите на кнопку «Создать».

В открывшемся окне укажите:

  1. Вид правила — «Модули на стороне источника».
  2. В группе «Настройки модуля» на вкладке «Данные модуля», в поле «Модуль получения данных» укажите ранее созданный модуль.
  3. В поле «Идентификатор группы обработчиков» выберите группу обработчиков.

Дальнейшая работа с документом (заполнение соответствия полей, настройка таблицы выгрузки) аналогична работе с другими видами правил.

Работа с составом выгрузки, пакетом обработки данных по установке правил аналогична работе с установкой правил по другим видам правил.

Создание обработки для получения данных

Для создания обработки получения данных, воспользуйтесь шаблоном, размещенном в статье ниже. При разработке обработки необходимо реализовать процедуры программного интерфейса:

  • Инициализировать;
  • СписокПолейТаблицы;
  • Данные;
  • СписокПараметровПользователя;
  • ПараметрыПриПостановкеВОчередь;
  • Сведения о внешней обработке (если используется вариант подключения внешней обработки).

Выполнение произвольного кода на стороне информационной системы – источника

Выполнение произвольного кода на стороне базы-источника может быть потенциально опасным, так как кодом, выполняемым на стороне приемника управляет другая система. Для промышленного использования рекомендуется избегать выполнения произвольного кода и создавать отдельную обработку на каждую процедуру получения данных.

Для решения задачи хранения кода на стороне ETL и передачи его для исполнения в базу источник создано расширение с обработкой-модулем (примером), в которой реализована концепция передачи произвольного кода через параметры.

Файлы для скачивания:

В обработке используется 2 параметра:

  • КодПолученияСпискаПолей — параметр для хранения кода, с помощью которого заполняется таблица соответствия полей в документе установки правил.
  • КодПолученияДанных — параметр для хранения кода, с помощью которого будут получаться данные. Тестовая обработка для ETL — «ЗаполнениеОбработчиков». С помощью этой обработки можно заполнить код для обработчиков выбранного Правила в более удобном интерфейсе.

Последовательность действий для использования тестовой обработки:

  1. Обновите ETL до версии 1.6.9.8. Обновите в базе источнике Адаптер до версии 1.1.11.2.
  2. Добавьте расширение «МодулиАдаптера» в базу источник.
  3. Пользователю в источнике, под которым ETL подключается к Адаптеру ETL, добавьте  роль хс_ИспользованиеМодулейПолученияДанных.
  4. В ETL в модулях подключите обработку-модуль (МА1_ПолучениеДанныхКодом) из расширения источника п.2.
  5. Создайте новый документ «Установка правил выгрузки», Вид правила = «Модули на стороне источника», выберите модуль добавленный в п.3. Донастройте документ, нажмите «Сохранить и провести». Т.к. обработчики для заполнения полей еще не установлены, добавьте в таблице соответствия полей любую строку с любыми данными, далее она будет перезаполнена. На текущем этапе не следует создавать таблицу-приемник
  6. Откройте обработку ЗаполнениеОбработчиков.epf, выберите правило из п.4, заполните обработчики (примеры обработчиков есть в папке Обработчики) и нажмите «Записать параметры».
  7. Откройте заново документ установки правил выгрузки, нажмите на кнопку «Заполнить соответствие полей». При этом на стороне источника выполнится необходимый код обработчика и таблица соответствия заполнится (в примере будет 3 поля). Теперь можно донастроить правило сбора данных в части создания таблицы, установки нужных соответствий.
  8. Создайте Состав выгрузки с правилом из п.4 и набором источников, в котором выбран источник с установленным расширением в п.2.
  9. Запустите Состав выгрузки на исполнение и проверьте, что таблица-приемник заполнилась согласно коду-обработчику получения данных.