MySQL-Datenbanken helfen, Concurrent Connections vom FileMaker Server fern zuhalten und performant viele Daten zu sammeln.
Bindet man bisher aber ODBC-Quellen ein, kann es zu unschönen Fehlermeldungen kommen, wenn diese nicht erreichbar sind.
Will man also auf Daten aus einer MySQL-Tabelle zugreifen, kann man mittels insertFromURL (a.k.a. cURL) oder MBS cURL mit solchen Datenbanken leicht und zielgenau Daten austauschen, und zwar immer nur dann, wenn man es gerade braucht.
Um dies ohne die WebProgrammierung individueller APIs zu erreichen, braucht es einen Trick ...
• Wir zeigen eine beispielhafte Applikation (OpenSource), die diese Kommunikation standardisiert.
• Wir zeigen unseren Lösungsansatz für die Absicherung dieser Kommunikation mittels API-Keys und wie diese in einer Lösung, die permanent mittels FMDMT aktuell gehalten wird, sicher hinterlegt werden können.
• Weiterhin haben wir ein Toolkit an CustomFunctions erarbeitet, mit dem wir die benötigten JSON-Übergabe-Parameter bequem zusammenstellen und/oder die erhaltenen Antworten aus dem Web wieder in FileMaker verarbeiten können.
• Abschließend zeigen wir einen Use Case aus unserer Standardlösung als Inspiration, was alles möglich ist.
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC Brauch ich da wen, oder kann ich das selbst? by Philipp Puls
1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
www.filemaker-konferenz.com
ESS ohne ODBC —> cURL
Brauch ich da wen, oder kann ich das selbst?
Philipp A. Puls
FileMaker und ESS
2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
1992 –
1999 –
2002 –
2003 –
_
2011 –
2012 –
_
2013 –
_ _ _ _
2015 –
2018 –
Erste kommerzielle FileMaker Datenbank
Event-Sponsoring, Marketing & PR
Gründungseigentümer RADIX Group GmbH
Uni Wien, Abschluss des Studiums der
theoretischen Physik
Verkauf der Anteile an der Radix Group
Mitglied im Führungsteam der Stefan Pusch
Unternehmensberatungs KG (base72)
Gesellschafter der 72solutions GmbH,
(vormals base72)
Jährliche Vorträge auf der dot[x]FMP
Vortragender auf der FMK18
(Wiederholungstäter)
Zertifiziert für:
Mag. Philipp A. Puls
Geschäftsführender Gesellschafter der 72solutions GmbH
3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
ESS - External SQL Source
SQL-Datenbanken …
• … sind schnell
• … sprechen gern mit Vielen, gleichzeitig
• … fürchten sich nicht vor vielen Datensätzen
Aber wenn man FileMaker per ODBC mit ihnen sprechen läßt, merkt man
davon oft nicht mehr viel.
4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
ODBC - pro und contra
Was ODBC gut kann:
• Record Locking (MultiUser XS)
• Synchronizität ohne Synchronisation
• Einbettung in den ERG
5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
ODBC - pro und contra
Was ODBC nicht so gut kann:
• Merhfach-Datenmanipulation und Suchen können langsam sein
• «Fenster Aktualisieren» um die Daten aktuell anzuzeigen
• Unhübsche Fehlermeldungen, wenn die Quelle fehlt
• Verteilen von Zugriffsrechten ist schwierig
• Aktualisierbarkeit im FMDMT Prozess
• Quell-Änderung einer Datei problematisch
6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
DEMO
7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
ODBC - Alternativen
MySQL ohne ODBC —> «InsertFromURL»?
Haben wir versucht:
hier musste unser PHP/Laravell Programmierer individuelle APIs für jeden
Aufruf schreiben und aktuell halten
Das war:
• zeitintensiv
• teuer
• inflexibel
Aber
es
funktioniert!
8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
… was wollt ihr dann?
+ eine standardisierte AbfrageSprache via cURL
+ Zugriffsbeschränkung mittels API-Keys
+ Single-Point-Of-Contact für beliebige externe Datenbanken
+ automatische Anpassung der API Feld-Definitionen bei
Tabellenänderungen
+ Erreichbarkeit über Port 443 (https) — damit das beim typischen Kunden
auch ohne IT-Abteilung und FireWall Experten funktioniert
9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
… und was nicht?
- es soll KEIN online Service sein —> wir können keine Business Lösungen
auf Diensten von Drittanbietern aufbauen, die es vielleicht kommendes
Jahr nicht mehr gibt.
- es soll KEIN online Service sein —> in Produktion werden wir Daten über
diese API schicken, die kein Dritter mitlesen solle, …
Selbst Hosting: ist das nicht zu teuer?
Bei uns laufen schon mehr als ein Duzend virtualisierte Linux Server, aber
wir hätten gerne etwas, das zur Not auch auf einem RaspberryPi läuft.
10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
dreamfactory.com
verfügbar als OpenSource mit oder ohne kostenpflichitge Zusatzpakete
Schauen wir mal …
11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
Wie wir das machen…
mit ein paar CFs machen wir uns das JSONs-Leben einfacher
• JSONParamAnlegen (macht ein JSON aus Feldern)
• JSONRepFeld (Wiederholfelder in JSON umrechnen)
• JSON2var (Variablen aus einem JSON machen)
• eine zentralisierte cURL Funktion (wir verwenden MBS, aber
insertFromURL würde wohl auch gehen)
• und ein paar generische Scripts für CRUD -Operationen in beide
Richtungen
12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
DEMO CFs
DEMO cURL
13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
Was wir damit machen…
Nicht alle Daten in einer Lösung sind benutzergeneriert
Einige Tabellen halten systemrelevante Daten (Navigation, Plug-INs,
Wertelisten, Scritp-Aufrufe etc.)
Im FMDMT kann man nicht wählen, welche Tabellen migriert werden
Also muss man diese Tabellen nach der Migration wieder bevölkern, aber:
Eine externe Datenquelle ist nicht immer erreichbar
Geht der zentrale Server offline, erhalten alle Kunden Fehlermeldungen
Wunsch nach einer generellen Aktualisierbarkeit von Systemtabellen
«over-the-air» (PLZ, Namen, Plug-INs …)
14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
Schema der Kommunikation
DreamFactory
mySQL
eg. Plugins
FileMaker
base72 Toolbox
Dev
cURL
port: 443
APIkey
PostgreSQL
eg. Wertelisten
API
CRUD
base72
solution1
base72
solution2
script:
«DS CreateEdit API (json, xml)»
generalisiert,
ein Scritp für ALLE Tabellen
sync-table
script:
«HandOver Record to SYNC»
parametrisiert,
ein Script pro Tabelle
sync-table
FileMaker
base72 Toolbox
Prod
cURL
port: 443
APIkey
mySQL
eg. Menüführung
15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
Vorteile dieses Prozesses
• Verwendung der externen Datenquelle nur wenn man sie gerade braucht
— keine permanente Verbindung
• Entwickler hat volle Kontrolle über den Datenfluß: nur Daten laden, die
wirklich gebraucht werden (Datensatz und Feld)
• Individuelle API-keys - gespeichert in einem individuellen File als CF
• vernünftiges Rechte-Management
• SQL Quellen Sicherheit — Zugriff kann auf die DreamFactory IP
eingeschränkt werden
16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
ESS ohne ODBC — Philipp A. Puls
Danke für Eure Aufmerksamkeit
17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Vortrag und Sprecher
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages