Файловый обмен: различия между версиями
Admin (обсуждение | вклад) (proba4) |
Admin (обсуждение | вклад) |
||
Строка 56: | Строка 56: | ||
* В строках, следующих за командой, перечисляется список имен полей, разделенных символом табуляции. После строки с именами полей указываются строки с данными, поля которых также разделяются символом табуляции. Конец блока определяется концом файла, либо строкой, содержащей следующую команду. | * В строках, следующих за командой, перечисляется список имен полей, разделенных символом табуляции. После строки с именами полей указываются строки с данными, поля которых также разделяются символом табуляции. Конец блока определяется концом файла, либо строкой, содержащей следующую команду. | ||
* Пример: | * Пример: | ||
− | {| border=" | + | {|border="0" |
|:<ИМЯ_КОМАНДЫ><br>ПОЛЕ1<символ_табуляции>ПОЛЕ2<символ_табуляции>ПОЛЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3 | |:<ИМЯ_КОМАНДЫ><br>ПОЛЕ1<символ_табуляции>ПОЛЕ2<символ_табуляции>ПОЛЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3<br>ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3 | ||
|} | |} | ||
Строка 93: | Строка 93: | ||
Пример: | Пример: | ||
− | + | <pre> | |
+ | :GETTABLEDATA=CLIENTS;CONDITION=GetDriverClass(tab99.Client_ID,SYSDATE)<>5;COLUMNS=CLIENT_ID,GetDriverClass(tab99.Client_ID,SYSDATE) AS CLASS | ||
+ | </pre> | ||
Версия от 10:34, 31 июля 2008
Описание структуры и команд входящего файла
- Все входящие файлы архивируется в формате ZIP;
- Файлы должны иметь расширение ZIP;
- Имена файлов могут быть любыми на усмотрение страховой компании, но они не должны повторяться;
- Внутри входящего архивного файла могут быть несколько входящих командных файлов;
- Все даты передаются в ЕСБД в формате ДД.ММ.ГГГГ, разделитель целой и дробной части – «.»(точка), разделитель разрядов – отсутствует. Логические поля имеют варианты значения True, False
- Все ключевые поля (идентификаторы) имеют тип «число» размером 11 байт. Для обозначения вставки используется ключ меньше нуля. В ответе будет возвращено, какой отрицательный ключ был заменен реальным ключом ЕСБД.
- Команды входящих командных файлов
Имя команды | Назначение |
---|---|
:GETTABLEDATA= | запрос данных |
:TABLE= | передача данных для вставки/изменения/удаления записи из таблицы |
:CHILDTABLE= | обеспечивает единую транзакцию. Записи будут сохранены, только в случае если была сохранена запись из команды :TABLE |
:DYNAMICCHILDTABLE= | Аналогична команде :CHILDTABLE, только связь с :TABLE – динамическая |
Описание структуры и команд файла-ответа
- На каждый непустой входящий файл, система формирует файл ответа, причем:
Имя файла – имеет формат <Имя_входящего_файла>.ANS.ZIP;
Файл заархивирован в формате ZIP;
Внутри архивного файла-ответа содержатся файлы ответов на командные файлы содержавшиеся во входящем файле;
Имена файлов ответов имеют формат <Имя_командного_файла>.ANS - Команды файлов ответов:
Имя команды | Назначение |
---|---|
:CRCERROR | Ошибка контрольной суммы |
:ERROR= | Ошибка с описанием и указанием номера строки |
:TABLE= | Записи таблицы, сформированные по запросу :GETTABLEDATA |
:CHANGEID | Список выданных ключей |
Принцип формирования файла
- Каждая команда начинается с новой строки без пробелов;
- Все команды, кроме табличных команд, пишутся в одну строку;
- Все ключевые поля (идентификаторы) имеют тип «число» размером 11 байт. Для обозначения вставки используется ключ меньше нуля. В ответе будет возвращено, какой отрицательный ключ был заменен реальным ключом ЕСБД.
- Табличные данные передаются в виде:
- В строках, следующих за командой, перечисляется список имен полей, разделенных символом табуляции. После строки с именами полей указываются строки с данными, поля которых также разделяются символом табуляции. Конец блока определяется концом файла, либо строкой, содержащей следующую команду.
- Пример:
:<ИМЯ_КОМАНДЫ> ПОЛЕ1<символ_табуляции>ПОЛЕ2<символ_табуляции>ПОЛЕ3 ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3 ЗНАЧЕНИЕ1<символ_табуляции>ЗНАЧЕНИЕ2<символ_табуляции>ЗНАЧЕНИЕ3 |
Описание команд
Команда :GETTABLEDATA
Назначение: Запрос данных из ЕСБД
Синтаксис:
:GETTABLEDATA=<Имя_Таблицы>;CONDITION=<Условия>;COLUMNS=<Колонки>;
Команда пишется в одной строке. Конец командного блока определяется концом файла, либо строкой, содержащей следующую команду.
Имя таблицы | Имя таблицы, из которой осуществляется выборка |
---|---|
Условия | SQL условия, ограничивающие записи (алиас таблицы выборки, для подзапросов - tab99). При работе с полями типа «Дата» используется преобразование TO_DATE(’01.01.2007’,’dd.mm.yyyy’) |
Колонки | колонки из таблицы, так же могут использоваться функции (алиас колонки при этом - обязателен) Доступные функции:
|
Пример:
: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