Файловый обмен: различия между версиями

Материал из Wiki ГКБ
Перейти к навигации Перейти к поиску
Строка 32: Строка 32:
 
!Имя команды
 
!Имя команды
 
!Назначение
 
!Назначение
 +
|-
 
|:CRCERROR
 
|:CRCERROR
 
|Ошибка контрольной суммы
 
|Ошибка контрольной суммы
Строка 55: Строка 56:
 
|:<ИМЯ_КОМАНДЫ><br>ПОЛЕ1<символ_табуляции>ПОЛЕ2<символ_табуляции>ПОЛЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3
 
|:<ИМЯ_КОМАНДЫ><br>ПОЛЕ1<символ_табуляции>ПОЛЕ2<символ_табуляции>ПОЛЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3
 
|}
 
|}
 +
 +
===Описание команд===
 +
 +
Команда :'''GETTABLEDATA'''
 +
 +
Назначение: Запрос данных из ЕСБД
 +
 +
Синтаксис:
 +
 +
Команда пишется в одной строке. Конец командного блока определяется концом файла, либо строкой, содержащей следующую команду.
 +
{| border="1"
 +
!Имя таблицы
 +
!Имя таблицы, из которой осуществляется выборка
 +
|-
 +
|Условия
 +
|SQL условия, ограничивающие записи (алиас таблицы выборки, для подзапросов - tab99). <br>При работе с полями типа «Дата» используется преобразование TO_DATE(’01.01.2007’,’dd.mm.yyyy’)
 +
|-
 +
|Колонки
 +
|-колонки из таблицы, так же могут использоваться функции (алиас колонки при этом - обязателен)<br>
 +
 +
Доступные функции:
 +
<br>GetDriverClass(aClientID NUMBER, aOnDate DATE) RETURN NUMBER – возвращает идентификатор класса «бонус-малус», где:
 +
<br>aClientID – идентификатор клиента ЕСБД;
 +
<br>aOnDate - дата на которую необходимо получить класс;
 +
 +
<br>GetDriverClassText( aClientID NUMBER, aOnDate DATE) RETURN VARCHAR2 – возвращает название класса «бонус-малус», где:
 +
<br>aClientID – идентификатор клиента ЕСБД;
 +
<br>aOnDate - дата на которую необходимо получить класс;
 +
 +
 +
Пример:
 +
 +
:GETTABLEDATA=CLIENTS;CONDITION=GetDriverClass(tab99.Client_ID,SYSDATE)<>5;COLUMNS=CLIENT_ID,GetDriverClass(tab99.Client_ID,SYSDATE) AS CLASS
 +
 +
 +
Команда: '''TABLE'''
 +
 +
Назначение: Вставка/редактирование/удаление данных. Данная команда используется во входящем файле – в качестве команды вставки/изменения данных таблицы, либо в файле ответа – в качестве результата команды.
 +
 +
Синтаксис:
 +
 +
:TABLE = <Имя_таблицы><br>
 +
<br>
 +
Поле1<символ_табуляции>Поле2<символ_табуляции>Поле3
 +
<br>
 +
Значение1<символ_табуляции>Значение2<символ_табуляции>Значение3
 +
<br>
 +
 +
<br>
 +
:CHILDTABLE=<Имя_дочерней_таблицы>
 +
<br>
 +
Поле1<символ_табуляции>Поле2<символ_табуляции>Поле3
 +
<br>
 +
Значение1<символ_табуляции>Значение2<символ_табуляции>Значение3

Версия от 10:23, 31 июля 2008

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

  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’)
Колонки