Синхронизируемая система CRM - PullRequest
2 голосов
/ 25 ноября 2008

Мне нужно разработать систему CRM, которая позволит пользователям иметь локальную копию БД, которая затем может быть синхронизирована с системой основного сервера. Идея состоит в том, что отдел продаж может ездить в районы, где нет интернета, и при этом работать с относительно актуальной информацией, а затем синхронизироваться, когда возвращаются в офис.

Я никогда не делал что-то подобное раньше, кто-нибудь может порекомендовать решение для синхронизации?

Ответы [ 6 ]

1 голос
/ 14 декабря 2008

Зачем изобретать велосипед? Есть много хороших приложений CRM, которые предлагают эту функциональность. Некоторые из них даже с открытым исходным кодом, поэтому вы можете расширить их. Но если вам просто нужна клиентская база данных с автономными возможностями и синхронизацией, то многие приложения CRM предлагают это. Для клиентской базы данных Highrise было бы идеально, но я думаю, что нет никаких функций офлайн / синхронизации. Может быть, посмотрите на SugarCRM , 24SevenOffice или Salesforce ?

А создание приложения синхронизации сложно, так как существует множество проблем, которые необходимо решить с помощью слияния данных. Если вам все еще нужно сделать это, взгляните на SyncML , который является открытым стандартом для синхронизации. Некоторые готовые к установке инструменты доступны по адресу Funambol .

1 голос
/ 25 ноября 2008

Написав именно такую ​​систему, я бы рекомендовал избегать ее, если это возможно. Способы, которыми пользователи могут испортить такую ​​систему, легион, особенно когда пользователи являются командой продаж. CRM-система под названием Act! (вы, вероятно, знакомы) предлагали такую ​​возможность синхронизации в прошлом, и, возможно, они все еще делают. Всякий раз, когда моя компания продает компании, которая использует систему синхронизации Act!, Она всегда жалуется на поврежденные и неправильно синхронизированные базы данных.

Если вам действительно нужно сделать такую ​​вещь, я бы порекомендовал репликацию на уровне базы данных (которая была недоступна на момент написания нашего приложения синхронизации). Многие базы данных предлагают репликацию, в том числе MS-SQL Server. Вы можете устранить многие из проблем, с которыми мы столкнулись, отслеживая изменения на уровне базы данных и назначая базу данных ответственной за передачу этих изменений в удаленную базу данных.

0 голосов
/ 14 января 2009

Вот моя стратегия, когда я выпускаю свое собственное решение для синхронизации в прошлом.

  1. Ограничение количества операций изменения, которые могут произойти, когда система находится в автономном режиме.
  2. Избегайте использования целочисленного автоматического увеличения в качестве первичного ключа, так как это приведет к неприятной проблеме. В прошлом я назначал каждому отключенному клиенту какой-то уникальный идентификатор и использовал этот идентификатор вместе с автоматически генерируемым номером для формирования удобного и читаемого первичного ключа (например, XXX-YYYYYYYY). Это легко сделать, потому что создание последовательного числа тривиально в непараллельной среде.
  3. Вести журнал транзакций, например, каждую операцию DML, которую вы выполняете в автономном режиме, можно «воспроизвести» на сервере. Вы можете оптимизировать этот журнал позже, когда ваши основные потребности синхронизации были выполнены.
  4. Вы должны принять решение о том, как подготовить клиентское приложение, прежде чем оно перейдет в автономный режим. Типичное решение - заставить пользователя нажать кнопку, чтобы приложение перешло в «автономный режим». Я нашел это решение довольно проблематичным, особенно когда ваш пользователь небрежен и забывчив. На ранних этапах обычно достаточно быстрого пощечины от их менеджеров, но позже вы можете реализовать более интеллектуальное интеллектуальное решение.
  5. Сначала создайте мое решение из самой простой операции, а затем перейдите к более сложному сценарию. (Операция с одной таблицей, одна запись, несколько таблиц, несколько записей, серия операций, которая должна действовать как транзакция)
  6. Составьте сценарий разрешения конфликтов. Убедитесь, что сценарий одобрен вашими пользователями.

Само собой разумеется, это болезненное путешествие. Если вы можете передать боль другому участнику (например, приобрести доступные решения CRM), это будет лучшим решением.

0 голосов
/ 14 января 2009

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

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

Я пришел в команду, планировавшую некоторые CRM-подобные компоненты системы, и первоначально они планировали использовать репликацию базы данных, потому что это выглядело легко - до тех пор, пока вы не дойдете до разрешения конфликта.

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

Ничто не помогает в разрешении конфликтов, когда между синхронизациями происходят изменения, это касается уровня приложения. База данных может получить список транзакций для воспроизведения от Боба, но если он отредактировал то же самое, что и Алиса - какую версию он должен использовать? временных отметок недостаточно, потому что, если Алиса заполняет ее, когда уходит и у нее есть ранняя временная метка, но Боб ждет, пока он обедает, и получает более позднюю временную метку.

Я бы действительно посоветовал прочитать все статьи / записи блога, которые вы можете о синхронизации и разрешении конфликтов - синхронизация проста с высоты 10 000 футов, где вы можете быть волнистыми, но это другая история, когда вы не работаете в грязи.

0 голосов
/ 14 января 2009

MS CRM 4.0 имеет автономные возможности в сочетании с Outlook:

http://www.microsoft.com/dynamics/crm/product/overview.mspx

Выход в автономный режим имеет свои особенности (убедитесь, что вы отключились до того, как вы оставите хорошее сетевое соединение), но в целом все работает хорошо. Тем не менее, мобильный клиент еще не вышел.

0 голосов
/ 25 ноября 2008

Возможно, вы захотите взглянуть на Microsoft Synch Framework . Я еще не использовал его, поэтому не могу высказать личного мнения по этому поводу.

...