Frage

Ich brauche ein CRM-System zu entwickeln, die Benutzer erlaubt, eine lokale Kopie der DB zu haben, die dann mit dem Hauptserver-System synchronisiert werden können. Die Idee ist, dass ein Verkaufsteam Nicht-Internet-fähige Bereiche reist und arbeitet nach wie vor mit relativ bis zu aktuellen Informationen und dann synchronisieren, wenn sie wieder ins Büro kommen.

Ive so etwas wie dies noch nie zuvor getan, jeder kann eine Synchronisationslösung empfehlen?

War es hilfreich?

Lösung

Da ich gerade ein solches System selbst geschrieben, würde ich es empfehlen, wenn möglich, vermieden werden. Die Art und Weise, die Benutzer können mess up, ein solches System sind Legion, vor allem, wenn die Benutzer das Verkaufsteam. Ein CRM-System namens Act! (Sie sind wahrscheinlich mit) hat angeboten, eine solche Option sync in der Vergangenheit, und vielleicht noch sie tun. Jedes Mal, wenn mein Unternehmen an ein Unternehmen verkauft, das Gesetz! 'S Sync-System wurde mit der Firma immer klagt über beschädigten und Fehl synchronisiert Datenbanken.

Wenn Sie wirklich so etwas tun müssen, um, dann würde ich auf Datenbankebene Replikation empfehlen (die zur Zeit nicht verfügbar war, dass wir unsere Sync-Anwendung geschrieben). Viele Datenbanken bieten Replikation, einschließlich MS-SQL-Server. Sie können viele der Probleme beseitigen wir durch Verfolgen von Änderungen an der Datenbankebene erfahren, und macht die Datenbank verantwortlich für diese Änderungen zu einer entfernten Datenbank zu transportieren.

Andere Tipps

Warum das Rad neu erfinden? Es gibt viele gute CRM-Anwendungen zur Verfügung, die diese Funktionalität bietet. Einige sind sogar Open-Source, damit Sie sie erweitern können. Aber wenn Sie nur eine Client-Datenbank mit Offline-Fähigkeiten benötigen und synchronisieren dann vielen CRM-Anwendungen bieten, dass. Für nur die Client-Datenbank Highrise wäre perfekt, aber ich denke, es gibt keine Offline / Sync-Funktionen. Vielleicht sehen Sie SugarCRM , 24SevenOffice oder Salesforce ?

Und eine Sync-Anwendung Aufbau ist schwierig, da es jede Menge Probleme mit Datenzusammenführung zu lösen. Wenn Sie noch tun müssen, haben sie dann einen Blick auf SyncML , die für die Synchronisierung ein offener Standard ist . Einige einbaufertig Hilfsmittel sind von Funambol .

Sie können einen Blick auf die Microsoft Synch Rahmen nehmen wollen . Ich habe es noch nicht verwendet, so kann ich keine persönliche Meinung über sie, obwohl geben.

MS CRM 4.0 hat Offline-Funktionen, wenn in Verbindung mit Outlook:

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

offline gehen seine eigene Reihe von Merkwürdigkeiten hat (stellen Sie sicher gehen offline vor Sie verlassen Ihre gute Netzwerkverbindung), aber im Großen und Ganzen funktioniert es gut hier. Das mobile Client Zeug ist immer noch nicht aus, though.

Als erstes - wenn das CRM wird ein Produkt sein, das Sie verkaufen, die von allen bauen measn - wenn es für den internen Gebrauch bestimmt würde ich sagen lassen soemone sonst den Schmerz der Lösung dieser Fragen ertragen und nur ein CRM kaufen.

Anders als Datenbank-Ebene Replikation, die ich glaube nicht ausreichend ist, alles für die Lösung, werden Sie wirklich brauchen ‚rollen Sie Ihre eigenen‘.

Ich kam in ein Team einige CRM-ähnliche Komponenten eines Systems der Planung und zunächst hatte sie geplant, Datenbankreplikation zu verwenden, weil es einfach aussah -., Bis Sie die Konfliktlösung getroffen

Am Ende wechselten wir GUIDs als eindeutige Kennungen, weil es machte den Umgang mit neuen Aufzeichnungen erstellt von den Nutzern viel einfacher zu verwenden - sonst hat man am Ende mit diesen umständlich numerischen ID Partitionierungsschemata für jedes Client-System. Road to Hell.

Im Moment hilft bei der Konfliktlösung, wo Änderungen zwischen Synchronisierungen gemacht bekommen, seiner Anwendungsebene betreffen. Die Datenbank könnte eine Liste der Transaktionen erhalten von Bob zu wiederholen, aber wenn er das gleiche Material wie Alice bearbeitet - welche Version sollte es verwenden? Zeitstempel sind nicht genug, weil was ist, wenn Alice füllt sie aus, als sie geht und hat einen frühen Zeitstempel, aber Bob wartet, bis er Mittagessen ist und bekommt einen späteren Zeitstempel.

Ich würde wirklich empfehlen, lesen Sie alle Artikel / Blog-Einträge Sie auf Synchronisation und Konfliktlösung kann - sync aus einer Höhe von 10.000 ft einfach ist, wo Sie alle Hand wellig sein kann, aber es ist eine andere Geschichte, wenn Sie unten in dem Dreck.

Hier ist meine Strategie in wenn ich meine eigene Synchronisationslösung in der Vergangenheit rollt.

  1. Die Begrenzung der Änderungsoperation, was geschehen kann, wenn das System offline ist.
  2. Vermeiden Sie Autoinkrement integer Verwendung als Primärschlüssel als dieser Wille zu einem fiesen Problem führt. In der Vergangenheit habe ich jeden getrennten Client mit einiger eindeutigen ID zugewiesen, und verwende diese ID in Verbindung automatisch generierten Zahl einen schönen und gut lesbar Primärschlüssel (wie XXX-YYYYYYYY) zu bilden. Dies ist einfach zu tun, weil eine laufende Nummer zu schaffen, in nicht gleichzeitig Umgebung trivial ist.
  3. Halten Sie ein Transaktionsprotokoll, wie jeder DML Operation, die Sie während der Offline tun können „wiederholt“ auf dem Server. Sie können später, um dieses Protokoll optimieren, wenn Ihre grundlegende Synchronisation Bedürfnisse erfüllt sind.
  4. Sie müssen eine Entscheidung treffen, wie Sie Ihre Client-Anwendung vorzubereiten, bevor sie offline gehen. Eine typische Lösung zwingt Ihre Benutzer auf einen Knopf drücken um die Anwendung geben „Offline-Modus“ auszulösen. Ich fand diese Lösung recht problematisch zu sein, vor allem, wenn der Benutzer ist unvorsichtig und forget. Ein kurzer Schlag in den Kopf von ihren Managern in der Regel auf die frühen Phasen ausreichen, aber Sie können später mehr intelligen intelligente Lösung implementieren entscheiden zu.
  5. Erstellen Sie meine Lösung von dem einfachstenen Betrieb zuerst, und dann bis zu einem komplexeren Szenario meiner Art und Weise arbeiten. (Einzeltisch Einzelsatzbetrieb, mehrere Tabellen mehr Datensätze Operationen Reihe von Operationen das muss wirkt als Transaktion)
  6. Erstellen Sie eine Konfliktlösung Szenario. Seien Sie sicher, dass das Szenario von Ihren Benutzern genehmigt.

Unnötig zu sagen, es ist eine schmerzhafte Reise. Wenn Sie den Schmerz an einem anderen Partei (wie der Kauf zur Verfügung CRM-Lösungen) auslagern können, wird das das Beste sein.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top