УНИВЕРСАЛЬНЫЕ ТРАНЗАКЦИИ: ИМПОРТ-ЭКСПОРТ ДАННЫХ

Взаимодействие с внешними системами как правило осуществляется посредством текстовых файлов. Формирование данных файлов при экспорте и чтение данных из файлов при импорте в АБС Бисквит может осуществляться с помощью Универсальных транзакций.

Для организации данного процесса в АБС Бисквит заведены следующие основные классы:

  • Seance - Сеансы;
  • Exchange - Транспортная форма;
  • Packet - Сообщения;
  • FileEchg - Наборы данных.

Все эти классы построены на одноименных таблицах базы данных.

ut-exch.jpg


СЕАНСЫ (SEANCE)


Сеанс - операция импорта-экспорта данных. За один сеанс может быть обработано несколько файлов.

Реквизиты класса:

  • Direct - Направление;
  • Filial-ID - Код филиала;
  • Number - Номер сеанса;
  • op-kind - Код транзакции;
  • SeanceDate - Дата;
  • SeanceID - Идентификатор сеанса;
  • SeanceMode - Режимы создания Сеансов обмена;
  • SeanceTime - Время сеанса;
  • TripID - Идентификатор рейса;
  • user-id - Ответисполнитель;

Каждому сеансу присваивается уникальный SeanceID, а так же определяется направление (реквизит Direct): экспорт, либо импорт.


ТРАНСПОРТНАЯ ФОРМА (EXCHANGE)


Транспортная форма является промежуточным звеном между источником данных и их получателем в процессе импорта-экспорта данных. Импортируемые и экспортируемые данные предварительно заносятся в транспортную форму, где они валидируются и т.д., а после этого переносятся либо в файл (при экспорте), либо в базу данных АБС Бисквит (при импорте).

Сама транспортная форма представляет собой набор отдельных классов метасхемы АБС Бисквит для каждого отдельного случая импорта-экспорта, являющихся подклассами класса Exchange.

Стоит отметить, что Exchange и все его подклассы являются абстрактными классам и следовательно не связаны ни с какой таблицей базы данных. Так куда же тогда заносятся данные? Не смотря на то, что классы являются абстрактными, Instance (динамическая временная таблица) данных классов может быть создан и в него могут быть записаны данные. Создавая шаблон в транзакции с данным классом вы собственно создаете его Instance.

Кроме этого, на данных классах, например, может быть определена процедура метода Initial (Инициализация объекта), в которой возможно объявление временных таблиц и их заполнение.


СООБЩЕНИЯ (PACKET)


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

Пакеты могут быть объединены в один крупный пакет. Связанным классом является класс Exchange (транспортные формы).


НАБОРЫ ДАННЫХ (FILEECHG)


Набор данных - определяет набор файлов, которые обрабатывались или формировались за сеанс, а так же их основные атрибуты, такие как например кодировка.

Реквизиты класса:

  • CodePage - Кодовая страница;
  • FCase - Управление регистром вывода букв;
  • FileExchID - Идентификатор;
  • Name - Имя файла;
  • Order - Номер;
  • Path - Путь;
  • SeanceID - Сеанс обмена;
  • State - Статус.

Методы класса:

  • browse - file-brw.p
  • Export - file-exp.p
  • fltstruct - file-flt.p

Есть еще процедура file-imp.p, но ни в одном методе она не фигурирует.

Процедура file-exp.p составляет файл экспорта из соответствующих пакетов.


ОБЩАЯ СТРУКТУРА УНИВЕРСАЛЬНОЙ ТРАНЗАКЦИИ ИМПОРТА-ЭКСПОРТА


  1. Создание сеанса обмена (создание объекта класса Seance, действие: Создание);
  2. Определение и заполнение транспортной формы (создание объектов подклассов класса Exchange, действие: инициализация);
  3. Формирование сообщения (создание объектов классов Packet, действие: Экспорт/Импорт и PacketText, как правило создается процедурно, см. библиотеку pp-pack);
  4. Создание набора данных при экспорте (создание объекта класса FileEchg, действие: Экспорт);

 

Вы здесь: Главная ИБС Бисквит СТАНДАРТНЫЕ И УНИВЕРСАЛЬНЫЕ ТРАНЗАКЦИИ УНИВЕРСАЛЬНЫЕ ТРАНЗАКЦИИ: ИМПОРТ-ЭКСПОРТ ДАННЫХ