<< Back

Alteryx: i container

Se c’è un tool all’interno di Alteryx che è bistrattato, quello è sicuramente il Container Tool. Quasi incompreso, direi!

Aprendo dei file di Alteryx vi sarà sicuramente capitato di vedere dei container accompagnati da testi o da tool, come nell’immagine d’esempio qua di fianco. Container usati per lo più per “nascondere” una parte di workflow di secondaria importanza, o anche solo per rendere l’area di lavoro più chiara e ordinata, sfruttando la possibilità di aprire e chiudere il container con la freccettina in alto a destra nell’angolo.

container esempio
Esempi di utilizzo dei container tool

Nell’immagine è stato chiuso in un container tutto il pezzo di workflow che fa il calcolo della stima predittiva. Immaginiamo di voler eseguire la stima con 4 o 5 differenti modelli in parallelo, per poi scegliere quello più preciso… per vedere tutto il nostro workflow, ci vorrebbe un monitor 42 pollici! Così facendo, possiamo racchiudere tutte le stime in un container e lasciarlo lì chiuso, che occupa poco spazio, lasciando all’utente l’opzione di aprirlo se vuole guardare i tool contenuti.

Oppure molto spesso i container vengono utilizzati per inserire dei commenti, le istruzioni di come utilizzare i tool, delle note, ecc, ecc, ecc… non a caso sono inseriti nella tab/categoria di tool “Documentation”!

Ma provate un attimo a cambiare le configurazioni dell’area di lavoro e passare da un workflow standard a un’app o a una macro. Cosa succede?

container flash
Container in area di lavoro macro/app

Il container può essere connesso ai tool della categoria/tab “Interface”! Significa che può essere inserito in un workflow e collegato ai i tool che fanno dialogare le scelte dell’utente, che arrivano dall’interrfaccia della macro/app, con i tool veri e propri. Vediamo come!

Uno dei test che mi sono trovata all’esame per diventare consulente Alteryx certificato prevedeva il calcolo del totale di righe e colonne. E la domanda, durante l’esame, mi è sorta spontanea: “Ma perché tra i tool arancioni non ce n’è anche uno per i totali?” – Voglio dire, abbiamo a che fare tutti i giorni con tabelle su tabelle, i totali potrebbero benissimo essere un’operazione che può capitare spesso di dover eseguire.

Non esiste? E allora me lo creo io un tool per i totali! (E questa è una delle cose di Alteryx che adoro!)

Questo è il layout che ho dato all’input della macro: una tabella che ha una prima colonna descrittiva e tutte le altre con valori numerici.

macro
Layout macro input

Molto semplicemente dobbiamo fare la somma tra i valori che A assume nella colonna Valore 1, Valore 2 (5+1) – che B assume nella colonna Valore 1, Valore 2 (4+2), ecc, ecc… Potremmo fare una semplice formula Totale=[Valore 1]+[Valore 2] e avere il totale. Ma noi sappiamo a priori quante colonne avremo nella tabella? No. Dobbiamo rendere i nostri calcoli dinamici:

Totali righe
Workflow totali di riga

Spego molto velocemente il workflow (in fondo all’articolo troverete il link per scaricarlo e vedere com’è fatto):

Aggiungiamo alla tabella iniziale un ID univoco per ogni riga e con Dynamic Select selezioniamo solo i campi numerici (Byte, Int16-32-64, Fixed decimal… fino a Double). Ribaltiamo la tabella, per avere i valori tutti incolonnati uno sotto l’altro e facciamo una somma in base all’ID:

transpose summarize
Transpose + Summarize

Ora facciamo una Join per assegnare a ogni riga della tabella originale il proprio totale, usando il Record ID come campo di unione, utilizziamo di nuovo il Dynamic select per deselezionare tutte le colonne che si chiamano Record ID (cancelliamo tutto quello che abbiamo creato in preparazione dei calcoli del totale) e poi usiamo un Select Tool per rinominare la colonna del totale, collegando un Text Box che andrà ad aggiornare il nome della colonna in base alla scelta fatta dall’utente.

Ora costruiamo il workflow per i totali di colonna:

Cattura
Workflow totali di colonna

La prima parte del workflow è uguale. Una volta arrivati al Dynamic tool, ci spostiamo in basso e ribaltiamo la tabella per incolonnare i valori uno sotto l’altro e, anziché usare il summarize, stavolta ribaltiamo di nuovo la tabella in posizione orignale usando come header Valore 1 e 2, e come metodo la somma:

Senza titolo-1
Transpose + Cross Tab

Questa volta i totali vanno aggiunti in basso, abbiamo bisogno di una Union. Il Transpose tool ci ha rinominato le colonne sostituendo gli spazi con gli underscore. Se ripristiniamo gli spazi con il Dynamic Rename, avremo le colonne con lo stesso identico nome e possiamo unire le due tabelle con Union – Auto Config. By Name. Utilizziamo di nuovo il Dynamic select per deselezionare tutte le colonne che si chiamano Record ID (cancelliamo tutto quello che abbiamo creato in preparazione dei calcoli del totale). Nella tabella abbiamo un campo Null accanto ai totali.

Valore null

Possiamo utilizzare un MultiField Formula per rinominare il valore null con l’etichetta “Totale di colonna” e colleganre un Text Box che andrà ad aggiornare il nome dell’etichetta in base alla scelta fatta dall’utente.

Ottimo. La nostra macro è pronta! Ma non funziona bene. Perché ci calcola in parallelo entrambi i totali. Ma noi vogliamo che calcoli i totali di riga, o i totali di colonna o entrambi i totali.

Come facciamo a dire ad Alteryx di far partire solo un worflow in base alla scelta che facciamo, non tutti e due?

Usando i container, i radio button e il condition tool!

Inseriamo i tool usati per il calcolo del totale riga in un container e quelli usati per i totali colonna in un altro, lasciando fuori dai container i tool in comune per entrambi i flussi, tra cui l’Union tool e il Macro output finali che dovremo aggiungere, per avere un solo output alla volta.

Senza titolo-2Creiamo un Radio Button per la scelta del totale di riga a cui andremo a collegare un Condition e al connettore vero del Condition un Action tool, che sarà collegato al container che contiene il workflow dei totali di colonna.

Se il radio button per i totali di riga è selezionato, allora esegui l’azione di andare a disabilitare tutto il container dei totali di colonna.

Facciamo la stessa cosa, però al contrario, per i totali di riga. Creiamo il radio button, lo colleghiamo a un condition, che a sua volta è collegato a un Action tool che si collega al container dei totali di riga.

Se il radio button per i totali di colonna è solezionato, allora esegui l’azione di andare a disabilitare tutto il container dei totali di riga.

E voilà! La macro è finita!

 

Workflow finale
Workflow finale

Scarica 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.