26
7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016 www.filemaker-konferenz.com Holger Darjus | Jörg Köster Migration und Synchronisation

FMK2016 - Holger Darjus und Jörg Köster - Migration und Synchronisation

Embed Size (px)

Citation preview

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

www.filemaker-konferenz.com

Holger Darjus | Jörg Köster

Migration und Synchronisation

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Über die Sprecher

Holger Darjus Jörg Köster

FileMaker-Entwickler aus Leidenschaft

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Holger Darjus

Holger Darjus ist ausgebildeter Designer und IT-Kaufmann.Seit fast 25 Jahren als FileMaker Entwickler tätig.

Liebhaber alten Eisens auf 4 Rädern z.B. „Flossengiganten“ aus den Fifties und Autos mit „Dachschaden“.

Gründer des Kompetenz-Institut für Wirtschaftsinformatik.

Schwerpunkte:Komplexe Lösungen für Industrie und Gewerbe.

• Autor für Fachartikel im FileMaker-Magazin

• Sprecher FMK 2013/2014/2016…

• Autor von FileMaker Webinaren

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Jörg Köster

Jörg Köster hat Musik studiert und arbeitet auch als freiberuflicher Pianist und Arrangeur.

Seit 2009 steht FileMaker im Vordergrund seines Wirkens. Er entwickelt Individual-Lösungen für Freiberufler und kleine bis mittlere Unternehmen und ist Herausgeber der Agentur-Software „CAOS“.

Zu seinen Kunden gehören Ingenieurbüros, Werbeagenturen, Musikverlage, Speditionen und viele mehr.

• Zertifizierter FileMaker-Entwickler

• Autor für Fachartikel im FileMaker-Magazin

• Sprecher FMK 2014/2015/2016…

• Gewinner des FileMaker-Magazin-Awards 2014

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Was Sie in diesem Vortrag erwartet:Datensätze importieren war gestern.

In diesem Vortrag lernen Sie, wie auf elegante Weise Daten aus anderen (FileMaker-) Lösungen in Ihre Tabellen übernommen werden können.

Die vorgestellte Methode eignet sich ebenfalls hervorragend für den Abgleich von Datenbeständen auf iOS-Geräten und einer, auf FileMaker-Servern bereitgestellten Datenbanken.

Holger Darjus stellt Ihnen einen Weg vor, mit dessen Hilfe Daten aus "fremden" Systemen in eine Lösung übernommen werden können und dabei gleichzeitig die gesamte Datenstruktur angepasst wird.

Jörg Köster wird eine generische Methode vorstellen, die mit wenigen Klicks auf alle Tabellen in FileMaker-Lösungen anwendbar ist. Durch den Einsatz dieser Methode können FileMaker-Go-Anwendungen ohne Probleme auch im "Offline-Modus" betrieben, und die Daten bei Netzverfügbarkeit mit dem Server synchronisieren werden.

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Jörg Köster / Holger DarjusWarum der gemeinsame Vortrag

Im Zuge des gemeinsamen Austausches von Erfahrungen haben wir festgestellt, dass wir vergleichbare Methoden für unterschiedliche Anwendungsfälle entwickelt haben.Im Laufe der Zeit erfolgte eine gemeinsame Optimierung der Prozeduren und die Erkenntnis über die „Macht“ dieser Methode.

Dieses Wissen möchten wir gerne weitergeben und andere Entwickler dazu inspirieren sich mit der Methode auseinander zu setzen und ggf. eigene Anwendungsfälle damit zu bedienen.

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Technische VoraussetzungenUUIDs (Universally Unique Identifier)Eindeutige Primär-Schlüssel (IDs) zum Abgleich der Datensätze.(Beispiel: „309A18CF-0899-4C2C-B80F-AAEF9D95C350“ )

ÄnderungszeitstempelFeld mit einem Änderungszeitstempel der letzten Änderung eines Datensatzes. Die automatische Veränderung muss ggf. unterbunden werden können. (Nur bei Synchronisation notwendig).

SQL GrundwissenZum Abgleich der Datensätze werden einfache SQL-Abfragen eingesetzt.

Transistor Datenmodell Zum Lesen und Schreiben der Datensätze wird das Transistor-Prinzip angewendet. (Alternativ „Connector/Selector“)

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

UUID

Hole (UUID)

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Änderungszeitstempel

