Данные, отображаемые в отчёте, система получает из внешних источников. Состав источников фиксирован для каждого типа отчёта, определяется при заключении договора и не может быть изменён пользователем.
Процессы запроса к каждому источнику не зависят друг от друга, поэтому получение ответов от источников и, соответственно, добавление данных в отчёт могут выполняться в разное время.
Информация о составе и статусах запрошенных источников всегда доступна в отчёте. Отчёт содержит два блока, описывающих состояние источников:
Значения переменных блока:
progress_ok
— количество источников со значением статуса OK
в переменной state.sources[].state
;progress_wait
— количество источников со статусом PROGRESS
в переменной state.sources[].state
;progress_error
— количество источников со статусом ERROR
в переменной state.sources[].state
.Для каждого источника указываются его краткий и расширенный статус:
state.sources[]._id
— идентификатор источника;state.sources[].state
— краткая информация о статусе запроса к источнику;state.sources[].extended_state
— расширенная информация о статусе запроса к источнику.В процессе получения данных запрос к источнику может переходить в следующие состояния:
Значение переменной state.sources[].extended_state |
Значение переменной state.sources[].state |
Описание |
---|---|---|
NONE |
PROGRESS |
Работа с источником ещё не начата. Встречается на начальных этапах генерации отчёта |
WAITING |
PROGRESS |
Источник ожидает данные для выполнения запроса |
DELAYED |
PROGRESS |
Выполнение запроса к источнику отложено. Обычно используется, если сервису не известно, будут ли получены данные, необходимые для выполнения запроса |
PROGRESS |
PROGRESS |
Выполняется отправка запроса к источнику или обработка полученного ответа |
SKIP |
OK |
Выполнение запроса к источнику было пропущено |
OK |
OK |
Запрос к источнику и обработка ответа успешно завершены. Выставляется даже в том случае, если получен пустой ответ |
INTERNAL_ERROR |
ERROR |
Во время работы с источником произошла внутренняя ошибка системы |
CANCEL |
ERROR |
Выполнение запроса к источнику было отменено. Используется в случае отсутствия данных, необходимых для выполнения запроса |
ERROR |
ERROR |
Произошла ошибка на стороне источника. Источник не ответил за положенное время, получен некорректный ответ или получена ошибка |
{
"progress_ok": 1,
"progress_wait": 0,
"progress_error": 1,
"state": {
"sources": [
{
"_id": "base",
"state": "OK",
"extended_state": "OK"
},
{
"_id": "references.base",
"state": "ERROR",
"extended_state": "CANCEL"
}
]
}
}
Значения переменных блока:
progress_ok
— количество источников со значениями статуса OK
, SKIP
и REJECT
в переменной state.sources[].state
;progress_wait
— количество источников со значениями статуса PROGRESS
, DELAYED
и WAITING
в переменной state.sources[].state
;progress_error
— количество источников со значениями статуса ERROR
, CANCEL
, INTERNAL_ERROR
и NONE
в переменной state.sources[].state
.Для каждого источника указывается его статус:
state.sources[]._id
— идентификатор источника;state.sources[].state
— статус запроса к источнику.{
"progress_ok": 1,
"progress_wait": 0,
"progress_error": 1,
"state": {
"sources": [
{
"_id": "source_inn",
"state": "OK",
"data": {}
},
{
"_id": "ownership_history",
"state": "OK",
"data": {
"reason": "owner's array is null or empty"
}
}
],
"data": {}
}
}
Генерация отчёта считается завершённой в момент, когда все источники завершили процесс генерации и имеют статус, соответствущий переменным progress_ok
или progress_error
. Таким образом, значение переменной progress_wait
в теле запрашиваемого отчёта становится равным 0
.