FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FileMaker Schnittstellen
• Lasso (1995)
• CDML (Claris Data Markup Language), FileMaker 4.1
• Requests mit speziellen Parametern:
• FMPro?-DB=db.fp5&-Format=query.htm&-View
• Response als HTML oder XML
• Hat damals gut funktioniert, war aber sehr „speziell“
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
fx.php
FileMaker 5 bis heute?
• PHP Abstraktionslayer mit fx.php
• Kostenlos und Open Source
• Erste Schulung in Salzburg Februar 2003
• „Schwer“ in der Handhabung
• Keine „richtige“ Objektorientierung
$InstanceName = new FX($serverIP,$serverPORT);
$InstanceName=SetDBData (‚guestbook.fp5','www','10')
$InstanceName->AddDBParam('Vorname', 'Bernhard','eq');
$InstanceName-AddDBParam('Nachname', 'Schulz','eq');
$ReturnedData = $InstanceName-FMFind();
Akzeptable Abstraktion von CDML/XML
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM-and-PHP
FileMaker 5 bis 12 und heute
• PHP Abstraktionslayer mit FM-and-PHP
• Kostenlos und Open Source
• Entstand im Sommer 2003
• https://www.schubec.com/de/fm-and-php.php
• Deutlich einfacher als fx.php
• Keine „richtige“ Objektorientierung
• Gute Abstraktion von CDML/XML
• CDML Kenntnisse waren von Vorteil
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM API 4 PHP
FileMaker 12 bis 17 und heute
• FileMaker Server wurde ab Version 13 mit der FM API 4 PHP ausgeliefert
• Obfuscated PHP Code
• Nutzung von CDML/XML im Hintergrund
• aber quasi unsichtbar
• CDML Kenntnisse für Profi-Debugging
• Objektorientiert programmiert
• Alter, schlechter PHP Code
• für damalige Zeit OK
• wirft gefühlte 1.000 Fehler auf heutigen
Systemen
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM API 4 Java
FileMaker 12 bis 17 und heute
• Java Bibliothek mit ähnlichem Aufbau wie die FM API 4 PHP
• Kostenlos und Open Source
• Vorstellung auf der FMK 2012 in Salzburg
• Tausendfach täglich im Einsatz
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM API 4 PHP
FileMaker 12 bis 17 und heute
• Deprecated
• FM API 4 PHP
• XML Schnittstelle
• wird nicht mehr gepflegt
• Muss für FileMaker Server 19 auf der Kommandozeile aktiviert werden
• Für FileMaker Server 19 Linux NICHT mehr verfügbar
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
FileMaker bis 17 heute
• JSON / REST Schnittstelle
• Endlich ein Industriestandard
• kein CDML / XML
• Claris bietet keine Client-Implementierung
• viele 3rd Party Implementierungen
• https://support.claris.com/s/article/data-api---admin-
api-packages-wrappers-for-fm-17-x?
language=en_US
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM-DataAPI-4-Java
FileMaker bis 17 heute
• Nutzt die JSON / REST Schnittstelle
• Kostenlos und Open Source
• https://github.com/schube/FileMaker-DataAPI-4-Java
• Das, was zu 90% benötigt wird, wurde umgesetzt
• Wenn mir (oder einem Sponsor) etwas fehlt, ergänze ich es
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
€€€
• 2 GB pro lizensierten Benutzer und Monat für lesende Zugriffe
• zB FileMaker Server für 5 Benutzer
• 120 GB pro Jahr
• Schreibende Zugriffe und Medienfelder werden nicht gezählt
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
• REST
• Stateless
• Jedoch, FileMaker Server verlangt vor jeder Abfrage ein Login
• Ausloggen nicht vergessen!
• Das macht die Schnittstelle unnötig langsam!
• oder das Sessionhandling unnötig kompliziert!
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
• Legen Datensätze an bzw. ändern Datensatz
• gibt nur „OK“ zurück
• Daten müssen mit extra Request gelesen werden
• unnötig langsam
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
• Je nach Abfrage wird die recordid als Zahl oder als Text zurückgeliefert.
• Kein Problem für untypisierte „Mickymaus“ Programmiersprachen :-)
• Problematisch für statisch typisierte Programmiersprachen wie Java
• Aufruf von Scripts je nach Abfrage als URL Parameter oder als JSON
Parameter im Body
• Client Libraries versuchen diese Probleme so gut es geht zu verstecken
• Medienfelder können pro Abfrage nur einmal heruntergeladen werden
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
• Uneinheitliches Datumsformat
• Je nach FileMaker Sprache anders
• dd/mm/yyyy
• mm/dd/yyyy
• Fehlt ein Feld am Layout, kommt die Info „Field missing“
• aber welches Feld?????
• ewige Fehlersuche
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API
• Besserer Upload von Medienfelder
• Meist schneller als die alte XML/CDML Schnittstelle
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API 4 Java
try (FMSession fmSession = FMSession.login(fmserver.schubec.com
my Database,
the User,
the Pa$$w0rd)) {
FMCommandWithData fmAdd = new FMAddCommand(my layout)
.setField(Details, 3)
.setField(Kategorie, Test);
FMResultFMRecordsResponse result = fmSession.execute(fmAdd);
} catch (FileMakerException e) {
fail(Should not have thrown any exception, e);
}
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API 4 Java
• Mehr Beispiele unter
https://github.com/schube/FileMaker-DataAPI-4-Java/tree/main/src/test/
java/com/schubec/libs
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
FM Data API 4 Java
• Schnittstelle ist gut und ausreichend performant nutzbar
• Es ist eher unwahrscheinlich, wenn man das jährliche Datenvolumen
erreicht
• Caching implementieren!
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel BINGOOO Shop
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel Middleware
• App Entwicklung für iOS nativ
• Profi-Entwickler (keine „Studentenbude“)
• Daten kommen aus FileMaker
• Daten landen in FileMaker
• iOS Team hatte noch nie von FileMaker gehört
• „kein Problem, machen wir schon“
• Kunde hatte schon sub-optimale Erfahrung mit anderer externer Firma und
Zugriff auf FileMaker gemacht, die auch „kein Problem“ versprochen hatten
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel Middleware
• FM Middleware auf Java Basis
• Quarkus Framework
• FM Data API 4 Java
• Sämtliche Kommunikation läuft
ausschließlich über die Middleware
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel Middleware
• Swagger / OpenUI ist Schnittstellen-
„Vertrag“ zwischen der Middleware und
der App
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel Middleware
• Testing
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Live Coding
mvn io.quarkus.platform:quarkus-maven-
plugin:2.9.2.Final:create
-DprojectGroupId=com.schubec
-DprojectArtifactId=fmk22demo-backend
-Dextensions=resteasy
cd fmk22demo-backend
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel Dashboard mit
Exceldownloads
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung - Bernhard Schulz
Praxisbeispiel Dashboard mit
Exceldownloads
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Titel Vortrag - Name Sprecher
Fragen?
Vielen Dank für Ihr Interesse!
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Titel Vortrag - Name Sprecher
Vielen Dank unseren Sponsoren