FMK2022 FileMaker DataAPI und Java von Bernhard Schulz

Verein FM Konferenz
Verein FM KonferenzVerein FM Konferenz
www.filemaker-konferenz.com
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
FileMaker Data API und Java Anbindung
DI (FH) DI Bernhard Schulz
www.filemaker-konferenz.com
FileMaker Konferenz | Hamburg | 22.-24. Juni 2022
Was Sie erwartet
• Geschichte


• Implementierungsdetails


• Codebeispiele


• Praxisbeispiele
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
Praxisbeispiel Middleware
• Logging


• Metriken


• Caching
„at.xxxxxx.app.PriceResource.getPricesTimer: {


p99: 8384.669474,


min: 2825.998712,


max: 9207.493854,


mean: 5749.117974649214,


p50: 5759.044416,


p999: 8384.669474,


stddev: 1162.417488905401,


p95: 8384.669474,


p98: 8384.669474,


p75: 6165.470642,


fiveMinRate: 1.703304674587E-54,


fifteenMinRate: 1.6343398999601892E-19,


meanRate: 0.0038593841636479008,


count: 396,


oneMinRate: 4.0942949358248924E-265,


elapsedTime: 1928587.799624


},
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
1 sur 30

Recommandé

FMK2022 FileMaker Fehler von Martin Schwarz par
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzVerein FM Konferenz
128 vues93 diapositives
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf par
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfVerein FM Konferenz
301 vues53 diapositives
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz par
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzFMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
FMK2022 FileMaker Server unter Linux Workshop von Bernhard SchulzVerein FM Konferenz
108 vues37 diapositives
Vagrant par
Vagrant Vagrant
Vagrant Akshay Siwal
702 vues27 diapositives
Control Kubernetes Ingress and Egress Together with NGINX par
Control Kubernetes Ingress and Egress Together with NGINXControl Kubernetes Ingress and Egress Together with NGINX
Control Kubernetes Ingress and Egress Together with NGINXNGINX, Inc.
475 vues16 diapositives
Configuration Management in Ansible par
Configuration Management in Ansible Configuration Management in Ansible
Configuration Management in Ansible Bangladesh Network Operators Group
2.3K vues27 diapositives

Contenu connexe

Tendances

Introduction to Chef par
Introduction to ChefIntroduction to Chef
Introduction to ChefKnoldus Inc.
10.8K vues28 diapositives
Practical Design Patterns in Docker Networking par
Practical Design Patterns in Docker NetworkingPractical Design Patterns in Docker Networking
Practical Design Patterns in Docker NetworkingDocker, Inc.
6.5K vues48 diapositives
Introduction to Vagrant par
Introduction to VagrantIntroduction to Vagrant
Introduction to VagrantMarcelo Pinheiro
13.8K vues37 diapositives
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S... par
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...NGINX, Inc.
268 vues17 diapositives
Common linux ubuntu commands overview par
Common linux  ubuntu commands overviewCommon linux  ubuntu commands overview
Common linux ubuntu commands overviewAmeer Sameer
1.3K vues40 diapositives
Linux Basic Commands par
Linux Basic CommandsLinux Basic Commands
Linux Basic CommandsHanan Nmr
3.5K vues42 diapositives

Tendances(13)

Introduction to Chef par Knoldus Inc.
Introduction to ChefIntroduction to Chef
Introduction to Chef
Knoldus Inc.10.8K vues
Practical Design Patterns in Docker Networking par Docker, Inc.
Practical Design Patterns in Docker NetworkingPractical Design Patterns in Docker Networking
Practical Design Patterns in Docker Networking
Docker, Inc.6.5K vues
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S... par NGINX, Inc.
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
Install and Configure NGINX Unit, the Universal Application, Web, and Proxy S...
NGINX, Inc.268 vues
Common linux ubuntu commands overview par Ameer Sameer
Common linux  ubuntu commands overviewCommon linux  ubuntu commands overview
Common linux ubuntu commands overview
Ameer Sameer1.3K vues
Linux Basic Commands par Hanan Nmr
Linux Basic CommandsLinux Basic Commands
Linux Basic Commands
Hanan Nmr3.5K vues
WebLogic Server Work Managers and Overload Protection par James Bayer
WebLogic Server Work Managers and Overload ProtectionWebLogic Server Work Managers and Overload Protection
WebLogic Server Work Managers and Overload Protection
James Bayer15K vues
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final par CanSecWest
CSW2017 Qinghao tang+Xinlei ying vmware_escape_finalCSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CSW2017 Qinghao tang+Xinlei ying vmware_escape_final
CanSecWest4K vues
206520 p6 web services programming interface par p6academy
206520 p6 web services programming interface206520 p6 web services programming interface
206520 p6 web services programming interface
p6academy2.6K vues
IBM MQ High Availability 2019 par David Ware
IBM MQ High Availability 2019IBM MQ High Availability 2019
IBM MQ High Availability 2019
David Ware4.5K vues

Similaire à FMK2022 FileMaker DataAPI und Java von Bernhard Schulz

FMK2022 FileMaker und Javascript von Adam Augustin par
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinVerein FM Konferenz
86 vues17 diapositives
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca... par
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...Verein FM Konferenz
4.2K vues55 diapositives
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz par
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzVerein FM Konferenz
279 vues15 diapositives
FMK2017 - MBS FileMaker Plugin by Christian Schmitz par
FMK2017 - MBS FileMaker Plugin by Christian SchmitzFMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian SchmitzVerein FM Konferenz
733 vues68 diapositives
FMK2015: FileMaker 14 Webdirect by Michael Valentin par
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinVerein FM Konferenz
2.1K vues29 diapositives
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch par
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschFMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschVerein FM Konferenz
4.2K vues34 diapositives

