Tipps & Tricks
Am Beispiel von Survey123 for ArcGIS und FME Server
Webhooks ermöglichen den Austausch von Benachrichtigungen zwischen Servern über eingetretene Ereignisse und auszulösende Aktionen. Aus technischer Sicht wird dazu eine Anfrage über http-POST an eine dafür vorbereitete URL gesendet. Typischerweise werden die Inhalte im JSON-Format übertragen. FME Server ermöglicht, eine solche Webhook URL zu erstellen und die versendeten Daten mittels eines FME Workspaces zu verarbeiten.
Im nachfolgenden Beispiel wird die Einrichtung eines Webhooks in FME Server für die Verarbeitung von Daten von Survey123 for ArcGIS erläutert. Survey123 for ArcGIS ist eine Lösung für die Datenerfassung auf Basis von Formularen von Esri. Die nachfolgende Skizze veranschaulicht den Zusammenhang der beteiligten Server und den Datenaustausch per Webhook.
Die erzeugten Daten eines Surveys werden per Webhook an einen FME Server gesendet und können dort automatisiert weiterverarbeitet werden. Das Ergebnis eines FME-Prozesses kann beispielsweise ein Report, das Persistieren der übermittelten Daten in einem Datei- oder Datenbanksystem oder das Auslösen einer weiteren Aktion wie das Versenden einer E-Mail-Benachrichtigung sein.
Voraussetzungen für die Nutzung von Webhooks
FME Server oder FME Cloud
Survey123 for ArcGIS (kostenfreier Testzugang)
Und so funktioniert es
1. Erstellen eines Surveys mit Survey123 (Anleitung).
2. Erstellen eines FME Workspaces zur Verarbeitung der Inhalte einer Webhook URL
Für das Einlesen der Webhook-Inhalte (im Format JSON) bietet sich der Text File Reader an. Beim Anlegen ist darauf zu achten, dass der Reader-Parameter „Read File at Once“ aktiviert ist. Mittels JSONFlattener kann der Inhalt der JSON-Datei in FME Attribute überführt werden. Je nach gewünschtem Ausgabeformat (hier eine Excel-Datei mit vier Tabellenblättern) werden die Attribute entsprechend aufbereitet und in die Zielstruktur überführt.
3. Publizieren des FME Workspaces auf dem FME Server
Beim Publizieren ist darauf zu achten, dass der FME Workspace mindestens als JobSubmitter-Dienst registriert wird (weitere Diensttypen sind optional möglich). Außerdem ist der Text File Reader in den Service Properties im Parameter „Send HTTP Message Body to Reader“ auszuwählen. Hierüber werden die Inhalte des Webhooks an den FME Workspace beim Aufruf übergeben (vgl. nachfolgende Abbildungen).
4. Erstellen einer Webhook URL über die Web-Benutzerschnittstelle des FME Servers
Die Webhook URL wird über die Benutzerschnittstelle des FME Servers generiert. Unter „Run Workspace“ erfolgt zunächst die Auswahl des erzeugten FME Workspaces, der über die Webhook URL aufgerufen werden soll. Unter „Advanced“ befindet sich die Option zur Erzeugung einer Webhook URL.
Im ersten Schritt wird zunächst ein Token eingerichtet, das die Gültigkeitsdauer des Webhooks bestimmt.
Im anschließenden Dialog wird die erzeugte Webhook URL angezeigt. Für die Verwendung in Survey123 wird die Option „Authorization with Query String“ benötigt. Die URL kann in die Zwischenablage kopiert werden. Die Konfiguration ist nun FME-seitig abgeschlossen.
5. Konfiguration eines Webhooks in Survey123
In diesem letzten Konfigurationsschritt ruft man die Einstellungen in Survey123 auf und trägt dort die kopierte Webhook URL ein. Survey123 ermöglicht eine Reihe von Konfigurationen wie z.B. Trigger-Ereignisse und Dateninhalte.
Im Anschluss kann mit dem Erstellen von Surveys begonnen werden. Beim Absenden eines Surveys werden die Inhalte automatisch an den FME Server übermittelt. Über „Jobs > Completed“ lassen sich die ausgeführten Surveys monitoren.
Mehr Informationen zu FME Server und FME Cloud finden Sie unter https://www.conterra.de/portfolio/fme.
Haben Sie noch Fragen? Gerne helfen wir Ihnen weiter.
Christian Dahmen