Suchen...
Generic filters
Exact matches only
Search in title
Search in excerpt
Search in content

DeltaMaster Notifications

Mit DeltaMaster schaffen wir es aus umfangreichen Unternehmensdaten wertvolle Informationen zu erzeugen, aus denen Informationsempfänger in Sekundenschnelle Handlungsinformationen ableiten. Wir können DeltaMaster aber auch verwenden, um Benachrichtigungen zu erhalten, wenn es beispielsweise bei einer nächtlichen Verarbeitung ein technisches Problem gab – mit DeltaMaster auf dem iPhone.

Mit DeltaMaster Notifications, einer kostenfreien iOS-App, können Push-Benachrichtigungen von einem Webserver an iPhones/iPads gesendet werden – im folgenden Beispiel wird eine Mitteilung über einen fehlerhaften, nächtlichen Transformationsprozess an das iPhone gesendet. In diesem Blogbeitrag wird beschrieben, was dafür zu tun ist.

Voraussetzungen

Für die Benachrichtigung per DeltaMaster NotificationsApp benötigen wir drei Komponenten:

  • DeltaMaster NotificationsApp auf dem iOS-Gerät aus dem AppStore von Apple
  • Installation des DeltaMaster Notification Service, einer Serverkomponente, die die Geräteregistrierungen verwaltet und die relevanten Informationen an das iOS-Gerät verschickt. Die Benachrichtigungen werden über Apples Push Notifications versendet. Der DeltaMaster Notification Service muss auf einem Webserver installiert werden, also idealerweise auf dem Server, auf dem bereits die DeltaMaster Weboption läuft.
  • Installation der Software Curl, einem Kommandozeilentool, das http-Requests versendet (auf folgender Website für unterschiedliche Betriebssysteme verfügbar: http://curl.haxx.se/download.html)

Implementierung

Im Folgenden werden die notwendigen Schritte für die Implementierung beschrieben. Im vorliegenden Beispiel wird ein vorhandenes SSIS-Paket so erweitert, dass eine Benachrichtigung an das iPhone gesendet wird, wenn ein Task im Paket fehlschlägt.

DeltaMaster NotificationsApp

Nach dem Start der App müssen folgende Einträge im Menü Einstellungen (Zahnradsymbol) vorgenommen werden:

  • Server: URL des Webservers, unter dem der DeltaMaster Notification Service installiert ist, ggf. mit Portnummer
    (z. B.: notifications.deltamaster.info:8080)
  • Benutzername: Name, unter dem das iOS-Gerät erreichbar sein soll
    (z. B. BGM). Ist der Benutzername eine E-Mail-Adresse oder ein Windows-Anmeldename, muss zusätzlich das Passwort des Benutzers unter Passwort eingegeben werden. Dafür empfiehlt sich eine sichere Verbindung.
  • Durch Klick auf „Registrieren“ erfolgt die Übergabe der Angaben an den Server. Folgende Screenshots zeigen die Einstellungen in der App sowie die Meldung, wenn der Benutzer erfolgreich registriert wurde.

2013-08-16_Crew_Einstellungen

Abb. 1:  Einstellungsmöglichkeiten in der App und Meldung über erfolgreiche Benutzerregistrierung

DeltaMaster Notification Service

Der DeltaMaster Notification Service läuft als Windows-Dienst mit dem Namen „DeltaMaster Notification Service“. Voraussetzung für den Notification Service ist die Installation von .NET 3.5. Durch Aufruf der im Installationspaket vorhandenen Datei

  • „_install.bat“ wird der Dienst auf dem Webserver installiert
  • „_start.bat“ bzw. „_stop.bat“ wird der Dienst gestartet bzw. beendet
  • „_uninstall.bat“ wird der Dienst deinstalliert

Curl

Die Software Curl ermöglicht das Absetzen von http-Requests. Eine Installation der Software ist nicht notwendig. Die Dateien müssen lediglich auf dem Server entpackt werden, auf dem das SSIS-Paket gestartet wird.

http-Request

Der http-Request wird im SSIS-Paket verwendet und muss folgende Parameter enthalten:

  • Server: URL des Webservers, auf dem der Notification Service installiert ist,
    B. http://notifications.deltamaster.info:8080
  • ReceiverUserName: Benutzer, der die Notification empfangen soll, z. B. BGM
  • MessageText: Nachrichtentext, z. B. „Transformation fehlerhaft!“. Dabei werden Leerzeichen mit „%20“ formatiert.
  • SoundType: Art des Klangs (s. unten), z. B. Amount
  • SoundIndex: Index des Klangs (s. unten), z. B. 1

Zusammengesetzt lautet der Aufruf wie folgt:

curl -X POST -H "Content-Length:0" "http://[Server]/sender/notificationWithIndexedSound?receiverUserNames=[ReceiverUserName]&messageText=[MessageText]!&soundType=[SoundType]&soundIndex=[SoundIndex]" -u "NotificationSender:q1w2e3r4" –v

Nach obigem Beispiel also:

curl -X POST -H "Content-Length:0" "http://notifications.deltamaster.info:8080/sender/notificationWithIndexedSound?receiverUserNames=BGM&messageText=Datenaktualisierung%20fehlerhaft!&soundType=Amount&soundIndex=1" -u "NotificationSender:q1w2e3r4" –v

Grundsätzlich kann die DeltaMaster NotificationApp mit unterschiedlichen „SoundTypes“ und „SoundIndizes“ umgehen. Letztere sind vor allem dann notwendig, wenn durch den Klang zusätzliche Informationen übermittelt werden sollen. Wenn der Klang z. B. die Information „Anzahl Neukunden“ liefert, wird über den SoundType „Units“ und den SoundIndex „4“ akustisch mitgeteilt, um wie viele Neukunden es sich handelt (vier Einzeltöne entsprechen vier Neukunden). Im vorliegenden Beispiel spielt der SoundIndex keine Rolle, da man lediglich einen Klang ohne speziellen SoundIndex erhalten möchte.

Folgende SoundTypes und SoundIndizes stehen grundsätzlich zur Verfügung:

SoundTypeBeschreibungSoundIndexBeschreibung
Amountfür ZahlenwerteWert von 1 bis 5Gespielt werden zwei Töne; je größer der SoundIndex,
desto größer der Abstand zwischen den beiden Tönen.
Amount2für Zahlenwerte (Alternative)Wert von 0 bis 4Gespielt wird ein Anfangston; die Anzahl der darauffolgenden Töne ist die codierte Zahl.
Percentagefür ProzentwerteWert von 0 bis 8Gespielt werden acht Töne; die Anzahl der hohen Töne davon ist die codierte Zahl. Beim Wert 8 klingen somit alle Töne gleich hoch, beim Wert 2 erklingen erst zwei hohe, danach 6 tiefe Töne. Die Klangfolge von 8 Tönen wird zweimal hintereinander abgespielt.
Unitsfür AnzahlenWert von 1 bis 19Gespielt werden entweder Doppeltöne oder Einzeltöne; dabei zählt ein Doppelton 5, ein Einzelton 1, die Summe ergibt die codierte Zahl. Die codierte Zahl 19 ertönt also wie folgt:
3 Doppeltöne (entspricht 3 * 5) + 4 Einzeltöne (entspricht
4 * 1)

Tab. 1: Verfügbare SoundTypes und SoundIndizes

SSIS-Paket

Im SSIS-Paket benötigen wir einen Task „Prozess ausführen“. Dort muss unter „Executable“ der Dateipfad zur curl.exe hinterlegt werden. Unter „Arguments“ wird der zu verwendende http-Request eingetragen. Der Screenshot zeigt die Konfiguration des Tasks „Prozess ausführen“.

2013-08-16_Crew_Task Prozess ausführen

Abb. 2: Task „Prozess ausführen“

Im Beispiel wurde das Standard-SSIS-Paket erweitert. Hinter dem letzten Task „OLAP-Datenbank verarbeiten“ wurde ein weiterer Task angelegt, der nur ausgeführt wird, wenn die Verarbeitung der OLAP-Datenbank fehlschlägt. Der Pfeil zum Task „Notification versenden“ ist rot, weil der Task nur im Fehlerfall ausgeführt werden soll.

2013-08-16_Crew_Task Notifications versenden

Abb. 3: Zusätzlicher Task „Notifications versenden“

iPhone

Das Ergebnis ist im iPhone sichtbar: immer dann, wenn bei der Verarbeitung der OLAP-Datenbank ein Fehler passiert, wird man per Notification benachrichtigt.

Übrigens, Hintergrundbilder für Sperr- und Homebildschirme von iPhones befinden sich auf unserem Filesystem unter Vorlagen.

2013-08-16_Crew_Ergebnis auf dem iPhone

Abb. 3: Ergebnis auf dem iPhone

Viel Spaß beim Ausprobieren!