Der normale Business-User schaltet bereits bei der reinen Erwähnung von Programmiersprachen ab: „Das kann ich nicht“ – dabei ist es eigentlich ganz einfach. Es braucht nicht viel, um erste eigene Python-Skripte und Macros in Alteryx zu erstellen, die die existierenden Funktionen ergänzen. Wie einfach das geht, zeige ich euch in diesem Blog, in welchem wir sehen werden, wie man Smartphone Benachrichtigungen mit Alteryx erstellen kann.
Wer statt einem Blog lieber eine Video-Variante bevorzugt, kann sich die Aufzeichnung der virtuellen Alteryx Dallas User Group (danke @Deanna) anschauen und meinen Beitrag zu „Showcasing the power of small Python macros“ in Video Form genießen. Der Link dazu wird ergänzt sobald die Aufzeichnung verfügbar ist.
Warum eigentlich Python?
Alteryx bietet einige SDK-Pakete um Custom-Tools zu erstellen, warum also Python? Weil es im Alteryx-Designer auch ein Python-Tool gibt, so dass wir all das drumherum ignorieren können. Zudem ist Python die zur Zeit vermutlich beliebteste Programmiersprache und es gibt enorm viele freiverfügbare Bibliotheken, die man kostenlos verwenden kann.
Android Benachrichtigungen in Alteryx generieren
In diesem Blog möchte ich euch zeigen, wie wir ein simples Python Macro bauen können, welches es uns erlaubt, am Ende eines Workflows eine kurze Benachrichtigung an unser Telefon zu schicken. Ich hatte in der Vergangenheit bei langen Workflows (vor allem auf dem Server) immer das Problem: Wann ist dieser eigentlich fertig? Natürlich kann man eine Mail verschicken, aber das fand ich immer äußerst nervig, warum nicht einfach eine kurze Android Benachrichtigung?
Der Anfang
Der erste Schritt in unserem kleinen Projekt ist simpel: Wir suchen einfach bei Google was für Möglichkeiten wir haben. Wir stoßen dabei schnell über Tools wie Pushsaver und Pushbullet – ich persönlich habe mich dabei für letzteres entschieden. Daraufhin können wir unsere Suche nochmal verfeiern und „Python Pushbullet“ suchen. Einer der ersten Treffer ist dabei die PyPi-Seite mit allem was wir wissen müssen. PyPi ist dabei so etwas wie Art Alteryx Gallery für Python Bilbliotheken.
Das Python-Tool | Die Vorbereitung
Ich beginne die Arbeit für Python-Macros immer gleich: Ich starte mit einem leeren Text Input Tool und befülle dieses lediglich mit einem X, hänge ein Python-Tool dahinter und führe den Workflow einmal aus.
Nachdem wir auf das Python-Tool geklickt haben, können wir all den Standard-Code herauswerfen indem wir dreimal auf das Scheren-Symbol klicken.
Danach sollte es so aussehen:
Das Python-Tool | Bibliotheken installieren
In der Anleitung von PyPi steht bzgl. der Installation folgendes:
Das können wir auch fast genauso in Alteryx übernehmen, wir müssen lediglich ein Ausrufezeichen davor einfügen und das Skript mit SHIFT+Enter starten.
Das Python Tool | Code schreiben
Nachdem wir nun die Bibliothek / das Paket installiert haben, können wir anfangen es zu nutzen. In der Anleitung heißt es als nächstes unter Usage:
from pushbullet import Pushbullet
pb = Pushbullet(api_key)
Dies können wir 1:1 so übernehmen, den API-Key werden wir gleich noch austauschen. Auch den nächsten Schritt können wir einfach kopieren:
push = pb.push_note("This is the title", "This is the body")
Der Code sollte nun wie folgt aussehen:
Pushbullet | Das API Token
Was ist eigentlich Pushbullet? Pushbullet ist eine App die es euch ermöglicht u.a. mit Skripten Benachrichtigungen auf verschiedenen Plattformen wie Android zu generieren. Es ist dabei sehr praktisch, dass wir uns auch mit dem Google-Account registrieren können, so sparen wir uns einen weiteren Account. Nachdem wir die App installiert haben und uns angemeldet haben, öffnen wir die Pushbullet Webseite und können unter den Settings ein Access Token generieren:
Dieses können wir nun in unserem Alteryx Python-Tool in Anführungszeichen einfügen.
Wenn wir nun die beiden Code-Blöcke mit SHIFT+Enter erneut ausführen, sollte kurz darauf eine Benachrichtigung auf unserem Handy auftauchen – Geschafft!
In Macro umwandeln und verfeiern
Nach unserem gelungenen Testlauf können wir nun an den Feinheiten arbeiten und unser Macro verfeinern. Als erstes können wir dabei unser Text-Input Tool mit einem Rechtsklick in ein Macro-Input Tool umwandeln. Ich wähle hier gerne die Option „Optionale Input Connection“, da wir diese in unserem Fall gar nicht benötigen.
Im zweiten Schritt wollen wir dann unsere statischen Informationen wie Titel, Nachrichtentext und API-Token dynamisch machen, damit wir diese nicht immer gleich sind, sondern vom Nutzer selbst gewählt werden können. Dazu brauchen wir drei Text-Boxen und drei Action Tools. Tipp: Verbindet man eine Text-Box mit dem Python Tool wird automatisch ein Action Tool eingefügt:
Bevor wir die Action-Tools konfigurieren, sollten wir noch unser Python-Tool auf den Production-Modus umstellen, dies sorgt dafür, dass die interaktive Oberfläche nicht jedes Mal geladen wird. Diese hilft zwar beim Bauen, aber sobald unser Code final ist, brauchen wir diese nicht mehr. Wir können dies mit dem Switch im oben-rechten Eck machen:
In den drei Action Tools müssen wir im Folgenden jeweils konfigurieren welche Information ausgetauscht werden soll. Wichtig sind dabei lediglich zwei Aspekte:
Nachdem wir das für alle drei Bereiche gemacht haben, sind wir fertig. Wenn wir wollen können wir noch ein Icon festlegen und schon haben wir ein unser Handy-Benachrichtigungstool fertig!
Das Ergebnis
Da ich das Tool nur für mich selbst nutze, habe ich noch zusätzlich das Token als Default-Wert eingetragen, so dass ich dies nicht jedes Mal konfigurieren muss.
Bei langlaufenden Workflows haben wir nun die Option uns mit unserem eigenen Python-Macro benachrichtigen zu lassen, wenn diese fertig sind.
Abschließende Gedanken
Im Vergleich zu einigen der anderen Möglichkeiten Benachrichtigungen zu verschicken/generieren, hat man bei Pushbullet nur 100 kostenlose Nahrichten pro Monat – was in meinem Fall aber vollkommen ausreicht. Die Erstellung von Python Macros für Pushsaver und Notify_Run sind ähnlich simpel und letzteres habe ich bei mir ebenfalls eingerichtet.
Es ist ebenso möglich das Macro so zu bauen, dass dieses auf Datenzeilen des Alteryx-Workflows reagiert. Der einfachste Weg für Nicht-Coder ist hierbei jedoch einfach ein Batch-Macro drumherum zu bauen und die Felder damit zu befüllen.
"Und was wenn ich keine Bibliotheken installieren kann?" - Kein Problem! Mit dem Code aus der Spoiler-Box geht es ebenso!
#################################
import requests
import json
def pushbullet_message(title, body):
msg = {"type": "note", "title": title, "body": body}
TOKEN = '__token__'
resp = requests.post('https://api.pushbullet.com/v2/pushes',
data=json.dumps(msg),
headers={'Authorization': 'Bearer ' + TOKEN,
'Content-Type': 'application/json'})
if resp.status_code != 200:
raise Exception('Error',resp.status_code)
else:
print ('Message sent')
#################################
pushbullet_message("__title__","__message__")
Source: medium
Autor: Alexander Groß
Bei Fragen könnt ihr mich gerne hier in der Community oder auf LinkedIn kontaktieren.
Sie müssen ein registrierter Benutzer sein, um hier einen Kommentar hinzuzufügen. Wenn Sie sich bereits registriert haben, melden Sie sich bitte an. Wenn Sie sich noch nicht registriert haben, führen Sie bitte eine Registrierung durch und melden Sie sich an.