Iterative Makros
Die Besonderheit eines Iterativen Makros besteht darin, dass es mindestens zwei Outputs gibt. Ein Output für die Daten, die bei jeder Iteration des Makros erzeugt werden. Und ein weiterer Output, der für die nächste Iteration als Input verwendet wird. Diese spezielle Makro Art ist das Äquivalent zu einer while-Schleife, wie sie in anderen Programmiersprachen verwendet wird. Anders als beim Batch Makro kann diese Schleife so lange durchgeführt werden, bis ein bestimmtes Kriterium erreicht ist. Wenn Sie also nicht wissen, wie viele Iterationen Sie benötigen (nicht zählbar oder ständig variierend), dann ist das Iterative Makro genau das richtige für Sie!
Eine weitere Möglichkeit, Daten in Alteryx zu laden, ist über eine API Abfrage. Die Daten werden dann meist in XML oder JSON Format ausgegeben. Alteryx bietet für beides eigene Tools, um die Daten in Tabellenform überführen zu können.
In unserem Beispiel schauen wir uns eine API an, die die Schulferien in Deutschland aufgeteilt nach Bundesländern ausgibt. Die URL wird in ein Textinput Tool eingetragen, das in ein Makro Input umgewandelt wird (Vergleich Blogbeitrag Batch Makro). Hier teilen wir die URL auf zwei Felder auf, da das Feld mit der Jahresinformation durch das Makro variabel gehalten werden soll. Dann wird die URL in den Formel Tools zusammengesetzt und die Daten mittels des Download Tools heruntergeladen. Hier werden die Daten im JSON Format verfügbar gemacht, die wir durch JSON Parse in Tabellenform darstellen.
Die heruntergeladenen Daten werden dann über „d Output“ ausgegeben.
Im oberen Strang des Workflows legen wir fest, welche Daten in unserem iterativen Makro im nächsten Durchlauf als Input verwendet werden sollen. Hier wollen wir mehrere aufeinanderfolgende Jahre abfragen., Also addieren wir mit jeder Iteration eine eins zu dem Feld, das das Jahr enthält.
Hierfür müssen wir Einstellungen im Interface Designer vornehmen. Für das Feld „Iteration Output“ wählen wir den Output, der die Daten enthält, die wieder als Input verwendet werden sollen, also hier „i Output“. Außerdem müssen wir eine maximale Anzahl an Iterationen festlegen, damit wir keine Endlosschleife produzieren.
Wenn wir dieses Makro nun in einem Workflow verwenden und die Datenstruktur des Downloads anpassen, erhalten wir folgendes Ergebnis:
Das rote Ausrufezeichen gibt uns die Meldung, dass alle fünf Iterationen durchgeführt wurden. Da das Makro zwei Outputtools enthält, besitzt das Tool hier auch zwei Output Anker. Für den Workflow brauchen wir aber nur den Output, der die Daten enthält. Hier werden die Daten aller Iterationen untereinandergeschrieben und zu einer einzigen Tabelle zusammengefügt.
Da API‘s meistens eine Begrenzung haben, wie viele Zeilen man auf einmal abfragen kann, können Sie mit einem iterativen Makro eine sogenannte Pagination realisieren. Wenn die URL einen Teil enthält wie z.B. „page=1“, können Sie hier automatisch eine Seite nach der anderen abfragen, ohne die URL manuell anpassen zu müssen.
In dieser Blogserie haben wir Ihnen einige simple Makros vorgestellt, um zu zeigen, welche Möglichkeiten Alteryx Ihnen hier bieten kann. Natürlich können Sie die Makros beliebig komplex gestalten, um Ihren Anforderungen gerecht zu werden. Wir hoffen, wir konnten Ihnen Anregungen geben, wie Sie Ihre Alteryx Workflows weiterentwickeln können.
Der folgende Link führt zur Alteryx Gallery, in der Sie die Möglichkeit haben kostenlos Workflows, Macros und Analytische Apps herunterzuladen.
Hier geht es zur Alteryx Gallery