Обработчики СУБД

Для создания обработчика:

  1. В ЦН перейдите в раздел ИнтеграцияОбработчики.

  2. Нажмите на кнопку +. В рабочей области страницы отобразится интерфейс создания нового обработчика.

Вкладка Основные

На вкладке Основные произведите следующие настройки:

  • Поле Название: введите название обработчика, обязательно для заполнения.

  • Поле Имя: введите имя обработчика, необязательно для заполнения.

  • Поле Комментарий: введите описание обработчика, необязательно для заполнения.

  • Выпадающее меню Тип: выберите требуемый тип из выпадающего списка:

    • Обработчик MSSQL

    • Обработчик Oracle

    • Обработчик PostgreSQL

  • Направление интеграции: выберите направления интеграции В Platform или Из Platform. В зависимости от выбранного направления изменится вкладка В Platform / Из Platform.

  • Поле Имя таблицы: введите имя таблицы обработчика, которая будет выступать как источник, если указано направление В Platform. Если указано направление ИЗ Platform, таблица выступает как приемник.

  • Выпадающее меню Внешний тип данных: выберите тип внешнего типа данных.

Вкладка Переменные

Здесь можно создать локальные переменные обработчика. К локальным переменным с одной стороны есть доступ из бизнес-процессов при отправке объектов во внешнюю систему; локальные переменные также доступны для использования в SQL-коде обработчика на вкладке Код. Вызов переменной в SQL коде: @Идентификатор.

../../../_images/image121.png
../../../_images/image122.png

Для выгрузки массива из СУБД в формате JSON (направление В Platform) добавьте переменную FORJSON типа Int со значением 0. При этом в конце SQL-кода запроса следует добавить строку FOR JSON PATH.

Вкладка Код

Содержит SQL-код, который будет выполняться при вызове обработчика:

../../../_images/image123.png

Писать и проверять код удобно в СУБД на вкладке выполнения запроса:

../../../_images/image91.png

С переменными типа массив в обработчике Oracle обращение код выглядит следующим образом:

"TMP$GTT_oracleПерем"

где:

  • oracleПерем - имя переменной в обработчике.

  • TMP$GTT_ - префикс, который позволяет использовать временную таблицу для обращения к массиву. Такой способ работает на Oracle любых версий.

Обращение всегда используется с этим префиксом и должно быть заключено в двойные кавычки.

Пример запроса на вставку:

INSERT INTO TABLETEST2(COLUMN1, COLUMN2)
select name2, name4 from "TMP$GTT_oracleПерем"

где name2, name4 - поля массива.

Если требуется обратиться к сложному полю типа массив внутри массива, код выглядит следующим образом:

INSERT INTO TABLETEST2(COLUMN1, COLUMN2)
select name2, name4 from "TMP$GTT_naming"

где naming - имя сложного поля массив внутри массива.

Структура типа с массивом, для которого указаны примеры:

../../../_images/array_type.png

При отправке в базу данных Oracle булевые значения преобразовываются в числовые. Пример генерации соответствующего запроса к базе данных:

-Текущие значения параметров:
-int BOOLCOLUMN = 0
-string NAME = Travice
-Текст запроса:
INSERT INTO KRIKOKO.USERS (NAME, BOOLCOLUMN) VALUES (:NAME, :BOOLCOLUMN);

Настройка Из Platform и В Platform

Для обработчиков СУБД система предоставляет дополнительный набор операций, предназначенных для использования вместо SQL кода. В направлении Из Platform система предлагает выбрать следующие виды операций:

  • Пользовательский запрос - будет выполняться SQL запрос с вкладки Код.

  • Вставка - добавление объектов в таблицу.

  • Обновление - обновление полей объектов.

  • Удаление - удаление объектов из таблицы.

  • Выборка - получение объектов из таблицы.

../../../_images/image124.png

Если задано направление В Platform, доступны следующие виды операций:

  • Пользовательский запрос.

  • Выборка.

../../../_images/image125.png

Для операции Выборка, Вставка, Обновление существует возможность настройки полей, участвующих в операции с помощью инструмента Маппер. Для настройки нужно в Маппере добавить поля таблицы которые будут участвовать в операции и настроить маппинг полей в переменную с вкладки В Platform или Из Platform в зависимости от направления интеграции. Если в Маппере настроены поля таблицы, то в операции будут участвовать только эти поля таблицы.

Для настройки маппинга нужно нажать на кнопку Маппер:

../../../_images/image126.png

Вкладка В Platform

Содержит данные, которые будут передаваться в Платформу при соответствующем направлении интеграции:

../../../_images/image114.png

Вкладка Из Platform

Содержит данные, которые будут передаваться из Платформы при соответствующем направлении интеграции:

К данным можно обращаться на вкладке Код, значения передаются в теле сообщения Формат файла сообщения, получаемого процессом для успешного маппинга, должен быть UTF-8 без BOM Маппинг в формате json вида:

{
        "MediaTypeId": 4,
        "Name": "example"
}

Вкладка Системы

На вкладке можно выбрать Внешние системы, с которыми будет работать обработчик:

../../../_images/image93.png