Oltre la registrazione: condizioni, cicli e variabili negli script
Le macro che registrano e riproducono le operazioni sono il modo più semplice per automatizzare le attività ripetitive. Una macro registrata, tuttavia, ha una caratteristica fondamentale: esegue ogni volta esattamente le stesse operazioni. Il lavoro reale comprende molte decisioni che modificano il comportamento in base alla situazione, come «se le scorte sono esaurite, effettua un ordine» o «se il totale supera il budget, mostra un avviso». La sola registrazione non può gestire queste decisioni.
È qui che entrano in gioco gli «script». Grazie agli script è possibile integrare nell’automazione elementi fondamentali della programmazione, come le condizioni («se… allora…»), i cicli (ripetizioni) e le variabili (contenitori che memorizzano valori). La parola «programmazione» può intimorire, ma questi elementi non fanno altro che dare forma alle decisioni quotidiane e il loro principio non è affatto difficile. Questo articolo illustra chiaramente i tre pilastri degli script come passo successivo alla registrazione.
Condizioni (IF/ELSE): consentire di prendere decisioni
Una condizione è un meccanismo che esegue una determinata operazione soltanto quando si verifica una condizione specifica. Il blocco IF esegue il proprio contenuto solo se la condizione è vera, mentre ELSE gestisce tutti gli altri casi. Ad esempio: «Se sullo schermo compare la parola “Errore”, avvisa il responsabile; altrimenti, passa direttamente al passaggio successivo».
Come condizione si possono usare un valore mostrato sullo schermo, il colore di un determinato pixel o un numero memorizzato in una variabile. Le persone eseguono inconsciamente un’intera sequenza: osservano lo schermo, valutano la situazione e decidono l’azione successiva. Le condizioni servono proprio a incorporare questo processo decisionale nell’automazione. Una volta scritte, il computer prenderà ogni volta la decisione corretta al posto vostro.
Cicli (LOOP): ripetere le operazioni
Un ciclo è un meccanismo che ripete più volte la stessa operazione. È simile all’impostazione del «numero di riproduzioni» di una macro, ma i cicli negli script sono molto più flessibili. Oltre a specificare un numero, come «ripeti 10 volte», è possibile ripetere in base alla situazione: «finché non rimangono più righe nell’elenco» oppure «finché non viene soddisfatta una determinata condizione».
Il vero valore dei cicli emerge quando si elaborano grandi quantità di dati. Basta racchiudere in un ciclo l’operazione «elabora un elemento» per trasformarla in «elabora tutti gli elementi dell’elenco». Che siano 100 o 1.000, è sufficiente scrivere l’operazione per un solo elemento: il ciclo scorrerà automaticamente tutti gli altri. Un’attività che manualmente richiederebbe ore deve così essere scritta una sola volta, dopodiché non resta che attendere. È questo il punto in cui l’automazione passa dal far risparmiare «minuti» al far risparmiare «ore».
Variabili: memorizzare i valori
Una variabile è una “scatola” che consente di memorizzare temporaneamente un valore durante un’elaborazione. Un contatore (a quale iterazione si è arrivati), il nome di un file, un valore numerico letto dallo schermo o il risultato intermedio di un calcolo: memorizzando questi valori nelle variabili è possibile riutilizzarli nei passaggi successivi. Ad esempio, un’operazione come “leggere il valore di una cella in una variabile e, se supera 10.000, copiarlo in un altro foglio” si realizza combinando variabili e diramazioni condizionali.
Quando si combinano variabili, diramazioni condizionali e cicli, le possibilità dell’automazione aumentano enormemente. “Leggere i dati (variabili), modificare l’elaborazione in base al contenuto (diramazioni condizionali) e applicarla a tutti gli elementi (cicli)”: questa sola combinazione consente di coprire una parte considerevole delle attività pratiche. È qui che si apre la strada all’“automazione intelligente”, irraggiungibile con la semplice registrazione e riproduzione.
Creare un’“automazione che non si ferma” con la gestione degli errori
Dopo aver acquisito familiarità con diramazioni condizionali, cicli e variabili, il passo successivo è imparare la “gestione degli errori”. Quando un’automazione viene utilizzata a lungo, gli imprevisti sono inevitabili: la rete si interrompe per un istante, non si trova un file che dovrebbe aprirsi oppure la schermata appare diversa dal solito. In questi casi, uno script privo di contromisure si arresta completamente. Se viene eseguito senza supervisione durante la notte, il lavoro potrebbe rimanere bloccato fino al mattino successivo.
È qui che entra in gioco il meccanismo di gestione degli errori TRY/CATCH. Consente di definire un comportamento in cui, anche se si verifica un errore nel blocco TRY, l’intera elaborazione non si arresta, ma passa alle operazioni scritte nel blocco CATCH, come registrare l’errore, inviare una notifica oppure saltare soltanto l’elemento interessato e procedere con il successivo. Si ottiene così un’automazione robusta che, anche se un elemento fallisce, elabora tutti gli altri fino alla fine. In pratica, si insegna allo script la reazione che per una persona è naturale: “Anche in caso di errore, registrarlo e poi proseguire”.
Conoscere i comandi SCR più utilizzati
Gli script SCR di makuroku includono i comandi utilizzati più spesso nelle attività pratiche. Non è necessario impararli tutti in una volta, ma sapere che cosa permettono di fare aiuta a sviluppare idee come “Anche questo potrebbe essere automatizzato”. Vediamo alcuni dei comandi principali.
- • FIND_IMAGE / WAIT_IMAGE: cercare elementi sullo schermo tramite immagini o attenderne la comparsa
- • IF / ELSE / LOOP: diramazioni condizionali e ripetizioni
- • SET / ADD / SUB: assegnazione di valori alle variabili e calcoli
- • READ_FILE / WRITE_FILE: lettura e scrittura di file
- • HTTP_GET / POST: comunicazione con servizi esterni
- • NOTIFY / PROMPT: visualizzazione delle notifiche e richiesta di input all’utente
Combinando queste funzioni, è possibile realizzare automazioni avanzate ben oltre la portata di una semplice registrazione, ad esempio «leggere dati da un file, modificare l’elaborazione in base alle condizioni, inviare il risultato a un servizio esterno e notificare il completamento». Inoltre, il ruolo di ogni comando è semplice, quindi impararli non è difficile. Basta ampliare gradualmente il proprio repertorio, partendo dai comandi necessari.
Esempi di automazione realizzabili con gli script
Combinando diramazioni condizionali, cicli, variabili e gestione degli errori, diventano possibili automazioni ben oltre la portata di una semplice registrazione. Vediamo alcuni esempi concreti. Consideriamo, per esempio, l’attività di «aprire uno alla volta tutti i file di una cartella, controllarne il contenuto e spostare in un’altra cartella soltanto quelli che soddisfano determinate condizioni». La si può realizzare scorrendo tutti i file con un ciclo e classificandoli tramite condizioni. Una selezione che manualmente richiederebbe un’ora può essere completata in pochi minuti dopo aver scritto lo script una sola volta.
Un altro esempio è l’attività di monitoraggio che consiste nel «recuperare periodicamente dati da un sito Web, confrontarli con il valore precedente e inviare una notifica in caso di variazioni», un ambito in cui gli script eccellono. I dati vengono acquisiti tramite comunicazione HTTP, confrontati con il valore precedente memorizzato in una variabile e una condizione attiva la notifica quando rileva un cambiamento. Combinando il tutto con un’esecuzione pianificata, si ottiene un sistema di monitoraggio che non perde alcuna variazione senza richiedere alcun intervento.
Automazioni di questo tipo possono sembrare difficili a prima vista, ma ciascun elemento — cicli, diramazioni condizionali, variabili, comunicazione e notifiche — è semplice. La parte difficile è «capire tutto in una volta», non «combinare gli elementi uno alla volta». Si può iniziare soltanto dalle condizioni, poi passare ai cicli e ampliare gradualmente le proprie conoscenze partendo dagli elementi necessari. Quasi senza accorgersene, si diventerà capaci di creare autonomamente automazioni piuttosto avanzate.
L’importante è non puntare subito a uno script perfetto. Create innanzitutto una versione minima funzionante, eseguitela concretamente e correggete poco alla volta i punti che non si comportano come previsto. makuroku dispone di una funzione di debug che evidenzia in tempo reale la riga in esecuzione, consentendo di migliorare lo script mentre si verifica visivamente «dove ci si trova e che cosa sta succedendo». Provare, correggere e riprovare: questa iterazione è la strada più rapida per padroneggiare gli script.
Consigli per mantenere leggibili gli script
Uno script non è concluso una volta scritto: spesso viene riletto e modificato in seguito. Prestare attenzione alla «leggibilità» fin dalla stesura renderà quindi molto più semplice il lavoro futuro. Ecco alcuni suggerimenti. Innanzitutto, assegnate alle variabili nomi significativi. Invece di «x» o «a», usate nomi come «importo totale» o «nome del file di destinazione», che ne descrivano il contenuto. In questo modo, rileggendo lo script in seguito, comprenderete immediatamente lo scopo dell’elaborazione.
Aggiungete poi commenti a ogni blocco di elaborazione. Anche brevi note come «da qui inizia l’acquisizione dei dati» o «qui viene controllato l’importo» rendono più facile seguire il flusso complessivo dello script. È inoltre utile suddividere le elaborazioni complesse in più script di piccole dimensioni. Una raccolta di script brevi separati per funzione è più facile da modificare e riutilizzare rispetto a un unico script enorme. Il segreto per creare script duraturi è scriverli chiedendosi: «Il mio io futuro riuscirà a leggerli e capirli?»
Come eseguire il debug degli script
Quando si scrive uno script, è inevitabile che qualcosa non funzioni come previsto. Il processo di individuazione della causa senza farsi prendere dal panico si chiama «debug». La base del debug consiste nel determinare «fino a quale punto tutto funziona correttamente e da dove il comportamento comincia a differire dalle aspettative». makuroku offre una funzione che evidenzia in tempo reale la riga in esecuzione e un output PRINT che mostra sullo schermo i valori intermedi. In questo modo è possibile cercare la causa verificando visivamente «dove ci si trova e che cosa sta succedendo».
Per eseguire un debugging efficace, occorre innanzitutto suddividere il processo in piccole parti e verificarne il funzionamento una alla volta. Cercando di completare tutto in una volta sola, diventa difficile capire dove si trova il problema. Scrivete poco per volta, eseguite spesso lo script e proseguite solo dopo aver verificato che funzioni correttamente. Questa ripetizione metodica è, in definitiva, il modo più rapido e affidabile per creare uno script. Anche quando si verifica un errore, il debugging non fa paura se lo si considera un indizio che indica «cosa bisogna correggere».
Ordine consigliato per imparare gli script
Ecco un possibile ordine in cui apprendere i vari elementi degli script. Il primo concetto da imparare è senz’altro la diramazione condizionale (IF/ELSE). Le decisioni del tipo «se…, allora…» sono alla base di qualsiasi automazione. Seguono i cicli (LOOP). Le operazioni ripetitive sono estremamente efficaci quando si elaborano grandi quantità di dati. Imparando a usare anche solo questi due elementi, potrete automatizzare molte attività che una semplice registrazione non consentiva di gestire.
Il passo successivo riguarda le variabili. Il meccanismo che consente di memorizzare i valori, combinato con condizioni e cicli, rende possibile un’elaborazione più flessibile. Arrivati a questo punto, imparate la gestione degli errori (TRY/CATCH). Per un funzionamento prolungato e senza supervisione, è indispensabile un meccanismo che non interrompa il processo anche in caso di errore. Infine, è sufficiente apprendere secondo necessità i comandi specialistici adatti al proprio obiettivo, come le operazioni sui file, le comunicazioni HTTP e l’OCR.
L’importante è non cercare di imparare tutto in una volta. Quando durante il lavoro pensate «sarebbe utile poter fare questa cosa», cercate la funzione corrispondente e provate a usarla. Questo stile di «apprendimento dettato dalla necessità» è, in definitiva, quello che permette di assimilare meglio le conoscenze. Invece di leggere un manuale in ordine dall’inizio, acquisirete capacità più pratiche automatizzando le attività che avete davanti e imparando di volta in volta gli elementi necessari.
A prima vista gli script possono sembrare difficili, ma i singoli elementi sono semplici e, imparandoli gradualmente, riuscirete sicuramente a padroneggiarli. Una volta acquisiti, la gamma di attività che potrete automatizzare si amplierà enormemente. Iniziate da una registrazione e muovete il primo passo nel mondo degli script aggiungendovi una sola condizione.
Passare gradualmente dalla registrazione agli script
Proprio chi pensa che «gli script sembrino difficili» dovrebbe sapere che non è necessario scriverli partendo da una pagina bianca. Con makuroku potete prima registrare le operazioni tramite la GUI e poi convertire la macro in uno script SCR modificabile. In altre parole, avrete fin dall’inizio una struttura funzionante. A quel punto basterà modificare solo le parti necessarie, ad esempio racchiudendo in un LOOP la sezione da ripetere oppure aggiungendo IF nel punto in cui occorre prendere una decisione.
Inoltre, durante la digitazione viene eseguito un controllo della sintassi che segnala immediatamente gli errori di scrittura. È disponibile anche una funzione di debugging che evidenzia in tempo reale la riga in esecuzione, permettendovi di vedere a colpo d’occhio «a che punto si trova il processo». Grazie a questi strumenti di supporto, il passaggio dalla registrazione agli script è graduale. Create prima la struttura tramite una registrazione, quindi aggiungete poco alla volta condizioni e cicli. Con questo metodo, anche chi non ha esperienza di programmazione può realizzare autonomamente automazioni pratiche. Con makuroku potete provare gratuitamente tutte queste funzionalità.
Provalo gratis
Automatizzalo con makuroku
makuroku registra mouse e tastiera e li riproduce automaticamente. Aggiungi script SCR e integrazione IA (MCP) quando serve di più. Tutte le funzionalità gratis su Windows.
Altri articoli