Данные, отображаемые в отчёте, система получает из внешних источников. Состав источников фиксирован для каждого типа отчёта, определяется при заключении договора и не может быть изменён пользователем.
Процессы запроса к каждому источнику не зависят друг от друга, поэтому получение ответов от источников и, соответственно, добавление данных в отчёт могут выполняться в разное время.
Информация о составе и статусах запрошенных источников всегда доступна в отчёте. Отчёт содержит два блока, описывающих состояние источников:
Сводный блок статуса генерации отчёта. В нём указываются три переменных: количество успешно отработавших источников, количество источников в работе и количество источников, по которым запрос выполнился с ошибкой.
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
— расширенная информация о статусе запроса к источнику.Генерация отчёта считается завершённой в момент, когда все источники завершили процесс генерации и имеют статус OK
или ERROR
. Соответственно, значение переменной progress_wait
в теле запрашиваемого отчёта становится равным 0
.
В процессе получения данных запрос к источнику может переходить в следующие состояния:
Значение переменной 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"
}
]
}
}