<< Back

Alteryx Macro Series: macro standard

—————————————————–

ALTERYX MACRO SERIES:

MACRO STANDARD

MACRO DI BATCH senza Group By

MACRO DI BATCH Group By

MACRO ITERATIVE: numero iterazioni

MACRO ITERATIVE: clausola until

—————————————————–

 

Che cos’è una macro standard?

Una macro standard non è altro che un workflow intero, con un capo e una coda, che può essere racchiuso in un singolo tool.

A cosa serve una macro standard?

Il principale utilizzo delle macro standard è quello di condividere dei processi con altri utenti, processi solitamente ripetitivi, che ci obbligano tutte le volte a costruire workflow simili o addirittura identici, e che potranno essere trascinati nell’area di lavoro sotto forma di singolo tool. Possiamo considerarle come un set di tool impacchettati.

Come si costruisce una macro standard?

Una macro standard è un insieme di tool classici (Input, output, data preparation…) e di Interface Tool, che servono per creare l’interfaccia utente. Ma per costruire una macro, di qualsiasi tipo essa sia, bisogna partire da un workflow funzionante:

A me, ad esempio, capita spesso di dover suddividere le ore del giorno in gruppi, in bin, range di orari, che contengano 30 minuti l’uno. Una soluzione che ho trovato per risolvere questo problema è stata quella di creare 1.440 righe (una per ogni minuto delle 24 ore) e inserire ognuna di queste righe in un gruppo di 30 minuti. Quindi le righe che vanno dalle 00:00 alle 00:30 faranno parte del primo gruppo, dalle 00:31 alle 01:00 del secondo, e così via.

  1. GENERATE ROWS: Parte dal valore “2017-01-18 00:00:00” (il 18 gennaio è una data del tutto fittizia) e crea una nuova riga il cui valore è il valore precendente + 1 minuto e smette di creare righe quando arriva a “2017-01-18 23:59:00”. Il risultato sono 1440 righe che partono da 00:00 e riga per riga crescono di 1 minuto: 00:01, 00:02, 00:03, 00:03…
  2. RECORD ID: Crea un ID univoco, da 0 a 1439
  3. FORMULA: La prima formula formatta la data nel formato “Time” con solamente ore e minuti. La seconda formula formula crea il gruppo di 30 minuti l’uno. Vedremo poi nello specifico come.
  4. SUMMARIZE: Per ogni gruppo creato calcola il minimo e il massimo (ossia i due range estremi del gruppo)
  5. FORMULA: Concatena il minimo e il massimo per creare il nome, l’etichetta del bin, del gruppo
  6. JOIN: assegna l’etichetta creata ad ognuna delle 1.440 righe.

Ora che mi sono creata la mia tabellona di lookup la potrò utilizzare da qui all’eternità facendo delle join con i miei set di dati, per assegnare il gruppo agli orari che si trovano nei dati che devo analizzare.

Fantastico!

E se domani un mio collega avesse bisogno di questa tabella di lookup però con gruppi da 10 minuti l’uno anziché 30? Potrei passargli il mio workflow e sperare che nel fare le modifiche non me lo distrugga completamente! O che non mi stressi ogni 10 secondi per chiedermi come funziona il workflow perché non sa dove mettere le mani… (ogni riferimento a fatti o persone è puramente casuale!)

Perché non farlo diventare una macro in cui inserisco anche un’interfaccia utente che permetta di parametrizzare le formule con valori scelti dal mio collega?

Interface tool

Ho deciso di dare l’opportunità all’utente di scegliere il formato dell’orario (è importante perché sarà la chiave di match per la join con il dataset su cui lavorerà, quindi deve avere lo stesso formato) e la dimensione del gruppo.

La formula che regola la formattazione dell’orario è:

DateTimeFormat([RowCount],“%H:%M”)

Dove [RowCount] è la colonna con le 1.440 righe create con il Generate Rows Tool e il formato “%H:%M” è il fomato ora e minuti composti da 24 ore. Ma sappiamo che l’orario può anche essere espresso in 12 ore AM/PM.

Dobbiamo far scegliere l’utente tra due opzioni. Il tool che fa per noi è il “Drop Down”. Trasciniamolo nell’area di lavoro.

Non appena lo faremo, vedremo apparire tanti connettori sopra e sotto i tool. Gli interface tool hanno i connettori in basso. i tool classici li hanno in alto. Possiamo connettere un interface tool a un tool classico, utilizzando due connettori della stessa forma.

Connettiamo il Drop Down al Formula tool.

Andiamo ora ad impostare il Drop Down. Dato che abbiamo 2 scelte, sostanzialmente statiche, possiamo inserire i valori da scegliere dal menù a tendina a mano. L’utente facendo una scelta andrà a modificare l’ultima parte della formula. Se vuole l’orario a 24 ore, l’ultimo pezzo della formula sarà “%H:%M”. Se invece lo desidera a 12 ore AM/PM, sarà “%I:%M %p”.

Nel box “Properties” dobbiamo inserire le scelte. Una per linea:

  • 24 hour clock:%H:%M
  • 12 hour clock AM/PM:%I:%M %p

Prima dei due punti abbiamo l’alias che l’utente vedrà nel menù a tendina, dopo i due punti il valore che verrà passato nella formula.

Se ci fate caso, il filo che connette il Drop Down alla formula ha un nome. Si chiama “#1”. Se entriamo nel formula tool e apriamo il pannello delle variabili, vedremo che c’è un’opzione in più rispetto al solito: “Connection from questions”.

Possiamo rimpiazzare l’ultimo pezzo della formula con ciò che verrà scelto dall’utente nel menù a tendina:

Ora dobbiamo fare la stessa cosa per la seconda formula, quella che crea i gruppi.

La formula utilizza la funzione CEIL, che restituisce il numero intero di una divisione (se vuoi maggiori info su questa funzione, leggi questo articolo). Dividendo il RecordID per la dimensione del gruppo, otteniamo l’etichetta che cerchiamo.

Questa volta l’utente dovrà scegliere un numero per rimpiazzare il mio 30 con la sua scelta. Il “Numeric Up/Down” fa al caso nostro.

Ora che abbiamo terminato con i tool, non ci resta che far terminare il worflow con un Macro Output:

Il tool non ha nessuna configurazione particolare, ad eccezion fatta della letterina da mettere nel connettore (come la join che ha le lettere J, L e R) e il nome dell’output. Io metto la F di Federica! Inserendo un macro output, Alteryx capirà da solo che si tratta di una macro e cambierà le impostazioni del workflow in “Macro standard”.

Ora salviamo la macro in formato macro (File –> Save as… –> Browse)

Apriamo un nuovo foglio di lavoro, clicchiamo col tasto destro in un punto bianco del canvas e scegliamo Insert –> Macro… e andiamo a caricare la macro appena salvata:

Eccoci! Finalmente possiamo distribuire ai colleghi la macro.

Federica Ferrarini

Trainer - Milano

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.