Synchronisation

Home  Zurück  Weiter

Der Synchronisation-Manager ist die Datensynchronisations-Schnittstelle zum Datenaustausch mit externen Rechnern (Außendienst). Über diese Schnittstelle können fachbezogene/gruppenbezogene Datenausschnitte vom Datenserver für mehrere externe Rechner zur Verfügung gestellt werden.

 

images\Hinweis_klein.gif

Die Synchronisation wird von allen Developer-Fachmodulen unterstützt. Ein Developer-Fachmodul erkennt man daran, dass der Gruppe eine Konfigurationsdatei (gcf) zugeordnet ist.

Für die Nutzung der Synchronisation in einem vorhandenen Fachmodul muss die Konfigurationsdatei entsprechend angepasst werden. Die einzelnen Schritte sind in diesem Kapitel erläutert.

 

hmtoggle_plus1Konfiguration und Vorbereitung

Wenn Sie in einem vorhandenen Fachmodul die Synchronisation nutzen möchten, führen Sie bitte folgende Schritte durch:

Öffnen Sie die entsprechende *.gcf-Datei mit Microsoft Access (Optionen > Einstellung > Konfigurationsdateien) und nehmen Sie die folgenden Eintragungen vor:

In der Tabelle MetaRelationen tragen Sie in die Spalte Table den Namen der Haupttabelle, in die Spalte Key das Schlüsselwort Synchronisation und in der Spalte Value True ein.
Durch diesen Eintrag erhält das Fachmodul die Information, dass alle Daten der eingetragenen Tabelle, sowie alle im Datenmodell darunter verknüpften Daten bei der Synchronisation berücksichtigt werden sollen. Wird die Synchronisation aktiviert, werden standardmäßig alle mit der Haupttabelle verlinkten Relationen bei der Synchronisation berücksichtigt.
Falls Sie eine verlinkte Tabelle (und alle über diese Verlinkung eingebundenen Tabellen) von der Synchronisation ausschließen möchten, ist dies explizit anzugeben. Dazu tragen Sie den in die Spalte Table den Tabellennamen, in die Spalte Key SyncType und in die Spalte Value NoSync ein.
Kennzeichnen Sie Nachschlagetabellen /Steuerungstabellen für die Synchronisaton.

 

Was versteht man unter einer Nachschlagetabelle bzw. Steuerungstabelle und wozu dient sie?

Eine Nachschlagetabelle ist beispielsweise eine Tabelle mit zwei Spalten, wobei die eine ein in die Datenbank einzutragendes Kürzel bzw. eine Nummer beinhaltet und die andere einen Langtext, der zur Anzeige auf der Karteikarte dient. Ein weiteres Beispiel für eine Nachschlagetabelle ist die Steuerungstabelle einer TreeBox.

Um diese Nachschlagetabellen mit zu exportieren, müssen diese gekennzeichnet werden. In der gcf-Tabelle MetaRelationen tragen Sie in die Spalte Table den (die) Namen der Nachschlagetabelle(n), in die Spalte Key das Schlüsselwort SyncType und in die Spalte Value Lookup ein. Nachschlagetabellen werden schreibgeschützt exportiert, aber nicht wieder importiert.

Die Tabellen der Controls LinkBox und DropTable werden vom Programm automatisch als Nachschlagetabellen definiert und werden somit schreibgeschützt exportiert.

Die Synchronisation stellt einen weiteren Schalter zur Verfügung, über den festgelegt werden kann, dass bestimmte Tabellen (zusätzlich zu den verlinkten Karteikarten-Tabellen) als leere Tabellen exportiert werden. Beim Import werden gegebenenfalls erfaßte Datensätze an die Bestandstabelle angehängt. Ein Primärschlüsselüberprüfung bzw. Datenabgleich findet nicht statt.

Dazu tragen Sie in die Spalte Table den Tabellennamen, in die Spalte Key SyncType und in die Spalte Value ImportOnly ein.

Um die Synchronisation nutzen zu können, schließen / öffnen Sie die Gruppe. Es erscheint folgende Meldung:

manager_synchronisation4.zoom75
(vergrößern)

An alle Relationen der zur Konfiguration gehörigen Gruppe wird jeweils eine Spalte SyncID angehängt. War das Einrichten der Synchronisation erfolgreich, erscheint eine Nachricht als Bestätigung.

