Holger Darjus zeigt, wie Daten aus eine flachen Struktur (z.B. einer Excel-Tabelle)
in eine FileMaker App übernommen werden können und dabei sofort eine
Anpassung auf die Datenbankstruktur vorgenommen wird.
Zudem wird gezeigt, wie eine generische Synchronisation zwischen einer
Offline-Datei (z.B. eine unter FileMaker Go laufende App) und einer, auf einem
Server bereitgestellten FileMaker-App, erfolgen kann.
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2018-Migration und Synchronisation Holger Darjus
1. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
www.filemaker-konferenz.com
Holger Darjus
Migration und Synchronisation
2. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Holger Darjus
Holger Darjus (geb. 1962) ist ausgebildeter Designer
und IT-Kaufmann. Seit über 25 Jahren als FileMaker Entwickler tätig.
Schwerpunkte:
• Komplexe Lösungen für Industrie und Gewerbe.
• Liebhaber von Oldtimern (US Fahrzeuge der 50er)
• Gründer des Kompetenz-Institut für Wirtschaftsinformatik.
• Autor für Fachartikel im FileMaker-Magazin
• Sprecher FMK 2013/2014/2016/2018/…
• Autor von FileMaker Webinaren
3. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
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.
Zudem wird eine generische Methode, 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.
4. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Technische Voraussetzungen
UUIDs (Universally Unique Identifier)
Eindeutige Primär-Schlüssel (IDs) zum Abgleich der Datensätze.
(Beispiel: „309A18CF-0899-4C2C-B80F-AAEF9D95C350“ )
Änderungszeitstempel
Feld mit einem Änderungszeitstempel der letzten Änderung eines Datensatzes. Die
automatische Veränderung muss ggf. unterbunden
werden können. (Nur bei Synchronisation notwendig).
SQL Grundwissen
Zum 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“)
5. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
UUID
Hole (UUID)
6. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Änderungszeitstempel
SetzeVar
(
[
Trigger = HoleFeldwert ( "" ) ;
TS = Hole (HostZeitstempel) ;
Mod = (Tabelle::NO_AUTO_MOD)
// „Oder $$-Variable“
] ;
Falls
(
Mod = 1 ; Selbst ;
TS )
)
Wenn das Feld »No_REC_Mod« den Wert 1 hat,
werden keine automatischen Veränderungen am
Änderungszeitstempel vorgenommen.
Auf diese Weise kann bei Routinen durch einen
Admin oder anderen Anlässen verhindert werden,
das sich die Änderungsdaten der Datensätze verändern.
7. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
SQL
SQLAusführen("
SELECT BaseTableName
FROM FileMaker_Tables
WHERE BaseFileName LIKE ?";
""; "";
"Quelle" & "%" )
8. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Transistor
9. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Ausgangssituation
In 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).
10. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
In der Praxis
11. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Ausgangssituation / Zielsetzung
Wann 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
12. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Live Demo Migration
13. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Generischer Datenabgleich
Nicht in jedem System ist Performance die wichtigste Eigenschaft.
VS.
Traktor/Generische Lösung
= wartungsfrei und zuverlässig
= universell einsetzbar
= langsamer
Sportwagen/Hartkodiert
= erhöhter Support
= längere Entwicklungszeit
= schnell
14. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Ü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?
15. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
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
16. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Connector/Transistor
17. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
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).
18. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Genutzte Funktionen
• Logikfunktion
HoleFeldname ( Feld )
Gibt den vollständig qualifizierten Namen eines Feldverweises zurück.
Beispiel:
Berechne ( HoleFeldname ( Berechne ($ToLocal & "::" & $$SYNC.FieldNameModified )))
19. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
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 )
20. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
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 ]
20
21. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Danke Jörg!
Ein großes Dankeschön an Jörg Köster
Dieser Vortrag wurde erstmalig 2015
auf der FileMaker Konferenz in Salzburg gezeigt.
Die Ausarbeitung der generischen Sychronisation
basiert auf einem Konzept von Jörg Köster.
Das Prinzip wurde in den letzten Jahren gemeinsam ausgebaut
und verrichtet seit dem in zahlreichen FileMaker Lösungen
hervorragende Dienste.
21
22. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Migration und Synchronisation | Holger Darjus
Live Demo generische Synchronisation
23. 9. FileMaker Konferenz | Liechtenstein | 17.-20. Oktober 2018
Vortrag und Sprecher
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages
Hinweis der Redaktion
2 Min.
KIWI seit 2 Jahren
Jörg bis einschließlich Absatz 2
Holger erklärt was er zeigt. Ausgangssituation „flache“ Excel-Tabelle. Übernahme der Daten in ein relationales Daten-Modell.
Jörg erklärt was er zeigt.
ca. 2 Minuten
UUIDs - Jörg
Änderungszeitstempel - Jörg
SQL - nix
Transistor - Holger
Alles nur im Anriss!
3 Minuten
Jörg/Holger
Erläuterung warum fortlaufende Seriennummern nicht mehr brauchbar sind.
3 Minuten
Jörg
Erläuterung warum es eine gute Alternative ist diese Art der Berechnung zu verwenden.
3 Minten
Holger
1 Minute
Nur ein kurzer Ausblick wie ein Beziehungsdiagramm aussehen kann.
Vertiefung in der Live-Demo Transistor und Hinweis auf nächsten Vortrag
1 Minute
Holger
2 Minuten
10 sec
Holger/Jörg
Hinweis darauf, dass im Zuge der Verwendung immer mehr Einsatzgebiete entdeckt wurden.
3 Minuten
1 Min.
Wenn Vergleich, dann Import vs. Daten schreiben.