Publicidad
Publicidad

Más contenido relacionado

Similar a FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider(20)

Publicidad

Más de Verein FM Konferenz(20)

Último(20)

Publicidad

FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider

  1. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com Dipl.-Ing Michael Heider FileMaker Anbindung an Online- Systeme! Bitte Dateien herunterladen unter: https://www.filemaker-konferenz.com/downloads.php
  2. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was beinhalten die Dateien? •  FM_cURL_AlleTexte.xlsx: Alle Texte, die Sie für den Workshop benötigen (für Nutzung mit Copy & Paste). •  FMC_FileMaker_Anbindung_an_Online-Systeme.fmp12: kleine FileMaker- Datenbank mit den benötigten Skripten.
  3. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 www.filemaker-konferenz.com ... am Beispiel des Online-Portals „Megaventory“ Dipl.-Ing Michael Heider FileMaker Anbindung an Online- Systeme!
  4. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Über den Sprecher •  Freier FileMaker-Entwickler seit 1990 (FileMaker Version 2.1) •  FileMaker Neuentwicklung •  FileMaker Weiterentwicklung bestehender Datenbanken •  Consulting zu Datenbanken und Unternehmensprozessen •  Inhaber der Michael Heider GmbH (seit 2002) •  Unternehmensausrichtung „FileMakerConsulting“ in Berlin •  Mitbegründer des „FileMakerCollege“ in Berlin •  Buchautor „FileMaker Pro – Good Programming Practice“ •  FileMaker Zertifizierungen Version 7 bis 16 •  Zertifizierter EU-Datenschutz Spezialist •  Begeisterter Taucher und Behinderten-Tauchlehrer 6
  5. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir? •  Ziel ist, •  zu zeigen, •  wie der Datenaustausch mit einem Webservice über eine REST- Schnittstelle grundsätzlich aufgebaut ist, und •  welche „Anleitungen“ wir an die Hand bekommen und •  wie die Umsetzung in FileMaker implementiert ist und •  [wenn die Zeit reicht] wie wir einen Datenaustausch über eine REST- Schnittstelle in eine FileMaker-Datenbank einbauen können. (Achtung: Kompaktes Ziel, aber die Zeit wird dennoch knapp werden...) •  (einige) Begriffe in diesem Zusammenhang zu klären,
  6. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Womit greifen wir auf das Ziel zu? •  Programm Postman •  Ein eigene kleine FileMaker Datenbank mit nur zwei Tabellen
  7. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was ist das Zielsystem? •  Megaventory: Ein Online-Service für Lagerverwaltung nebst Auftragseingang und Fabrikationsaufträgen und vieles mehr https://www.megaventory.com
  8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  9. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Welche Begriffe werden in diesem Zusammenhang genannt? cURL JSON REST-API
  10. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was sind cURL, REST-API & JSON? Grobe Abgrenzung dieser Begriffe • cURL (Client für URL): Programmbibliothek zur Übertragung von Dateien in Rechennetzen. Inplementiert in vielen Betriebssystemen. Mittlerweile genutzt zur Übertragung von Daten. Weitere Infos im Web, u.a.: https://de.wikipedia.org/wiki/CURL
  11. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was sind cURL, REST-API & JSON? Grobe Abgrenzung dieser Begriffe • REST (Representational State Transfer, auch RESTful API Web services): Ein Programmierparadigma für Webanwendungen Weitere Infos im Web, u.a.: • API (Application Programming Interface): Eine Programmierschnittstelle • REST-API: Eine Implementierung eines Webservices, die angibt, welche Daten ausgetauscht werden können und wie Daten mit dem Dienst ausgetauscht werden können. https://de.wikipedia.org/wiki/Representational_State_Transfer
  12. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was sind cURL, REST-API & JSON? Grobe Abgrenzung dieser Begriffe • JSON (JacaScript Object Notation): Kompaktes Datenformat zum Austausch von Daten -  Ist für Menschen einfach lesbar -  Ist maschinenlesbar -  Hat nur sehr wenige Regeln -  Key/Value Paare -  Arrays von Values -  https://www.json.org/json-de.html
  13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  14. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie ist der Aufbau von Anfragen? •  Vier Grund-“Bausteine“ •  URL •  Die angesprochene (Web)Service-Ressource: •  Protokoll (http, https, ftp, ftps, ...) & •  Adresse des Services (WebService) & •  Ressource auf dem Server, die angesprochen werden soll •  z.B. https:/megaventory.com/api/v2017a/json/reply/SupplierClientGet •  Die URL kann auch noch Parameter enthalten •  z.B. https:/megaventory.com/api/v2017a/json/reply/ SupplierClientGet?APIKEY=1234567890&filter=client
  15. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie ist der Aufbau von Anfragen? •  Vier Grund-“Bausteine“ •  Methode •  z.B.: GET, POST, PUT, DELETE •  ... es gibt noch viele mehr •  Header •  Meta-Informationen; Maschine-zu-Maschine •  [Für den Menschen meist nicht angezeigt (z.B. im Browser)] •  Daten (optional) •  Sofern wir Daten senden wollen oder müssen •  Diese Daten werden meist als JSON-Objekte formatiert
  16. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie ist der Aufbau von Antworten? •  Zwei Grund-“Bausteine“ •  Header •  Meta-Informationen; Maschine-zu-Maschine •  [Für den Menschen meist nicht angezeigt (z.B. im Browser)] •  Body •  Daten, sofern wir Daten angefordert haben, oder •  Antwort in Form von „OK“ oder einem Fehlercode, oder •  HTML-Seite, oder •  ...
  17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  18. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht das im 
 Programm Postman aus? •  Warum Postman? •  Das Programm ist gut, um die Verbindung zu einem Online-System auszutesten! •  Was man nicht in Postman schafft, schafft man in anderen Programmen (oder Systemen) erst recht nicht. •  Das Programm ist gut, um Prinzipien kennen zu lernen. •  Test & Prüfen & Ausprobieren! Aber Ziel ist es nicht, das Online-System mit Postman zu bedienen.
  19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  21. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was können wir eigentlich anfragen? •  https://api.megaventory.com/v2017a/documentation/index.html
  22. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was können wir eigentlich anfragen? •  http://help.megaventory.com/en/articles/74873-how-do-i-get-started-with-the-api
  23. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was können wir eigentlich anfragen? •  https://api.megaventory.com/v2017a/documentation/index.html
  24. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus? •  URL: •  https://api.megaventory.com/v2017a/json/reply/SupplierClientGet •  Parameter: •  Key: APIKEY •  Value: <eigener API-Schlüssel> •  Methode: •  GET •  Header: •  Key: Content-Type •  Value: application/json •  Body: <leer>
  25. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus? •  Frage nach Authentifizierung •  Hier geht sie über den vorher mitgeteilten API-Key. •  Dieser hat IMMER Gültigkeit – solange er im User-Account beim Dienstleister eingetragen ist. •  Es gibt andere Methoden ( •  keine Authentifizierung, •  Authentifizierung mit Username & Passwort und dabei Vergabe von Session-Cookie, die anschließend mitgesendet werden müssen, •  ... •  Wird hier nicht weiter betrachtet.
  26. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus?
  27. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus? •  URL: •  https://api.megaventory.com/v2017a/json/reply/ProductGet •  Parameter: •  Key: APIKEY •  Value: <eigener API-Schlüssel> •  Methode: •  GET •  Header: •  Key: Content-Type •  Value: application/json •  Body: <leer>
  28. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wieso ist das so nicht sicher? •  Problem •  Authentifizierung wird als Parameter an die URL angehängt. •  Das ist „für jeden“ lesbar. •  Lösung •  Megaventory gibt uns eigentlich vor, die POST-Methode zu nutzen und die Authentifizierung im Body mitzusenden.
  29. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus? •  URL: •  https://api.megaventory.com/v2017a/json/reply/ProductGet •  Parameter: <leer> •  Methode: •  POST •  Header: •  Key: Content-Type •  Value: application/json •  Body: •  {"APIKEY":"b5893a.....“}
  30. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus?
  31. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie schreiben wir in das System? •  URL: •  https://api.megaventory.com/v2017a/json/reply/ProductUpdate •  Parameter: <leer> •  Methode: •  POST •  Header: •  Key: Content-Type •  Value: application/json •  Body: •  ...
  32. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie schreiben wir in das System? •  Body: { "APIKEY":"<eigener API-Schlüssel>“, "mvProduct": { "ProductType": "Buy From Supplier", "ProductSKU": "Fischbrötchen", "ProductDescription": "Die besten Fischbrötchen, die es in Hambug gibt“ }, "mvRecordAction": "Insert", "mvInsertUpdateDeleteSourceApplication": "FileMaker Test-DB" }
  33. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus?
  34. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht das Ganze in FileMaker aus? •  Anfragen immer über den Befehl „Aus URL einfügen[ ]“ •  FileMaker-Parameter:
  35. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht es in FileMaker aus? •  Anfragen immer über den Befehl „Aus URL einfügen[ ]“ •  FileMaker-Parameter: •  „Gesamten Inhalt auswählen“: überschreibt Zielfeld •  „Ziel“: Feld oder Variable, in die der BODY der ANTWORT geschrieben wird •  „URL“: Die URL des Zielsystems •  „SSL Zertifikate verifizieren“: Sicherheitseinstellung => Verbindung nur herstellen, wenn Ziel über SSL-Zertifikat verifiziert ist. •  „cURL-Optionen angeben“: Die cURL-Optionen, die wir angeben wollen oder müssen. Mehrere Optionen werden mit Leerzeichen getrennt aneinander gehängt.
  36. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie passt das zusammen mit dem, 
 was wir kennen? •  Vier Grund-“Bausteine“ •  URL •  => FileMaker-Parameter: „URL“ •  Methode •  => FileMaker-Parameter: „cURL-Optionen angeben“ •  Ausprägung „–X“ •  z.B.: „-X GET“ oder „-X POST“ •  Parameter •  => FileMaker-Parameter: „URL“ •  Parameter werden mit „?“ an die URL angehängt und mit „&“ verknüpft, wenn es mehrere Parameter gibt.
  37. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie passt das zusammen mit dem, 
 was wir kennen? •  Vier Grund-“Bausteine“ •  Header •  => FileMaker-Parameter: „cURL-Optionen“ •  Ausprägung „-H •  z.B.: „-H "Content-Type:application/json"“ •  Der Inhalt MUSS in Anführungszeichen geschrieben werden => FileMaker-Maskierung mit "
  38. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie passt das zusammen mit dem, 
 was wir kennen? •  Vier Grund-“Bausteine“ •  Daten •  => FileMaker-Parameter: „cURL-Optionen“ •  Ausprägung „–-data“ (oder „-D“) •  z.B.: „--data APIKEY=abcd •  Für ein JSON-Objekt: "--data @$json” •  Das JSON-Objekt wird zuvor in die Variable „$json“ geschrieben (FileMaker-Befehl „Variable setzen [ ]“) und dann übergeben mit der cURL-Option „--data @$json“
  39. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht die Anfrage nach der Produktliste in FileMaker aus? •  Anfrage über den Befehl „Aus URL einfügen[ ]“ •  „Gesamten Inhalt auswählen“: •  <nach eigenem Ermessen> •  „Ziel“: •  $$result •  „URL“: •  https://api.megaventory.com/v2017a/json/reply/ProductGet •  „SSL Zertifikate verifizieren“: •  aus •  „cURL-Optionen angeben“: •  "-X POST " & "-H "Content-Type:application/json" " & "--data @$json " & "--show-error --dump-header $$dump"
  40. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht die Anfrage nach der Produktliste in FileMaker aus? •  „cURL-Optionen“ im Detail •  "-X POST": Methode POST •  "-H "Content-Type:application/json"": Unser Header •  "--data @$json": Unsere Daten in der Variablen $json •  "--show-error": Anforderung: „Weise Fehler aus!“ •  "--dump-header $$dump“: Anforderung: „Schreibe den Header in die Variable $$dump“ (Anderenfalls würden wir den Header nicht bekommen!)
  41. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  42. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  43. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  44. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  45. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  46. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie läßt sich das umsetzen? •  Es läßt sich ein universelles Script schreiben, das sich für (fast) alle Anfragen an (fast) alle WebServices nutzen läßt. •  Das Script erwartet einen Script-Parameter in Form eines JSON-Objekts mit folgemdem Inhalt: •  URL ist Text •  Parameter ist JSON-Objekt •  Methode ist Text •  Header ist JSON-Objekt •  Daten ist Text •  JSON-Daten-Objekt ist JSON-Objekt •  Das Script berechnet daraus die FileMaker-Parameter „url“& „cURL-Optionen“ und führt die Anfrage aus.
  47. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie läßt sich das umsetzen? •  Es läßt sich ein universelles Script schreiben, das sich für (fast) alle Anfragen an (fast) alle WebServices nutzen läßt. •  Als Ergebnisse erhalten wir: •  Ein Script-Ergbnis in Form eines JSON-Elements mit folgenden Inhalt: •  error FileMaker Fehlercode •  errorextern Fehler-Antwort des Services •  time benötigte Zeit der Anfrage in Millisekunden •  Eine globale Variable $$result mit dem Body der Antwort •  Eine globale Variable $$dump mit dem Header der Anfrage
  48. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht dieses Script aus?
  49. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie wird das Script genutzt?
  50. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Welche cURL-Optionen gibt es? •  cURL-Optionen von FileMaker sind nachzulesen in FileMaker-Hilfe. •  In den Unterlagen auch als „Supported cURL options.pdf“ •  Tutorial von Russel Watson in der FileMaker Community •  https://community.filemaker.com/en/s/article/new-curl-options-in-insert- from-url •  cURL-Optionen allgemein sind nachzulesen: •  Internet •  Fachbücher •  In den Unterlagen als „Everything-cURL.pdf“ •  https://bookcurl.haxx.se
  51. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Daten abrufen können wir nun, aber wie bereiten wir diese auf für die Tabellen? •  Daten erhalten wir als JSON-Objekte. •  Diese müssen wir „parsen“, um die einzelnen Informationen zu erhalten und in Datensätze und Felder einzutragen. •  Hierzu stellt uns FileMaker drei Befehle zur Verfügung: •  JSONGetElement •  JSONListKeys •  JSONListValues
  52. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie können wir JSON-Objekte in FileMaker bearbeiten? •  Wir erhalten in Filemaker sechs Funktionen zum Arbeiten mit JSON-Objekten:
  53. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  54. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie können wir JSON-Objekte parsen?
  55. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  56. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  57. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie geht es weiter? •  Bibliothek von kostenfreien REST-APIs zum Ausprobieren und Üben https://github.com/public-apis/public-apis
  58. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages
Publicidad