Creatio development guide
Это документация Creatio версии 7.9.0. Мы рекомендуем использовать новую версию документации.

Автоматическое разрешение конфликтов при синхронизации

Glossary Item Box

Общая информация

В ходе синхронизации мобильного приложения, работающего в offline-режиме, могут возникать ситуации, когда переданные в bpm’online данные не могут быть сохранены по ряду причин. К таким причинам могут относиться следующие:

  • Запись была слита в bpm'online с другой дублирующейся записью, поэтому ее не существует.

  • Запись была удалена из bpm'online.

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

Слияние дублей

Алгоритм разрешения конфликта, возникающего по причине использования данных, которые в bpm’online были  удалены в ходе процедуры слияния дублей, представлен схематически на рис. 1:

Рис. 1. — Схема разрешения конфликта, возникшего в результате слияния дублей на сервере

 

Как видно на схеме, в ходе синхронизации приложение сначала забирает на сервере информацию о том, по каким записям с момента последней синхронизации производилось слияние дублей. А именно какие записи были удалены и какие записи их заменили. Если в ходе экспорта не было никаких ошибок, то далее выполняется импорт. Если же произошла ошибка, связанная с исключением внешнего ключа (Foreign Key Exception), или ошибка, связанная с тем, что на сервере не была найдена какая-то из записей (Item Not Found Exception), то выполняется процедура разрешения этого конфликта со следующими этапами:

  • В экспортируемых данных ищутся колонки, содержащие “старую” запись.
  • В найденных колонках “старая” запись заменяется новой, в которой данные объединялись.

После этого запись повторно отправляется в bpm’online. Как только заканчивается импорт и появляется информация о слитых дублях, локально производится удаление “старых” записей.

Запись не найдена

В случае, когда сервер возвращает ошибку, свидетельствующую о том, что измененная пользователем запись в bpm’online не найдена, приложение выполняет следующие действия:

  1. Проверяет наличие записи в списке заисей, удаленных в ходе слияния дублей (см. “Слияние дублей”).
  2. Если в списке удаленных записи нет, то приложение удаляет ее локально.
  3. Удаляет информацию по этой записи из лога синхронизации.

Таким образом, приложение считает этот конфликт разрешенным и продолжает экспорт данных.

 

© Terrasoft 2002-2017.

Был ли данный материал полезен?

Как можно улучшить эту статью?