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
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.
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!
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
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,
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
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
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Was machen wir?
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Welche Begriffe werden in diesem
Zusammenhang genannt?
cURL	 JSON	
REST-API
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
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
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
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Was machen wir?
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
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
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
•  ...
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Was machen wir?
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.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
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
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
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
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>
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.
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Wie sieht unsere erste Anfrage aus?
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>
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.
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.....“}
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Wie sieht unsere zweite Anfrage aus?
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:
•  ...
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"
}
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Wie sieht unsere zweite Anfrage aus?
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:
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.
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.
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 "
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“
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"
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!)
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
THAT‘s it!
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
THAT‘s it!
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
THAT‘s it!
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
THAT‘s it!
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
THAT‘s it!
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.
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
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Wie sieht dieses Script aus?
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Wie wird das Script genutzt?
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
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
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:
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Wie können wir JSON-Objekte parsen?
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
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
10. FileMaker Konferenz | Hamburg | 16.-19. Oktober 2019
Dipl.-Ing. Michael Heider
Vielen Dank unseren Sponsoren
Danke für das Bewerten dieses Vortrages

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