Настройка миграции на платформе MyBPM
Функционал MyBPM для формирования структуры внешней Базы Данных SQL с автоматической выгрузкой и загрузкой данных.
Порядок действий:1. В режиме редактирования, в необходимом Бизнес-объекте выбираем нужное вам поле для выгрузки.
2. Нажимаем на иконку настроек поля в виде шестеренки в углу поля.
3. В модальном окне в верхних вкладках выбираем пункт интеграций.
4. В разделе “Интеграция через БД” отмечаем необходимую опцию:
- для загрузки из БД данных в MyBPM выбираем пункт “Загружать из IN_таблиц”,- для выгрузки данных из MyBPM в БД выбираем пункт “Выгружать в OUT_таблицу”.
5. Сохраняем изменения в БО нажатием кнопки “Сохранить”.
Настройка признака in/out
После всех настроек в MyBPM полей интеграции:
- Для загрузки данных в MyBPM формируется структура для SQL в формате DDL файла. Файл предоставляет разработчик MyBPM. Данный файл необходимо запустить в вашей внешней БД PostgreSQL, который создает всю структуру таблиц. Дальнейшее обновление данных должно соответствовать этой структуре. Предоставляются данные для подключения к БД.
- Для выгрузки данных из MyBPM тоже предоставляются данные для подключения к БД.
!Важно: При изменении полей для интеграции, формируется новая структура БД. Для того чтобы выгрузка произошла корректно, необходимо запустить описанный процесс заново.
Структура формируется по правилам:
№ | Структура БО MyBPM | Структура таблиц в БД | Описание |
---|---|---|---|
1 | Код бизнес-объекта | Название таблицы с приставкой | |
2 | Код поля | Название колонки | |
3 | Содержимое поля в MyBPM | Значения поля | |
4 | Тип поля | Тип переменной | Ассоциирован с типами SQL согласно логике полей MyBPM |
5 | Вложенный БО | Внешний таблица со связанными id | Таблица содержит Id вложенного объекта, и Id принимающего |
6 | Вложенный Композитный объект | Внешние таблицы со связанными id | Количество таблиц соответствует количеству вложенных БО в Композитный объект. Для каждого вложенного объекта формируется своя таблица связки |
Пример формирования структуры таблицы выгрузки IN из MyBPM.
Код бизнес-объекта
Код поля
В результате получаем таблицу с названием по коду БО и приставкой in. create table public.in_Natural_client ( id bigserial primary key, in_id varchar(100), out_id varchar(32), inserted_date timestamp with time zone default clock_timestamp(), in_status varchar(100) default '' not null, occupied_id bigint, occupied_at timestamp with time zone, removed bool default false, IIN text, Category varchar(32), Date_Birth timestamp with time zone, Date_death timestamp with time zone, SUSN_type bool, Relationship_status text, Client_dep_colvir_ID numeric(24,4), Gender varchar(32), Amount_children numeric(24,4), Client_code text, Full_name text, Global_client_ID numeric(24,4) );
Структура таблицы в описании:
Имя колонки в базе | Имя колонки MyBPM | Тип | Описание |
---|---|---|---|
Global_client_ID | int(8) | Global ID клиента | |
Category | Справочник - Category | Категория | |
Full_name | VARCHAR(256) | ФИО | |
IIN | VARCHAR(256) | ИИН | |
Identity | Таблица - Identity | Удостоверение | |
Date_Birth | Date | Дата рождения | |
Date_death | Date | Дата смерти | |
Relationship_status | VARCHAR(256) | Семейное положение | |
Таблица - Email | Электронная почта | ||
Gender | Справочник - Gender | Пол | |
Amount_children | NUMERIC | Кол-во детей | |
SUSN_type | Bool | Тип СУСН | |
Client_dep_colvirID | Numeric | Идентификатор подразделения клиента в колвире |
Пример с вложенным БО
Код вложенного БО
Сформированная таблица с ключами на существующие таблицы, вложенные в БО. Где Natural_client_id ссылается на id в таблице in_Natural_client, то есть системный авто инкриминированный id, а Place_work_id ссылается на id в таблице in_ Place_work.
create table public.in_Natural_client_Place_work ( Natural_client_id varchar(100), Place_work_id varchar(100), in_status varchar(100) default '' not null, inserted_date timestamp with time zone default clock_timestamp(), primary key (Natural_client_id, Place_work_id) );
Пример с вложенным Композитным объектом
Код вложенного КО
В данном случае вложенный КО ссылается на три БО - физические лица, юридические лица, ИП. Где Contracts_id ссылается на id таблицы in_Contracts, а Borrower_id на id в таблицах in_Natural_client, in_Legal_client, in_IP_client
Таблица связка с таблицей физического лица. create table public.in_Contracts_Borrower_Natural_client ( Contracts_id varchar(100), Borrower_id varchar(100), in_status varchar(100) default '' not null, inserted_date timestamp with time zone default clock_timestamp(), primary key (Contracts_id, Billing_PR_Natural_client_id) ); Таблица связка с таблицей юридического лица. create table public.in_Contracts_Borrower_Legal_client ( Contracts_id varchar(100), Borrower_id varchar(100), in_status varchar(100) default '' not null, inserted_date timestamp with time zone default clock_timestamp(), primary key (Contracts_id, Billing_PR_Natural_client_id) ); Таблица связка с таблицей ИП. create table public.in_Contracts_Borrower_IP_client ( Contracts_id varchar(100), Borrower_id varchar(100), in_status varchar(100) default '' not null, inserted_date timestamp with time zone default clock_timestamp(), primary key (Contracts_id, Billing_PR_Natural_client_id) );
Пример формирования OUT таблицы выгрузки данных из MyBPM
Для начала проверяется наличие схемы, если такая схема не существует, то создается по принципу:
- приставки out;
- кода компании в MyBPM;
- версии в коде сервера (code: OUT_MIGRATION_VERSION);
- версии в переменной окружения (yaml файл code:MYBPM_ OUT_MIGRATION_VERSION); Пример: out_jusan_1_8;
Код БО
Код поля
Создается таблица с названием соответственно названию БО с кодами полей.
create table Spouse_work_address ( id bigserial primary key, system_created_at timestamp with time zone, system_creator_fio varchar(100), system_id varchar(100) unique, inserted_at timestamp with time zone default clock_timestamp(), updated_at timestamp with time zone, Street text, ATO_code text, Structure text, corps text, Microdistrict text, Locality text, Apartment text, House text, Index text );
Структура таблицы в описании:
Имя колонки в DWH | Имя колонки MyBPM | Тип | Описание |
---|---|---|---|
Client_id (==Global_client_ID) | int(8) | Global ID клиента | |
Address_type | Справочник - Address_type | Тип адреса | |
District | Справочник - District | Район | |
City | Справочник - City | Город | |
Region | Справочник - Region | Область | |
Street | VARCHAR(256) | Улица | |
House | VARCHAR(256) | Дом | |
Apartment | VARCHAR(256) | Квартира | |
ATO_code | VARCHAR(256) | Код АТО | |
Locality | VARCHAR(256) | Населенный пункт | |
Microdistrict | VARCHAR(256) | Микрорайон | |
corps | VARCHAR(256) | Корпус | |
Structure | VARCHAR(256) | Строение | |
Index | VARCHAR(256) | Индекс |
Системные поля
Поля являются системными:
- id bigserial primary key,
- system_created_at timestamp with time zone,
- system_creator_fio varchar(100),
- system_id varchar(100) unique,
- inserted_at timestamp with time zone default clock_timestamp(),
- updated_at timestamp with time zone.