manager_synchronisation5.zoom75
(vergrößern)

images\Hinweis_klein.gif

Nach dem Neustart kann es vorkommen, dass Relationen aus dem Kartenfenster verschwinden. Schalten Sie die betreffende Gruppe dann einfach wieder über die Layerkontrolle an.

Bei allen Eintragungen in der GCF ist die Groß-Kleinschreibung zu beachten!

Bei der Haupttabelle muss es sich nicht zwingend um eine grafische Haupttabelle handeln. Für Konfigurationen, bei denen die Haupttabelle nicht über eine eigene Grafik verfügt, kann beispielsweise auch die verlinkte Grafiktabelle als „Haupttabelle" eingesetzt werden.

Falls Sie mit einer Historienverwaltung arbeiten, wird beim Export eine leere Historientabelle exportiert und beim Import wird diese wieder importiert.


hmtoggle_plus1Datenexport

Mit dem Datenexport werden die selektierten Objekte und Daten, sowie alle damit verknüpften Daten aus Untertabellen in einem separaten Verzeichnis abgelegt. Alle exportierten Datensätze, sowie die entsprechenden Daten des Hauptdatenbestandes erhalten eine eindeutige Synchronisations-Identifikationsnummer (SyncID).

Um Daten für den Außendienst zu exportieren, selektieren Sie die entsprechenden Objekte (im Kartenfenster oder Anzeigefenster) und rufen Sie das Menü <Manager> <Synchronisation> auf.

In der ersten Zeile des Dialogs wird der neue Export gelistet. Die Spalten Verzeichnis und Beschreibung sind modifizierbar. Geben Sie hier ein Exportverzeichnis und gegebenenfalls eine Beschreibung an und klicken Sie anschließend auf Export. Ist die Export-Schaltfläche nicht aktiv, wurden vorab keine zu exportierenden Objekte selektiert oder es ist ein Datensatz in der Liste markiert, der bereits importiert wurde.

Wurde der Export erfolgreich durchgeführt, wird eine entsprechende Meldung angezeigt. Zudem stehen dann die Funktionen Import und Verwerfen zur Verfügung.

Manager_Synchronisation1

 

Die ausgewählten Objekte sowie alle damit verknüpften Daten und die Nachschlage-Tabellen werden in das Export-Verzeichnis exportiert. Im Originalbestand werden die entsprechenden Datensätze mit einer eindeutigen SyncID gekennzeichnet.

Die Exportrelation erhält in der *.tab-Datei einen entsprechenden Eintrag:

ReadOnly

begin_metadata

"\IsReadOnly" = "FALSE"

"\SyncID" = "1"

end_metadata

manager_synchronisation6.zoom50
(vergrößern)

Exportierte Objekte können bis zum späteren Rück-Import über die Karteikarten nicht mehr bearbeitet werden.

Sind ein oder mehrere exportierte Objekte selektiert, erscheint beim Aufruf der Karteikarte eine entsprechende Meldung, bevor die Karteikarte im Auskunftsmodus geöffnet wird.

manager_synchronisation7.zoom75

Beim Versuch, dieselben Objekte oder eine Auswahl bereits exportierter Objekte erneut zu exportieren, erscheint nach Aktivierung der Schaltfläche „Export" eine Meldung.

Bearbeitung exportierter Objekte

Im Außendienst können die exportierten Daten wie gewohnt bearbeitet, gelöscht und auch neu angelegt werden. Lediglich die Nachschlage-Tabellen sind hier schreibgeschützt.

manager_synchronisation8.zoom54

images\Vorsicht_klein.gif

Die Sperrung wirkt nicht, wenn Daten - insbesondere Primärschlüssel und SyncID’s - manuell im Karten- oder Anzeigefenster manipuliert werden! Achtung, Datenverlust möglich!


hmtoggle_plus1Datenimport

Der Datenimport liest alle Daten aus einem Verzeichnis ein und gleicht diese mit Hilfe der Identifikationsnummer mit dem Hauptdatenbestand ab. Die Synchronisation unterstützt geänderte, gelöschte und neu angelegte Datensätze.

Um einen Datenbestand aus der Außendienstbearbeitung wieder zu importieren, rufen Sie den Synchronisationsmanager erneut auf. Markieren Sie den entsprechenden Datensatz. Der aktuelle Datensatz wird immer rot selektiert. Stellen Sie sicher, dass die zu importierenden Daten auch tatsächlich in dem angegeben Verzeichnis liegen, gegebenenfalls ändern Sie das Verzeichnis.

