Файловый обмен

Материал из Wiki ГКБ
Перейти к навигации Перейти к поиску

Описание структуры и команд входящего файла

  1. Все входящие файлы архивируется в формате ZIP;
  2. Файлы должны иметь расширение ZIP;
  3. Имена файлов могут быть любыми на усмотрение страховой компании, но они не должны повторяться;
  4. Внутри входящего архивного файла могут быть несколько входящих командных файлов;
  5. Все даты передаются в ЕСБД в формате ДД.ММ.ГГГГ, разделитель целой и дробной части – «.»(точка), разделитель разрядов – отсутствует. Логические поля имеют варианты значения True, False
  6. Все ключевые поля (идентификаторы) имеют тип «число» размером 11 байт. Для обозначения вставки используется ключ меньше нуля. В ответе будет возвращено, какой отрицательный ключ был заменен реальным ключом ЕСБД.
  7. Команды входящих командных файлов
Имя команды Назначение
:GETTABLEDATA= запрос данных
:TABLE= передача данных для вставки/изменения/удаления записи из таблицы
:CHILDTABLE= обеспечивает единую транзакцию. Записи будут сохранены, только в случае если была сохранена запись из команды :TABLE
:DYNAMICCHILDTABLE= Аналогична команде :CHILDTABLE, только связь с :TABLE – динамическая

Описание структуры и команд файла-ответа

  1. На каждый непустой входящий файл, система формирует файл ответа, причем:
    Имя файла – имеет формат <Имя_входящего_файла>.ANS.ZIP;
    Файл заархивирован в формате ZIP;
    Внутри архивного файла-ответа содержатся файлы ответов на командные файлы содержавшиеся во входящем файле;
    Имена файлов ответов имеют формат <Имя_командного_файла>.ANS
  2. Команды файлов ответов:
Имя команды Назначение
:CRCERROR Ошибка контрольной суммы
:ERROR= Ошибка с описанием и указанием номера строки
:TABLE= Записи таблицы, сформированные по запросу :GETTABLEDATA
:CHANGEID Список выданных ключей

Принцип формирования файла

  1. Каждая команда начинается с новой строки без пробелов;
  2. Все команды, кроме табличных команд, пишутся в одну строку;
  3. Все ключевые поля (идентификаторы) имеют тип «число» размером 11 байт. Для обозначения вставки используется ключ меньше нуля. В ответе будет возвращено, какой отрицательный ключ был заменен реальным ключом ЕСБД.
  4. Табличные данные передаются в виде:
  • В строках, следующих за командой, перечисляется список имен полей, разделенных символом табуляции. После строки с именами полей указываются строки с данными, поля которых также разделяются символом табуляции. Конец блока определяется концом файла, либо строкой, содержащей следующую команду.
  • Пример:
:<ИМЯ_КОМАНДЫ>
ПОЛЕ1<символ_табуляции>ПОЛЕ2<символ_табуляции>ПОЛЕ3
ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3
ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3

Описание команд

Команда :GETTABLEDATA

Назначение: Запрос данных из ЕСБД

Синтаксис:

Команда пишется в одной строке. Конец командного блока определяется концом файла, либо строкой, содержащей следующую команду.

Доступные функции:
GetDriverClass(aClientID NUMBER, aOnDate DATE) RETURN NUMBER – возвращает идентификатор класса «бонус-малус», где:
aClientID – идентификатор клиента ЕСБД;
aOnDate - дата на которую необходимо получить класс;
GetDriverClassText( aClientID NUMBER, aOnDate DATE) RETURN VARCHAR2 – возвращает название класса «бонус-малус», где:
aClientID – идентификатор клиента ЕСБД;
aOnDate - дата на которую необходимо получить класс; Пример: :GETTABLEDATA=CLIENTS;CONDITION=GetDriverClass(tab99.Client_ID,SYSDATE)<>5;COLUMNS=CLIENT_ID,GetDriverClass(tab99.Client_ID,SYSDATE) AS CLASS Команда: TABLE Назначение: Вставка/редактирование/удаление данных. Данная команда используется во входящем файле – в качестве команды вставки/изменения данных таблицы, либо в файле ответа – в качестве результата команды. Синтаксис: :TABLE = <Имя_таблицы>

Поле1<символ_табуляции>Поле2<символ_табуляции>Поле3
Значение1<символ_табуляции>Значение2<символ_табуляции>Значение3

CHILDTABLE=<Имя_дочерней_таблицы>

Поле1<символ_табуляции>Поле2<символ_табуляции>Поле3
Значение1<символ_табуляции>Значение2<символ_табуляции>Значение3
Имя таблицы Имя таблицы, из которой осуществляется выборка
Условия SQL условия, ограничивающие записи (алиас таблицы выборки, для подзапросов - tab99).
При работе с полями типа «Дата» используется преобразование TO_DATE(’01.01.2007’,’dd.mm.yyyy’)
Колонки