SetzeVar ( [ Trigger = HoleFeldwert ( "" ) ; TS = Hole (HostZeitstempel) ; Mod = (Tabelle::NO_AUTO_MOD) // „Oder $$-Variable“ ] ;

Falls ( Mod = 1 ; Selbst ; TS )

)

WenndasFeld»No_REC_Mod«denWert1hat,werdenkeineautomatischenVeränderungenamÄnderungszeitstempelvorgenommen.

AufdieseWeisekannbeiRoutinendurcheinenAdminoderanderenAnlässenverhindertwerden,dassichdieÄnderungsdatenderDatensätzeverändern.

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

SQL

SQLAusführen("

SELECT BaseTableName FROM FileMaker_Tables WHERE BaseFileName LIKE ?"; ""; "";

"Quelle" & "%" )

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Transistor

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

AusgangssituationIn diesem Vortrag werden wir:

• Eine Excel-Tabelle in eine FileMaker-Datenbank konvertieren

• Die „flache“ Struktur der Excel-Tabelle in ein relationales Datenbankmodell übertragen und dabei gleichzeitig „Datenkorrekturen“ vornehmen.

• Die übernommenen Daten auf eine Offline-Datenbank eines iOS-Gerätes übertragen.

Datenquelle ist eine Excel-Tabelle mit ca. 7.000 Zeilen in denen Angaben zu Firmen, Personen, Adressen und Angaben zu Rufnummern und E-Mail-Adressen hinterlegt ist.

(Die Daten entsprechen dem klassischen Aufbau von personenbezogenen Daten, sind jedoch vollständig abstrahiert und wurden per Zufallsgenerator erstellt. Ähnlichkeiten mit real existierenden Person sind rein zufällig und nicht beabsichtigt).

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

In der Praxis

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Ausgangssituation / ZielsetzungWann wird der Einsatz der vorgestellten Techniken sinnvoll?

• Ein „fremde“ Datenquelle soll in eine FileMaker-Lösung übernommen werden

• Wiederkehrende Importe sollen automatisiert werden

• (Offline) iOS-Geräte sollen mit einer Datenbank synchronisiert werden

• Veränderte Datensätze sollen aktualisiert werden

• Datenbestände sollen zusammengeführt werden

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Live Demo Migration

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Jörg

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Generischer DatenabgleichNicht in jedem System ist Performance die wichtigste Eigenschaft.

VS.

Traktor/Generische Lösung = wartungsfrei und zuverlässig= universell einsetzbar= langsam(?)

Sportwagen/Hartkodiert= hoher Support= längere Entwicklungszeit= schnell

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Überlegungen/Anforderungen• Welche Tabellen sollen synchronisiert werden und in welche Richtung?

• Welche Datensätze wurden neu geschrieben oder geändert?

• Welche Felder sollen/können miteinander abgeglichen werden?

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Erforderliche Funktionen & Scriptschritte• Hole (UUID)

– zwingend erforderlich bei Offline-Lösungen (z.B. FileMaker Go)

• SQLAusführen

– Ermittlung und Abgleich von UUIDs und Feldnamen

• Feld nach Namen einstellen

– Im Kontext einstellbar

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Connector/Transistor

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Abläufe

Tabelle(n) Datensätze Feldnamen

Tabellen werden festgelegt und in einer Schleife abgearbeitet.

Script: „Sync Table" Script: „Sync Record“ Script: „Sync Field“

Es werden Datensätze ermittelt, die seit der letzten Synchronisation geändert/geschrieben wurden (Zeitstempel) und in einer Schleife abgearbeitet.

Wurden Datensätze gefunden, werden mittels einer SQL-Abfrage die Tabellenfelder ermittelt, in einer Schleife abgearbeitet und die Werte geschrieben (synchronisiert).

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Genutzte Funktionen• Logikfunktion

HoleFeldname ( Feld )

Gibt den vollständig qualifizierten Namen eines Feldverweises zurück.

Beispiel: Berechne ( HoleFeldname ( Berechne ($ToLocal & "::" & $$SYNC.FieldNameModified )))

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Genutzte Funktionen• Logikfunktion

SQLAusführen {…}Führt eine SQL-Abfrage für das festgelegte Tabellenauftreten in einer FileMaker Pro-Datei aus.

Beispiel:

SQLAusführen ( " SELECT FieldName FROM FileMaker_Fields WHERE TableName = ? AND FieldClass = 'Normal' AND FieldType NOT LIKE 'global%'" ; ""; ¶; $ToLocal )

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Benutze Scriptschritte• Scriptschritt

Feld nach Namen einstellen[<berechnetes Zielfeld>; <Wert oder Formel>]

Ersetzt den vollständigen Inhalt des berechneten Zielfelds im aktuellen Datensatz durch das Ergebnis eines berechneten Werts.

Beispiel: Feld nach Namen einstellen [ $ToFieldLocal ; $FieldContentServer ]

24

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

Migration und Synchronisation | Holger Darjus & Jörg Köster

Live Demo generische Synchronisation

7. FileMaker Konferenz | Salzburg | 13.-15. Oktober 2016

FileMaker Konferenz 2016 Salzburg

Vielen Dank unseren Sponsoren

Ohne Sponsoring wäre diese Konferenz so nicht möglich!