Как работать с историей статусов¶
Статус документа - это изменение, которое произошло с документом в рамках документооборота. Любое действие - отправка, получение, приемка, отклонение, и т.д. - приводит к появлению статуса.
Статус может ссылаться на вложения и подписи под ними. Например:
статусы «Отправлен» и «Получен» ссылаются на первичное вложение документа (титул продавца для УПД/УКД, неформализованный документ, и т.д.) и подписи под ним;
статус «Принят» ссылается на вложение, характерное для процесса приемки (титул покупателя для УПД/УКД, неформализованный документ, и т.д.), и подписи под ним.
Статусы публикуются интеграционным модулем в Integration API Продукта в виде истории статусов. История статусов ведется в разрезе операторских ящиков, настроенных в Продукте.
История статусов должна загружаться внешней системой итерационно. Для этого внешняя система должна периодически запрашивать изменения, которые произошли после сохраненной на предыдущем шаге метки. В качестве метки должен использоваться идентификатор последнего статуса (целое число).
В общем случае порядок работы с историей статусов выглядит следующим образом:
выполнить первый запрос истории статусов по ящику, указав значение
0
для идентификатора последнего статуса;обработать новые статусы;
сохранить идентификатор последнего статуса, который пришел в ответе на запрос;
взять паузу;
выполнить следующий запрос истории статусов по ящику, указав значение последнего статуса, полученного на предыдущей итерации;
обработать новые статусы;
сохранить идентификатор последнего статуса, который пришел в ответе на запрос;
и т.д.
Если на какой-то итерации новых статусов не было, идентификатор последнего статуса не обновляется.
Текущий статус документа¶
Текущий статус документа - это изменение, которое повлияло на возможные дальнейшие действия с документом.
Часть статусов из истории задаются в качестве текущих статусов. Например, «Документ передан оператору», «Отправлен», «Получен», «Принят», и т. п.
Статусы, которые не влияют на возможные дальнейшие действия, являются информационными. Например, «Обработан в ГИС МТ», «Результаты проверки РНПТ», и т. п.
Статусы vs. события¶
События - это детализация изменений, которые произошли с документом в рамках документооборота.
В общем случае на каком-то этапе документооборота у документа может быть несколько событий, которым соответствует один статус.
Например, статус «Отправлен» (код статуса S
) для УПД СЧФДОП соответствует четырем событиям:
S
- отправлен титул продавца УПД СЧФДОП. Вложением события будет титул продавца и подпись к нему.S2
- получено подтверждение даты получения (ПДПОЛ) УПД СЧФДОП оператором. Вложением события будет ПДПОЛ и подпись к нему.S1
- получено извещение о получении (ИОП) УПД СЧФДОП покупателем. Вложением события будет ИОП и подпись к нему.S4
- получено подтверждение даты отправки (ПДОТПР) ИОП оператором. Вложением события будет ПДОТПР и подпись к нему.
При этом события S1
и S4
- опциональны (покупатель не обязан формировать ИОП), события S
и S2
будут всегда.
В истории статусов для этапа отправки УПД СЧФДОП будет опубликован один статус S
.
Количество событий при этом будет зависеть от конкретной ситуации.
Примечание
События не публикуются в виде ленты. Их вместе в вложениями можно запросить с помощью расширенной информации по выбранному документу.