Manager_Synchronisation2

 

Import

Nach Betätigung der Schaltfläche "Import" werden die Daten wieder in den Original-Datenbestand übernommen und mit den Bestandsdaten abgeglichen. Die Synchronisation vergleicht die eindeutige SyncID und die Primärschlüssel und aktualisiert vorhandene Daten. Neue Datensätze werden hinzugefügt, entfernte Datensätze gelöscht.

Die Exportrelation bleibt erhalten, der Eintrag in der *.tab-Datei wird angepasst:

ReadOnly

begin_metadata

"\IsReadOnly" = "FALSE"

"\SyncID" = ""

end_metadata

 

Sollten in mehreren Import-Datenbeständen neue Objekte mit den gleichen neuen Primärschlüsseln angelegt worden sein, werden diese abgeglichen und - wenn möglich - durch neue, eindeutige Schlüssel ersetzt.

Sollte dies der Fall sein, wird zusätzlich ein Import-Protokoll angelegt und im Synchronisations-Manager die Schaltfläche „Protokoll" aktiviert. Das Import-Protokoll besteht aus einer Textdatei, die im Datenverzeichnis gespeichert wird und über die Protokoll-Schaltfläche direkt aufgerufen werden kann.

Die Protokoll-Schaltfläche bleibt aktiv, solange das Protokoll existiert.

Nach dem erfolgreichen Import sind diese Datensätze im Haupt-Datenbestand wieder bearbeitbar und exportierbar. In die Synchronisationsübersicht wird das Importdatum eingetragen.

 

Verwerfen

Sofern der Export fehlerhaft vorgenommen wurde bzw. exportierte Daten nicht wieder importiert werden müssen, besteht die Möglichkeit, den Exportauftag zu verwerfen.

Markieren Sie dazu die entsprechende Zeile des Exportauftrages, der verworfen werden soll und aktivieren Sie die Schaltfläche Verwerfen.

 

Aufträge löschen

Die Einträge bleiben im Synchronisations-Manager aufgelistet, solange sie nicht über das Kontextmenü der rechten Maustaste oder die Entf-Taste gelöscht werden.

 

images\Hinweis_klein.gif

Da zur gleichen Zeit mit Auszügen aus demselben Hauptdatenbestand gearbeitet werden kann, liegt die Hauptaufgabe der Synchronisation in der Verwaltung der Primärschlüssel und der SyncID’s. Um einen eindeutigen Abgleich zu gewährleisten, ist die Verwendung eines Primärschlüssels vom Typ Integer (ganze Zahl) zu empfehlen. Nur so können bei doppelten Schlüsseln automatisch neue Schlüssel generiert werden.

Wird als Primärschlüssel z. B. eine Textspalte verwendet, müssen die Anwender selbst darauf achten, dass keine doppelten Schlüssel im Außendienst produziert werden. Die Synchronisations-Routine meldet in diesem Fall zwar doppelte Schlüssel, kann aber die Daten nicht automatisch bereinigen.

In diesem Fall kann mit der Funktion Doppelte Werte finden eine Datenprüfung vorgenommen werden.

images\Vorsicht_klein.gif

Bitte beachten Sie, dass es beim Löschen von Synchronisationsaufträgen zu Dateninkonsistenzen kommen kann.

Beispiel: Ein Auftrag wird mit der ID 50 in das Verzeichnis Hausen_Nord exportiert. Anschließend wird dieser Auftrag gelöscht (die Daten bleiben im Verzeichnis Hausen_Nord bestehen). Der nächste Auftrag wird folglich wieder mit der ID 50 erzeugt (da die ID 50 durch das Löschen wieder freigeworden ist). Die Daten werden nun beispielhaft allerdings in das Verzeichnis Hausen_Süd exportiert. Dateninkosistenzen können nun auftreten, wenn beim Import nicht das Verzeichnis Hausen_Süd sondern das Verzeichnis Hausen_Nord angegeben wird. Denn die Daten aus Hausen_Nord haben die ID 50 und können somit importiert werden. Nach dem Import wird der Auftrag „ID 50" geschlossen und die Daten aus dem eigentlichen Verzeichnis Hausen_Süd können nicht mehr importiert werden.