Offline-first SFA: как организоватьработу без стабильной связи
Offline-first SFA позволяет выполнить согласованный полевой сценарий при нестабильной связи, сохранить данные визита на устройстве и синхронизировать их после восстановления соединения. Надёжность зависит от заранее заданного состава локальных данных и правил разрешения конфликтов.
Durust: онлайн-заказы, шаги визита и маршруты полевой команды
Offline-first по шагам
Офлайн - это управляемый набор данных, а не копия всей системы.
Переключите этап. Устройство получает только согласованный рабочий набор, сохраняет первичные события визита локально и передаёт их в контролируемой очереди после восстановления соединения.
Набор подготовлен
Набор подготовлен
Подготовить рабочий набор
Перед выходом устройство получает данные, разрешённые роли, территории и версии правил для ближайшего рабочего сценария.
Назначенные торговые точки и маршрут
Нужные товары, цены и ассортимент
Задачи, формы и ограничения визита
События в очереди
События в очереди
Зафиксировать первичный факт локально
Сотрудник выполняет согласованные шаги визита, а каждое событие получает устойчивый идентификатор, время и связь с торговой точкой.
Check-in/check-out и результат визита
Заказ, оплата, возврат или причина отказа
Фото, задача и комментарий по сценарию
Есть итог по каждой операции
Есть итог по каждой операции
Передать, проверить и подтвердить
Очередь отправляет операции в определённом порядке. Сервер проверяет идентификатор, версию и бизнес-правила, затем возвращает итог по каждой записи.
Ожидает передачи
Принято и подтверждено
Отклонено с причиной и следующим шагом
Офлайн-режим - не копия всей серверной системы на телефоне. На устройство передаётся только тот набор клиентов, товаров, цен, задач и ограничений, который нужен сотруднику для его маршрута и роли.
Надёжная синхронизация
Возвращение связи - начало проверки, а не мгновенный статус «готово».
Анимированная очередь показывает путь одной операции. Следующий шаг начинается только после сохранённого результата предыдущего.
01Устройство
Записать
Операция получает локальный ID, время, пользователя и контекст торговой точки.
Первичный факт сохранён
02Очередь
Упорядочить
Зависимые события ждут своей последовательности и не теряются при повторном запуске.
Порядок известен
03Соединение
Передать
Клиент отправляет операцию с идемпотентным ключом и ожидает структурированный ответ.
Повтор контролируется
04Сервер
Проверить
Сервер сверяет версии, права, дубли и актуальные бизнес-правила.
Решение объяснимо
05Результат
Подтвердить
Устройство получает итог: принято, отклонено или требуется действие ответственного.
Статус видим
Локальная запись → очередь → передача → серверная проверка → подтверждённый итог
Главный риск возникает не при отсутствии сети, а при возвращении связи: серверные данные могли измениться, один документ мог быть создан повторно, а правило продажи - обновиться. Поэтому синхронизация должна быть отдельным контролируемым процессом.
Failure modes
Конфликт нельзя прятать за общей надписью «ошибка синхронизации».
Выберите сценарий. Панель отделяет обнаруженный факт от риска и показывает, кто должен принять следующее решение.
Дубликат предотвращён
Операция уже была принята сервером
Сигнал
Тот же идемпотентный ключ или бизнес-идентификатор найден повторно.
Риск
Создать второй заказ, платёж или другое коммерческое событие.
Следующий шаг
Вернуть сохранённый итог первой обработки без повторного создания документа.
Владелец
Интеграционный сервис
Нужно бизнес-решение
Локальная версия цены или ограничения устарела
Сигнал
На сервере действует более новая версия правила, чем использованная в операции.
Риск
Подтвердить документ на условиях, которые уже не действуют.
Следующий шаг
Остановить автоматическое завершение и применить согласованный сценарий пересчёта или согласования.
Владелец
Коммерческий владелец правила
Требуется сопоставление
Клиент, товар или назначение больше не совпадает
Сигнал
Связанная запись деактивирована, объединена или переназначена после последнего обновления устройства.
Риск
Привязать визит или заказ к неверной сущности и исказить отчётность.
Следующий шаг
Сохранить исходный контекст, запросить сопоставление и повторить проверку после решения владельца данных.
Владелец
Владелец мастер-данных
Синхронизация не завершена
Событие или вложение осталось в очереди
Сигнал
Основная запись получена, но зависимый шаг не имеет подтверждённого результата.
Риск
Показать визит завершённым при неполном наборе согласованных доказательств.
Следующий шаг
Сохранить частичный статус, повторить только недоставленную часть и не закрывать процесс заранее.
Владелец
Пользователь и техническая поддержка
Руководителю важно видеть не обещание «работает без интернета», а границы: какие действия доступны локально, когда данные считаются актуальными и что происходит с конфликтной операцией.
Граница ответственности
Пять контролей делают офлайн-сценарий проверяемым.
01
Состав действий
По каждой роли зафиксировано, что можно создать, изменить и только прочитать локально.
02
Актуальность
Пользователь видит время обновления критичных справочников и согласованную реакцию на устаревание.
03
Идентичность
У операций есть устойчивые ID, версии и ключи повторной передачи без дублирования.
04
Защита устройства
Хранение, доступ, срок сессии и реакция на потерю устройства подтверждаются политикой проекта.
05
Видимый итог
Ожидающие и отклонённые операции доступны пользователю и владельцу разбора до закрытия.
Готовность к пилоту
Что проверить в реальном маршруте до масштабирования
Тестируйте не только отсутствие соединения, но и его возвращение, повторную передачу, изменение правил и неполный обмен.
01
Роль и набор данных
На устройство попадает только необходимый сотруднику маршрутный и коммерческий контекст.
02
Критичные действия
Для визита, заказа, оплаты, возврата и доказательств согласован доступный офлайн-сценарий.
03
Повторная отправка
Перезапуск и нестабильная сеть не создают второй документ или потерянное действие.
04
Конфликт
Пользователь получает понятную причину, а ответственный - данные для решения.
05
Наблюдаемость
Команда видит размер очереди, возраст операции, итог и незакрытые исключения.
01
Перед маршрутом устройство получает разрешённые справочники, задачи и данные клиентов.
02
Во время визита события сохраняются локально с идентификатором, временем и связью с торговой точкой.
03
После появления соединения очередь операций передаётся на сервер в определённой последовательности.
04
Сервер проверяет версии, бизнес-правила и дубли, после чего подтверждает операцию либо возвращает причину конфликта.
05
Непереданные и отклонённые операции остаются видимыми сотруднику и ответственному руководителю.
Практический чек-лист
Перечень доступных офлайн-действий зафиксирован по ролям.
Пользователь видит статус синхронизации каждой критичной операции.
Повторная отправка не создаёт второй заказ или платёж.
Для конфликтов назначен владелец и понятный сценарий разбора.
Граница применения
Нельзя обещать одинаковый офлайн-сценарий для любого устройства, срока отсутствия связи и набора модулей. Состав локальных данных, период актуальности и правила синхронизации согласуются для конкретного проекта.