Как работать с историей статусов

Статус документа - это изменение, которое произошло с документом в рамках документооборота. Любое действие - отправка, получение, приемка, отклонение, и т.д. - приводит к появлению статуса.

Статус может ссылаться на вложения и подписи под ними. Например:

  • статусы «Отправлен» и «Получен» ссылаются на первичное вложение документа (титул продавца для УПД/УКД, неформализованный документ, и т.д.) и подписи под ним;

  • статус «Принят» ссылается на вложение, характерное для процесса приемки (титул покупателя для УПД/УКД, неформализованный документ, и т.д.), и подписи под ним.

Статусы публикуются интеграционным модулем в Integration API Продукта в виде истории статусов. История статусов ведется в разрезе операторских ящиков, настроенных в Продукте.

История статусов должна загружаться внешней системой итерационно. Для этого внешняя система должна периодически запрашивать изменения, которые произошли после сохраненной на предыдущем шаге метки. В качестве метки должен использоваться идентификатор последнего статуса (целое число).

В общем случае порядок работы с историей статусов выглядит следующим образом:

  • выполнить первый запрос истории статусов по ящику, указав значение 0 для идентификатора последнего статуса;

  • обработать новые статусы;

  • сохранить идентификатор последнего статуса, который пришел в ответе на запрос;

  • взять паузу;

  • выполнить следующий запрос истории статусов по ящику, указав значение последнего статуса, полученного на предыдущей итерации;

  • обработать новые статусы;

  • сохранить идентификатор последнего статуса, который пришел в ответе на запрос;

  • и т.д.

Если на какой-то итерации новых статусов не было, идентификатор последнего статуса не обновляется.

Текущий статус документа

Текущий статус документа - это изменение, которое повлияло на возможные дальнейшие действия с документом.

Часть статусов из истории задаются в качестве текущих статусов. Например, «Документ передан оператору», «Отправлен», «Получен», «Принят», и т. п.

Статусы, которые не влияют на возможные дальнейшие действия, являются информационными. Например, «Обработан в ГИС МТ», «Результаты проверки РНПТ», и т. п.

Статусы vs. события

События - это детализация изменений, которые произошли с документом в рамках документооборота.

В общем случае на каком-то этапе документооборота у документа может быть несколько событий, которым соответствует один статус.

Например, статус «Отправлен» (код статуса S) для УПД СЧФДОП соответствует четырем событиям:

  • S - отправлен титул продавца УПД СЧФДОП. Вложением события будет титул продавца и подпись к нему.

  • S2 - получено подтверждение даты получения (ПДПОЛ) УПД СЧФДОП оператором. Вложением события будет ПДПОЛ и подпись к нему.

  • S1 - получено извещение о получении (ИОП) УПД СЧФДОП покупателем. Вложением события будет ИОП и подпись к нему.

  • S4 - получено подтверждение даты отправки (ПДОТПР) ИОП оператором. Вложением события будет ПДОТПР и подпись к нему.

При этом события S1 и S4 - опциональны (покупатель не обязан формировать ИОП), события S и S2 будут всегда.

В истории статусов для этапа отправки УПД СЧФДОП будет опубликован один статус S. Количество событий при этом будет зависеть от конкретной ситуации.

Примечание

События не публикуются в виде ленты. Их вместе в вложениями можно запросить с помощью расширенной информации по выбранному документу.