Successfully reported this slideshow.
Your SlideShare is downloading. ×

FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider

Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Ad
Loading in …3
×

Check these out next

1 of 58 Ad

More Related Content

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

More from Verein FM Konferenz (20)

Advertisement

Recently uploaded (20)

FMK2019 FileMaker Anbindung an Online Systeme by Michael Heider

  1. 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. 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. 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. 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. 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. 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. 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. 8. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  9. 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. 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. 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. 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. 13. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  14. 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. 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. 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. 17. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Was machen wir?
  18. 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. 19. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  20. 20. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  21. 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. 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. 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. 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. 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. 26. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere erste Anfrage aus?
  27. 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. 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. 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. 30. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus?
  31. 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. 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. 33. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht unsere zweite Anfrage aus?
  34. 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. 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. 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. 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. 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. 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. 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. 41. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  42. 42. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  43. 43. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  44. 44. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  45. 45. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider THAT‘s it!
  46. 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. 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. 48. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie sieht dieses Script aus?
  49. 49. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie wird das Script genutzt?
  50. 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. 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. 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. 53. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  54. 54. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Wie können wir JSON-Objekte parsen?
  55. 55. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  56. 56. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider
  57. 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. 58. 10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019 Dipl.-Ing. Michael Heider Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages

×