Статусы источников

Данные, отображаемые в отчёте, система получает из внешних источников. Состав источников фиксирован для каждого типа отчёта, определяется при заключении договора и не может быть изменён пользователем.

Процессы запроса к каждому источнику не зависят друг от друга, поэтому получение ответов от источников и, соответственно, добавление данных в отчёт могут выполняться в разное время.

Информация о составе и статусах запрошенных источников всегда доступна в отчёте. Отчёт содержит два блока, описывающих состояние источников:

  1. Сводный блока статуса генерации отчёта. В нём указываются три переменных: количество успешно отработавших источников, количество источников в работе и количество источников, по которым запрос выполнился с ошибкой.
  2. Блок статусов ответа источников содержит данные о состоянии запроса по каждому источнику.

Статусы источников в отчёте по транспортному средству

Сводный блок статуса генерации отчёта

Значения переменных блока:

  • 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.