Similaire à FMK2022 FileMaker DataAPI und Java von Bernhard Schulz(20)

FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca... par Verein FM Konferenz
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz par Verein FM Konferenz
FMK2017 - Plugins für die FileMaker Cloud by Christian SchmitzFMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
FMK2015: FileMaker 14 Webdirect by Michael Valentin par Verein FM Konferenz
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch par Verein FM Konferenz
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico BuschFMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider par Verein FM Konferenz
FMK2019 FileMaker Anbindung an Online Systeme by Michael HeiderFMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider par Verein FM Konferenz
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael HeiderFMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin par Verein FM Konferenz
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W... par Verein FM Konferenz
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser par Verein FM Konferenz
FMK2022 Arbeiten mit SVG in FileMaker - Robert KaiserFMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2022 Arbeiten mit SVG in FileMaker - Robert Kaiser
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl... par Verein FM Konferenz
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich par Verein FM Konferenz
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang WunderlichFMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ... par Verein FM Konferenz
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin par Verein FM Konferenz
FMK2019 FileMaker Data API mit Node.js nutzen by Adam AugustinFMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt par Verein FM Konferenz
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas HirtFMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch par Verein FM Konferenz
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick RischFMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
FMK 2013 Schnittstellen Datenaustausch, Longin Ziegler par Verein FM Konferenz
FMK 2013 Schnittstellen Datenaustausch, Longin ZieglerFMK 2013 Schnittstellen Datenaustausch, Longin Ziegler
FMK 2013 Schnittstellen Datenaustausch, Longin Ziegler

Plus de Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf par
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfVerein FM Konferenz
935 vues11 diapositives
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls par
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsVerein FM Konferenz
274 vues18 diapositives
FMK2022 Custom Functions von Philipp Puls par
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsVerein FM Konferenz
110 vues11 diapositives
FMK2022 Neue Programmiertechniken von Adam Augusting par
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingVerein FM Konferenz
140 vues31 diapositives
FMK2022 Dokumentation - Thomas Hirt par
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtVerein FM Konferenz
152 vues30 diapositives
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt par
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtVerein FM Konferenz
111 vues70 diapositives

Plus de Verein FM Konferenz(20)

FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls par Verein FM Konferenz
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt par Verein FM Konferenz
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2019 being an optimist in a pessimistic world by vincenzo menanno par Verein FM Konferenz
FMK2019 being an optimist in a pessimistic world by vincenzo menannoFMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka par Verein FM Konferenz
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair par Verein FM Konferenz
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster par Verein FM Konferenz
FMK2019 Layout und Eigene Menüs-Management  by Jörg KösterFMK2019 Layout und Eigene Menüs-Management  by Jörg Köster
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ... par Verein FM Konferenz
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens  ...
FMK2019 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub par Verein FM Konferenz
FMK2019 dot-Net-Plugin selbst programmieren by Werner StaubFMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin... par Verein FM Konferenz
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls par Verein FM Konferenz
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp PulsFMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich par Verein FM Konferenz
FMK2019 Softwaretest in Filemaker Programmen by Volker KrambrichFMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich
FMK2019 Softwaretest in Filemaker Programmen by Volker Krambrich

FMK2022 FileMaker DataAPI und Java von Bernhard Schulz

  • 1. www.filemaker-konferenz.com FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker Data API und Java Anbindung DI (FH) DI Bernhard Schulz
  • 2. www.filemaker-konferenz.com FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Was Sie erwartet • Geschichte • Implementierungsdetails • Codebeispiele • Praxisbeispiele
  • 3. 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“
  • 4. 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
  • 5. 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
  • 6. 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
  • 7. 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
  • 8. 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
  • 9. 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
  • 10. 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
  • 11. 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
  • 12. 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!
  • 13. 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
  • 14. 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
  • 15. 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
  • 16. 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
  • 17. 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); }
  • 18. 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
  • 19. 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!
  • 20. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker Data API und Java Anbindung - Bernhard Schulz Praxisbeispiel BINGOOO Shop
  • 21. 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
  • 22. 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
  • 23. 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
  • 24. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker Data API und Java Anbindung - Bernhard Schulz Praxisbeispiel Middleware • Testing
  • 25. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker Data API und Java Anbindung - Bernhard Schulz Praxisbeispiel Middleware • Logging • Metriken • Caching „at.xxxxxx.app.PriceResource.getPricesTimer: { p99: 8384.669474, min: 2825.998712, max: 9207.493854, mean: 5749.117974649214, p50: 5759.044416, p999: 8384.669474, stddev: 1162.417488905401, p95: 8384.669474, p98: 8384.669474, p75: 6165.470642, fiveMinRate: 1.703304674587E-54, fifteenMinRate: 1.6343398999601892E-19, meanRate: 0.0038593841636479008, count: 396, oneMinRate: 4.0942949358248924E-265, elapsedTime: 1928587.799624 },
  • 26. 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
  • 27. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker Data API und Java Anbindung - Bernhard Schulz Praxisbeispiel Dashboard mit Exceldownloads
  • 28. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 FileMaker Data API und Java Anbindung - Bernhard Schulz Praxisbeispiel Dashboard mit Exceldownloads
  • 29. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Titel Vortrag - Name Sprecher Fragen? Vielen Dank für Ihr Interesse!
  • 30. FileMaker Konferenz | Hamburg | 22.-24. Juni 2022 Titel Vortrag - Name Sprecher Vielen Dank unseren Sponsoren