5.2. Транспортный формат файла ответов на запрос
В общем виде ответ на запрос представляет набор записей текстового файла, разделяемых символами возврата каретки (ВК) и перевода строки (ПС) и содержит ответы на все обращения, содержащиеся в запросе. Структурно файл ответов на поисковый запрос можно представить следующим образом:
заголовок файла <ВК><ПС>
заголовок ответа на запрос 1<ВК><ПС>
ответ 1 на обращение 1<ВК><ПС>
ответ 2 на обращение 1<ВК><ПС
…………………………………….
ответ N на обращение 1<ВК><ПС
[Количество объектов, удовлетворяющих обращению 1 (N)]
ответ 1 на обращение 2<ВК><ПС>
ответ 2 на обращение 2<ВК><ПС
…………………………………….
ответ K на обращение 2<ВК><ПС
[Количество объектов, удовлетворяющих обращению 2 (K)]
……………………………………..
ответ 1 на обращение М<ВК><ПС>
ответ 2 на обращение М<ВК><ПС
…………………………………….
ответ L на обращение М<ВК><ПС
[Количество объектов, удовлетворяющих обращению М (L)]
заголовок ответа на запрос 2<ВК><ПС>
…………………………………….
5.2.1. Заголовок файла ответа
Первая запись (строка) в файле ответов идентифицирует систему кодирования информации, респондента и корреспондента, содержимого файла. Структурно первая запись файла представляется в виде:
<шифр системы кодирования>/<адрес респондента>/<адрес корреспондента>.
В записи используются следующие шифры систем кодирования информации:
866 - DOS
1251 - Windows
Адрес респондента представляет семисимвольный код абонента, приславшего запрос.
Адрес корреспондента – четырехсимвольный код региональной подсистемы, производившей обработку запроса (из справочника регионов).
5.2.2. Заголовок ответа на запрос
Каждый ответ на запрос в ФИС должен начинаться с заголовка, предназначенного для идентификации задачи, к которой был обращен запрос и количественной оценке результатов обработки. Заголовок имеет следующий вид:
&<имя задачи>/<код операции>
Код операции – код операции в запросе, на который сформирован ответ.
5.2.3. Ответы на обращения
Непосредственно за заголовком должны следовать записи, содержащие ответы на обращения запроса. Ответ на поисковое обращение может содержать один или несколько объектов учета, удовлетворяющих критериям выбора, указанным в обращении.
Структурно ответ на поисковое обращение представляется в следующем виде:
/<шифр атрибута 1><=><значение> /<шифр атрибута 2><=><значение> … /<шифр атрибута N><=><значение><ВК><ПС>
[…………..
/<шифр атрибута 1><=><значение> /<шифр атрибута 2><=><значение> … /<шифр атрибута N><=><значение><ВК><ПС>]
[Количество объектов, удовлетворяющих критериям поиска]
Порядок следования шифров атрибутов в ответе на обращение – произвольный.
Если в заголовке запроса задан реквизит «параметры», то в ответы на обращения включаются только атрибуты объекта учета, указанные в этом реквизите.
Для запросов на пополнение и корректировку формируемый ответ может быть представлен в следующем виде:
<Заголовок ответа><ВК><ПС>
<-код ошибки>/<номер обращения><ВК><ПС>
………………………………………..
<-код ошибки>/<номер обращения><ВК><ПС>
[<всего обращений>/<ошибочных обращений>/<добавлено объектов>
/<замещено объектов>/<переведено объектов в архив>]<ВК><ПС>.
Коды ошибок существенно зависят от алгоритмов обработки запросов к конкретным задачам ФИС ГИБДД. В таблице 8 приведены коды ошибок для обращений ко всем задачам.
|
Таблица 8
|
|
|
|
Коды ошибок корректирующих запросов
|
|
|
Код
|
Описание ошибки
|
1
|
2
|
1008
|
Не заданы номерные агрегаты
|
1016
|
В базе данных найдена запись с совпавшими агрегатами и другим номером ГИБДД и датой операции меньше
|
1017
|
В базе данных найдена запись с совпавшими агрегатами и заполненным номером ГИЦ и датой операции меньше
|
1021
|
При выполнении операции корректировки или удаления запись не найдена в базе данных
|
1040
|
В базе данных найдена запись при выполнении операции постановки на учет
|
1041
|
Дата операции записи в базе данных больше даты операции входной записи
|
3001
|
Не задан код региона - инициатора розыска
|
3002
|
Не задано поле "Код ответственного пользоаптеля"
|
3003
|
Не задано поле "Вид учета"
|
3006
|
Не задано поле "Регистрационный номер ГИБДД" или "Регистрационный номер ГИЦ"
|
3008
|
Не заданы номерные агрегаты и государственный регистрационный знак
|
3013
|
Одновременно заданы поля "Регистрационный номер ГИБДД" и "Регистрационный номер ГИЦ"
|
3017
|
В базе данных найдена запись с совпавшими агрегатами и заполненным номером ГИЦ
|
3018
|
В базе данных найдена запись с совпавшим номером ГИБДД и заполненным номером ГИЦ и большей датой операции
|
3019
|
В базе данных найдена полностью совпадающая запись с другой датой операции.
|
3020
|
В базе данных найдена полностью совпадающая запись
|
3021
|
Запись не найдена в базе данных
|
3022
|
Нарушение прав доступа к системе
|
3030
|
Несоответствие вида учета, кода технологической операции и кода операции в заголовке запроса.
|
3031
|
Не задан код региона - инициатора розыска
|
3032
|
Не задано поле "Код ответственного пользоаптеля"
|
3034
|
Не правильно задан код дополнительных сведений
|
3035
|
Не задано поле "Серия спецпродукции"
|
3036
|
Не задано поле "Начальный номер"
|
3037
|
Не задано поле "Конечный номер"
|
3038
|
Не задано поле "Код технологической операции"
|
3039
|
Не задано поле "Дата технологической операции"
|
3051
|
Поле "Начальный номер" не совпадает с полем "Конечный номер" для записей с признаком "Документ"
|
3052
|
Поле "Начальный номер" больше поля "Конечный номер"
|
3053
|
Слишком большой диапазон для интервала номеров
|
8011
|
FIS_er_NLCR 11 /* CR (LF) в начале строки (фрагмента) */
|
8012
|
FIS_er_NLch 12 /* недопустимый символ в начале строки (фрагмента) */
|
8013
|
FIS_er_OPch 13 /* недопустимый символ после "(" ( не "/" ) */
|
8016
|
FIS_er_SLCR 16 /* CR (LF) после символа "/" */
|
8017
|
FIS_er_SLSL 17 /* "/" после символа "/" */
|
8018
|
FIS_er_SLEQ 18 /* "=" ( ">", "<", "#" ) после символа "/" */
|
8019
|
FIS_er_DUP 19 /* дубль ключевого слова при вводе */
|
8020
|
FIS_er_OPCR 20 /* CR (LF) после символа "(" */
|
8021
|
FIS_er_HDCR 21 /* CR (LF) при разборе шифра атрибута */
|
8022
|
FIS_er_HDgt 22 /* длина шифра атрибута превышает 4 */
|
8024
|
FIS_er_EQSL 24 /* "/" после символа "=" ( ">", "<", "#" ) */
|
8025
|
FIS_er_EQCR 25 /* CR после символа "=" ( ">", "<", "#" ) */
|
8026
|
FIS_er_EQLF 26 /* LF после символа "=" ( ">", "<", "#" ) */
|
8027
|
FIS_er_EQOP 27 /* "(" после символа "=" ( ">", "<", "#" ) */
|
8028
|
FIS_er_EQCL 28 /* ")" после символа "=" ( ">", "<", "#" ) */
|
8029
|
FIS_er_VLLF 31 /* LF при разборе значения атрибута */
|
8032
|
FIS_er_VLgt 32 /* длина атрибута превышает максимальную (250) */
|
8033
|
FIS_er_FLDgt 33 /* количество полей в записи больше,чем в описании */
|
|
Окончание таблицы 8
|
|
|
1
|
2
|
8034
|
FIS_er_nFLD 34 /* количество полей в записи не совпадает с описан */
|
8036
|
FIS_er_LEN 36 /* неправильная длина атрибута ??? */
|
8037
|
FIS_er_LNgt 37 /* длина атрибута превышает заданную в табл. опис. */
|
8038
|
FIS_er_SEK 38 /* ошибка при работе с входным файлом (SEEK) */
|
8041
|
FIS_er_NA 41 /* недопустимое состояние (внутренняя ошибка) */
|
8042
|
FIS_er_CRnLF 42 /* после CR нет LF */
|
8043
|
FIS_er_LFpCR 43 /* перед LF нет CR */
|
8044
|
FIS_er_chEOF 44 /* конец файла */
|
8045
|
FIS_er_WR 45 /* ошибки при записи файла */
|
8046
|
FIS_er_dbEOF 46 /* конец DBF-файла */
|
8051
|
FIS_er_notTYP 51 /* неизвестный тип поля в табл. описания */
|
8052
|
FIS_er_notDIG 52 /* не цифра в атрибуте числового типа */
|
8055
|
FIS_er_BadSym 55 /* недопустимый символ */
|
8061
|
FIS_er_notKEY 61 /* шифр атрибута отсутствует в таблице */
|
8099
|
FIS_er_EOF 99 /* конец файла */
|
8100
|
FIS_ret_AMP 100 /* запись начинается с АМПЕРСАНТА */
|
8101
|
FIS_ret_EMP 101 /* пустая запись ( 2 CR LF подряд ) */
|
<предыдущая страница | следующая страница>