FMEServer Notification Service

FMEServer Notification Service

Nachrichten verschicken mit FMEServer

28.12.2015

Eine der häufigsten Anfragen bezüglich der FMEServer-Funktionalität betrifft das Verschicken von Nachrichten mittels der POST-Methode. Aus diesem Grund wird hier eine kurze Anleitung dazu beschrieben.

Durch den Notification Service ist der FMEServer in der Lage ein E-Mail abzusenden um z.B. mitzuteilen ob ein FME-Prozess erfolgreich war oder nicht.

Im nachfolgendem Beispiel wird ein Inhalt auf einen Web-Service mittels HTTP POST gepostet.

Die einzelnen Schirtte sind:

  • Erstellen eines Topic auf dem FME Server
  • Hinzufügen einer Subscription zu diesem Topic
  • Erstellen eines Workspaces, der auf den erstellten Topic zugreift

1. Erstellen eines Topic

Zunächst muss der Topic erstellt warden, der benachrichtigt wird, sobald unser Workspace ausgeführt wurde und ob der Durchlauf erfolgreich war oder nicht. Zunächst loggt man sich in die Web-Oberfläche des FMEServer. Dort geht man zu der “Manage Notifications”-Seite und wählt den Topic-Tab. Es werden 2 neue Topics erstellt: MySuccessTopic und MyFailureTopic.

 

2. Erstellen einer Subscription

Im nächsten Schritt wird die Subscription erstellt. Dies ist die eigentliche Anweisung, die durchgeführt wird, sobald ein Topic benachrichtigt wird. Dies wird ebenfalls auf der “Manage Notifications”-Seite im Tab “Subscriptions” durchgeführt indem man dort einfach auf „New“ klickt.  

  • Wähle den Protokoll-Typ: Push.
  • Vergebe einen Namen für die Subscription: z.B. WebService
  • Im Feld “Target” muss die URL für den Web-Service angegeben werden: z.B. http://posttestserver.com/post.php
  • Als Format für den Inhalt kann z.B. JSON ausgewählt werden
  • Diese Subscription muss den neuen Topics MySuccessTopic und MyFailureTopic zugewiesen warden.

 

3. Erstellen und Publizieren des Workspaces zum Benachrichtigen der Topics

Es gibt unterschiedliche Möglichkeiten, wie ein workspace einen Topic auf dem FMEServer benachrichtigen kann:

Option 1 – Auswählen der Topics beim Publizieren des Workspaces

Beim Publizieren des Workspaces und der Zuweisung zu den benötigten Services, kann man auch zusätzlich Topics für den Durchlauf-Status Publish (Success) und  Publish (Failure) auswählen. Diese Topics können für beliebige Services ausgewählt warden, wie Job Submitter, Data Download, Data Streaming und Notification Services.

In Beispiel-Workspace gibt es den Parameter für die POST Nachricht und einen TEXTLINE Writer zu welchem die Nachricht gesendet wird.

Beim Zuweisen der Services zu einem publizierten Workspace gibt es zu jedem Service die Schaltfläche “Edit”. Dort kann man die zuvor erstellten Topics für Job Success und Job Failure auswählen. Desweiteren muss dort der TEXTLINE-Writer als Notification-Writer ausgewählt werden. Alle Daten, die zu diesem Writer gesendet werden, werden an einen der beiden Topics weitergeleitet und dann als Textkörper der POST-Nachricht versendet.

Wichtig: die Topics müssen für jeden Service, der für den Workspace freigeschaltet wurde zugewiesen warden.

 Option 2 - FMEServerNotifier Transformer

Eine andere Möglichkeit die Topics zu benachrichtigen, ist durch die Benutzung des  FMEServerNotifierTransformers. Dieser Transformer kann in jedem beliebigen Workspace benutzt werden. Der Transformer muss nur mit den eigenen FME Server-Parametern wie Host, Verbindungsparameter, und den zugehörigen Topics konfiguriert werden. Das erste Feature, das den Transformer erreicht, triggert den Topic. In dem Transformer wird zudem das Attribut definiert, in dem sich der Inhalt der Nachricht befindet. Dieser Inhalt wird als Teil der POST-Nachricht über den URL an den Web-Service übermittelt. Der Nachteil bei der Benutzung des FMENotifier-Transformers ist, dass der Topic benachrichtigt wird, bevor der Workspace durchgelaufen ist und es gibt keine Möglichkeit herauszufinden ob der Durchlauf erfolgreich war oder nicht.

4. Ergebniskontrolle

Falls zu Testzwecken der Webservice http://posttestserver.com/data/ benutzt wurde, kann dort anhand der Datum- und Zeitangabe die eigene POST-Nachricht gefunden werden und so festgellt werden, ob der Benachrichtigungsdienst des eigenen FMEServers funktioniert.

Top