Advertisement

More Related Content

Similar to FMK2022 FileMaker DataAPI und Java von Bernhard Schulz(20)

More from Verein FM Konferenz(20)

Advertisement

Recently uploaded(20)

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
Advertisement