SlideShare ist ein Scribd-Unternehmen logo
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

Weitere ähnliche Inhalte

Was ist angesagt?

Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015
johannes_fiala
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Hassan Muhammad
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
viniciusban
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
The Software House
 
API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0
Fabrizio Ferri-Benedetti
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
Brian Mann
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
PankajSingh184960
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
Kelvin Silva
 
Introducing Swagger
Introducing SwaggerIntroducing Swagger
Introducing Swagger
Tony Tam
 
Cypress testing
Cypress testingCypress testing
Cypress testing
Vladyslav Romanchenko
 
GitLab.pptx
GitLab.pptxGitLab.pptx
GitLab.pptx
LeoulZewelde1
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
Joerg Henning
 
Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014
JWORKS powered by Ordina
 
Browser Automation with Playwright – for integration, RPA, UI testing and mor...
Browser Automation with Playwright – for integration, RPA, UI testing and mor...Browser Automation with Playwright – for integration, RPA, UI testing and mor...
Browser Automation with Playwright – for integration, RPA, UI testing and mor...
Lucas Jellema
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
Docker, Inc.
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
Susantha Pathirana
 
How to earn a black belt in Graphql testing
How to earn a black belt in Graphql testingHow to earn a black belt in Graphql testing
How to earn a black belt in Graphql testing
Luca Pelosi
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
David Hahn
 
JHipster overview
JHipster overviewJHipster overview
JHipster overview
Julien Dubois
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Commit University
 

Was ist angesagt? (20)

Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015Document your rest api using swagger - Devoxx 2015
Document your rest api using swagger - Devoxx 2015
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
 
Gitlab flow solo
Gitlab flow soloGitlab flow solo
Gitlab flow solo
 
Design patterns for microservice architecture
Design patterns for microservice architectureDesign patterns for microservice architecture
Design patterns for microservice architecture
 
API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0API Docs with OpenAPI 3.0
API Docs with OpenAPI 3.0
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
 
End to end test automation with cypress
End to end test automation with cypressEnd to end test automation with cypress
End to end test automation with cypress
 
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetesk6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
k6: Performance Engineering, Monitoramento e Teste de um HPA no Kubernetes
 
Introducing Swagger
Introducing SwaggerIntroducing Swagger
Introducing Swagger
 
Cypress testing
Cypress testingCypress testing
Cypress testing
 
GitLab.pptx
GitLab.pptxGitLab.pptx
GitLab.pptx
 
CI with Gitlab & Docker
CI with Gitlab & DockerCI with Gitlab & Docker
CI with Gitlab & Docker
 
Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014Documenting your REST API with Swagger - JOIN 2014
Documenting your REST API with Swagger - JOIN 2014
 
Browser Automation with Playwright – for integration, RPA, UI testing and mor...
Browser Automation with Playwright – for integration, RPA, UI testing and mor...Browser Automation with Playwright – for integration, RPA, UI testing and mor...
Browser Automation with Playwright – for integration, RPA, UI testing and mor...
 
Kubernetes in Docker
Kubernetes in DockerKubernetes in Docker
Kubernetes in Docker
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
How to earn a black belt in Graphql testing
How to earn a black belt in Graphql testingHow to earn a black belt in Graphql testing
How to earn a black belt in Graphql testing
 
Continuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CIContinuous Integration/Deployment with Gitlab CI
Continuous Integration/Deployment with Gitlab CI
 
JHipster overview
JHipster overviewJHipster overview
JHipster overview
 
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
Backstage l'Internal Developer Portal Open Source per una migliore Developer ...
 

Ähnlich wie FMK2022 FileMaker DataAPI und Java von Bernhard Schulz

FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
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...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
Verein FM Konferenz
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
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
Verein FM Konferenz
 
FMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian SchmitzFMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian Schmitz
Verein FM Konferenz
 
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael Valentin
Verein FM Konferenz
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
Verein FM Konferenz
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
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 Schulz
Verein FM Konferenz
 
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
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
Verein FM Konferenz
 
FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider
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
Verein FM Konferenz
 
FMK2019 FileMaker Anbindung an Online Systeme mit cURL & JSON by Michael Heider
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
Verein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen - Workshop by Adam Augustin
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
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...
FMK2017 - Vortrag FileMaker als Frontend zum Aktuallisieren von dynamischen W...
Verein FM Konferenz
 
FMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
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...
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
Verein FM Konferenz
 
FMK2015: FrameWork Konzepte in FileMaker Pro by Wolfgang Wunderlich
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
Verein FM Konferenz
 
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginFMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
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 ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
Verein FM Konferenz
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
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
Verein FM Konferenz
 
FMK2014: FileMaker Server in Windows Server Umgebungen by Thomas Hirt
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
Verein FM Konferenz
 
FMK2015: Von Skriptparametern Variablen und Globalen by Patrick Risch
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
Verein FM Konferenz
 

Ähnlich wie FMK2022 FileMaker DataAPI und Java von Bernhard Schulz (20)

FMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam AugustinFMK2022 FileMaker und Javascript von Adam Augustin
FMK2022 FileMaker und Javascript von Adam Augustin
 
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...
FMK2013: FileMaker und Kerio Connect by Bernhard Schulz - schubec GmbH und Ca...
 
FMK2017 - Plugins für die FileMaker Cloud by Christian Schmitz
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
 
FMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian SchmitzFMK2017 - MBS FileMaker Plugin by Christian Schmitz
FMK2017 - MBS FileMaker Plugin by Christian Schmitz
 
FMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael ValentinFMK2015: FileMaker 14 Webdirect by Michael Valentin
FMK2015: FileMaker 14 Webdirect by Michael Valentin
 
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdfFMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
FMK2022 Die Zukunft von FileMaker - Marcel Moré.pdf
 
FMK2022 FileMaker Server unter Linux Workshop von Bernhard Schulz
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 Schulz
 
FMK2012: Datenaustausch zwischen FileMaker und MySQL von Nico Busch
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
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
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
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...
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 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin SchwarzFMK2022 FileMaker Fehler von Martin Schwarz
FMK2022 FileMaker Fehler von Martin Schwarz
 
FMK2012: Strukturierte Scriptprogrammierung und neue Befehle und Scriptbefehl...
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
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
 
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker PluginFMK2016 - Christian Schmitz - MBS FileMaker Plugin
FMK2016 - Christian Schmitz - MBS FileMaker Plugin
 
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 ...
FMK2017 - Das FileMaker Selector-Connector Modell - Wie kann ich es sinnvoll ...
 
FMK2019 FileMaker Data API mit Node.js nutzen by Adam Augustin
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
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
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
 

Mehr von Verein FM Konferenz

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
Verein FM Konferenz
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
Verein FM Konferenz
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
Verein FM Konferenz
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
Verein FM Konferenz
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
Verein FM Konferenz
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
Verein FM Konferenz
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
Verein FM Konferenz
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
Verein FM Konferenz
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
Verein FM Konferenz
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
Verein FM Konferenz
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
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
Verein FM Konferenz
 
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
Verein FM Konferenz
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
Verein FM Konferenz
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald MairFmk2019 Produktentwicklung mit FileMaker by Harald Mair
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
Verein FM Konferenz
 
FMK2019 Layout und Eigene Menüs-Management by Jörg Köster
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
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 FileMaker – das Lizenzmodell Alles was Sie wissen wollen by Klemens ...
Verein FM Konferenz
 
FMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan TischlerFMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan Tischler
Verein FM Konferenz
 
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
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
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 Waagrechte Scrollbar für Ausschnittreihen erstellen by Gerhard Schwin...
Verein FM Konferenz
 
FMK2019 FileMaker und ESS (MySQL) mit cURL statt ODBC by Philipp Puls
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
Verein FM Konferenz
 

Mehr von Verein FM Konferenz (20)

FMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdfFMK2022 Excel und FileMaker Schittko.pdf
FMK2022 Excel und FileMaker Schittko.pdf
 
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp PulsFMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
FMK2022 Drucken über Dateigrenzen hinweg von Philipp Puls
 
FMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp PulsFMK2022 Custom Functions von Philipp Puls
FMK2022 Custom Functions von Philipp Puls
 
FMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam AugustingFMK2022 Neue Programmiertechniken von Adam Augusting
FMK2022 Neue Programmiertechniken von Adam Augusting
 
FMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas HirtFMK2022 Dokumentation - Thomas Hirt
FMK2022 Dokumentation - Thomas Hirt
 
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas HirtFMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
FMK2022 CustomFunctions Fuer Einsteiger - Thomas Hirt
 
FMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell WatsonFMK2022 FileMaker Integrated Development Environment - Russell Watson
FMK2022 FileMaker Integrated Development Environment - Russell Watson
 
FMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph KlussFMK2022 Datenschutz DSGVO Christoph Kluss
FMK2022 Datenschutz DSGVO Christoph Kluss
 
FMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph KlussFMK2022 Rechnungen Inkasso - Christoph Kluss
FMK2022 Rechnungen Inkasso - Christoph Kluss
 
FMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell WatsonFMK2019 bug off lightning talk by Russell Watson
FMK2019 bug off lightning talk by Russell Watson
 
FMK2019 being an optimist in a pessimistic world by vincenzo menanno
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
FMK2019 FileMaker Performance Update 2019 by HOnza KoudelkaFMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
FMK2019 FileMaker Performance Update 2019 by HOnza Koudelka
 
FMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza KoudelkaFMK2019 Hardware Integrated by HOnza Koudelka
FMK2019 Hardware Integrated by HOnza Koudelka
 
Fmk2019 Produktentwicklung mit FileMaker by Harald Mair
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
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 ...
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 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan TischlerFMK2019 FM Data Migration Tool by Stefan Tischler
FMK2019 FM Data Migration Tool by Stefan Tischler
 
FMK2019 dot-Net-Plugin selbst programmieren by Werner Staub
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...
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
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
 

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