Перейти к основному содержимому

Синхронизация и статусы

Обмен включает исходящее формирование документов и обратное обновление входящих документов и состояний. В действующей инструкции указан фоновый интервал около 10 минут.

Модель состояний должна различать:

  • создан;
  • подготовлен;
  • отправлен;
  • подписан нашей стороной;
  • подписан контрагентом;
  • отказан;
  • аннулирован;
  • оплачен;
  • ошибка.

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

Получение изменений из Saby

  1. Получить изменения с момента последней успешной проверки.
  2. Определить тип и направление документа.
  3. Пропустить выключенные типы и направления.
  4. Найти или создать контрагента; при необходимости дополнить пустые реквизиты.
  5. Найти CRM-элемент по внешнему ID документа Saby.
  6. Обновить стадию, статус и ссылку либо создать новый элемент в правильной категории.

Время последней проверки должно обновляться только после успешной обработки согласованной области, чтобы частичный сбой не приводил к потере изменений.

Отправка новых документов

  1. Выбрать новые элементы на стадии «Черновик».
  2. Проверить обязательные реквизиты и данные документа.
  3. Для файлового документа приложить файл; для УПД сформировать содержимое из позиций и реквизитов.
  4. Отправить документ и сохранить внешний ID и ссылку.
  5. Выполнить согласованный сценарий подписи или создать задачу менеджеру.
  6. Записать результат и понятную ошибку.

Ошибки

Текущая инструкция описывает агрегированное сообщение в служебный чат за один проход и отдельный комментарий в карточке документа. В production-реализации сообщения должны маскировать содержимое документов и секреты, но сохранять correlation ID, шаг и код ошибки.

Требуется аудит

Расписание около 10 минут и описанные шаги перенесены из документации. Реальный locking, checkpoint, retry/backoff и транзакционные границы проверяются по исходникам и staging.