Power Platform Pills #5: Environment Variables
Power Platform Pills #5: Environment Variables

Power Platform Pills #5: Environment Variables

Autore: Jljch Nicosia

La serie “PowerPlatform Pills” è dedicata alla piattaforma progettata per fornire soluzioni intelligenti e flessibili per affrontare le sfide aziendali. Esploreremo diverse funzionalità e tecniche avanzate per massimizzare il potenziale di Power Platform

La Power Platform di Microsoft offre un ecosistema integrato di strumenti, tra cui Power Apps, Power Automate e Power BI, progettati per semplificare e potenziare la creazione di soluzioni aziendali personalizzate.

PowerPlatform Pills” è stata pensata per fornire approfondimenti dettagliati e una guida pratica su argomenti chiave, dedicati a un pubblico di sviluppatori, con differenti livelli di esperienza nella piattaforma.

Il primo articolo della serie  "Child Flow" è disponibile qui. Il secondo, "How to debug", è disponibile qui. Il terzo, "La delega dell'attività", è disponibile qui e il quarto "La gestione delle eccezioni in Power Automate" qui

Oggi voglio parlare di un argomento a mio avviso semplice quanto fondamentale, ma che spesso viene ignorato dagli utenti alle prime armi, anche se, in realtà è utilissimo per semplificare il lavoro con le Power Platform.

Normalmente le variabili sono il primo concetto che si acquisisce in qualsiasi linguaggio, mentre non mi è ancora chiaro del perché (sulla Power Platform) spesso questa peculiarità viene acquisita solo con una certa seniority.

Immagate di attaccare un post-it ad un oggetto: come un post-it, una variabile d'ambiente consente di memorizzare informazioni importanti, in modo che siano facilmente accessibili quando necessario. Come un post-it, una variabile d'ambiente può essere utilizzata in diverse situazioni, rendendo le informazioni disponibili e pronte all'uso senza doverle cercare o replicarle ogni volta. 

Le variabili in Power Platform: cosa sono

Il nome dice tutto! Sono "variabili" e in quanto tali ci supportano a relativizzare un parametro in un'applicazione o in un flusso, permettendoci di gestire un cambiamento senza impattare troppo sul processo. Ad esempio, una variabile potrebbe contenere l'indirizzo e-mail del destinatario di un messaggio, o il nome di un database. In questo modo, è possibile modificare facilmente questo valore in un unico punto e vederlo riflesso in tutta l'applicazione o il flusso, senza la necessità di modificare manualmente ogni singola istanza.

Best Practices per le variabili in Power Platform?

La loro adozione, insieme all'uso delle soluzioni fanno parte delle best practices dell'Application Lifecycle Management (ALM), per semplificare la gestione delle configurazioni e delle informazioni relative all'ambiente di sviluppo, test e produzione.

Infatti, consentono di memorizzare informazioni specifiche per ciascun ambiente, come ad esempio l'indirizzo della sorgente dati o le credenziali di accesso a servizi di terze parti (esattamente come avviene nei vostri .config). In questo modo, i tecnici possono scrivere il codice una sola volta, utilizzando queste variabili per differenziare le configurazioni dell'ambiente. Questo approccio semplifica il processo di deployment e di testing, poiché le configurazioni dell'ambiente possono essere gestite separatamente dal codice e aggiornate facilmente senza la necessità di modificare il codice del nostro flow o delle nostre Power Apps (questo è un tema che approfondiremo successivamente).

Quindi, anche se potrebbe sembrare un argomento secondario, sono uno strumento potente e utile per facilitare la gestione dei nostri processi. 

Come utilizzare le variabili in Power Platform?

Una volta identificata la soluzione per la quale creare il processo, al suo interno saranno accessibili funzionalità di creazione di alcuni oggetti, tra i quali le "variabili d'ambiente". Questo a mio avviso è un limite, ma purtroppo le variabili possono esse utilizzate solamente dentro una soluzione (che è già di per sé una best practices, quindi abituatevi a creare soluzioni!)

Nel dettaglio, ogni variabile ha un nome univoco, una tipologia e un valore che può essere modificato in qualsiasi momento.

Vantaggi e svantaggi delle Environment Variables

Ecco una lista dei principali vantaggi delle Environment Variables:

  1. Controllo: le Environment Variables consentono di gestire i valori che vengono utilizzati in un'applicazione o in un flusso in un unico punto, rendendo più semplice la modifica di questi valori se necessario.
  2. Migliorare la manutenibilità: utilizzando le Environment Variables, è possibile evitare la duplicazione di valori in tutta l'applicazione o il flusso, rendendo l'applicazione più facile da mantenere e modificare.
  3. Semplificare il testing: le Environment Variables consentono di testare l'applicazione o il flusso utilizzando valori diversi senza dover modificare manualmente ogni singola istanza.

Tuttavia, ci sono anche alcuni svantaggi da considerare:

  1. Complessità: l'utilizzo delle Environment Variables può aumentare la complessità dell'applicazione o del flusso, poiché è necessario creare un ambiente e gestire le variabili.
  2. Possibilità di errore: se le variabili non vengono gestite correttamente, è possibile che si verifichino errori nell'applicazione o nel flusso.
  3. Inside solutions: La loro adozione è possibile solo dentro le soluzioni. 

Creare una variabile d'ambiente in una soluzione

Partendo sempre dalla soluzione, sulla barra dei comandi selezionare: NEW → More → Environment Variable

Impresoft-4ward-Power-Platform

NEW → More → Environment Variable 

Si attiverà un Panel sulla destra che richiederà alcune informazioni riferite al nostro parametro:

  • Display Name: Nome per la variabile di ambiente.
  • Name: Nome univoco che viene generato automaticamente dal Display Name (può essere modificato).
  • Data Type: Tipologia della variabile. (Decimal, Text, JSON, Bool, Data Source* o Secret*).
  • Current Value: Quando presente, è il valore che verrà utilizzato nell' Enviroment. In fase di migrazione da un Env1 a Env2 è il parametro che dovrà essere eliminato affinché l'importazione nel nuovo ambiente richieda il valore da applicare al nuovo ambiente.
  • Default Value: Viene preso in considerazione SE non esiste alcun Current Value.

Impresoft-4ward-Power-Platform2

Di seguito un caso d’uso che mostra come implementare un processo, adottando le variabili d’ambiente.

Obbiettivo: Migrazione della soluzione da un Enviroment ad un altro.

Pre-requisito: predisposizione della stessa lista usata nella business del flow su 2 siti SharePoint Online differenti. la prima con nome ListDemo, mentre la seconda ListDemoEnv2.

Impresoft-4ward-Power-Platform3Nella soluzione d'esempio, userò 2 variabili d'ambiente e un flusso Power automate

Impresoft-4ward-Power-Platform4La prima variabile che predisporremo è Sito_P1.

Impresoft-4ward-Power-Platform5

Questa variabile indicherà il percorso della nostra sorgente dati, nel mio scenario userò una lista su un sito SharePoint.

La seconda variabile è Lista_P1 relativa alla lista, su cui vorrei intervenire nel nostro flusso.

Questa seconda variabile avrà come riferimento del "Site" esattamente la variabile d'ambiente Sito_P1 (che a questo punto sono già entrate in gioco). 

Il processo è composto da un semplice flow nominato LetsGO (potrebbe essere 1, 10 oppure 100… non cambierebbe nulla).

Impresoft-4ward-Power-Platform6Impresoft-4ward-Power-Platform7

Nel flusso di Power Automate, è stata aggiunta un'azione "Get Items" di SharePoint. Nei parametri necessari per indicare il sito e la lista sono state utilizzate le variabili d'ambiente precedentemente configurate.
Per maggiore chiarezza nella presentazione dei dati, aggiungerò anche un'azione che consente di organizzare i dati estratti dalla "Get Items" in una struttura più leggibile rispetto al classico output Json.

Impresoft-4ward-Power-Platform8

L’esito dell’esecuzione del flow sul primo Enviroment sarà, quindi, basato sul contenuto risolto dalle variabili d’ambiente che abbiamo istanziato.

Impresoft-4ward-Power-Platform9

Ora proviamo a testare lo stesso comportamento migrando la nostra soluzione su un nuovo Environment.

Pre-condition (Deploy) - Prima di deployare sul secondo Environment la nostra soluzione, è opportuno avere un paio di accorgimenti: 

Impresoft-4ward-Power-Platform10

Nel nostro scenario, avevamo un flow che sfrutta 2 referenze (le nostre 2 variabili d’ambiente).

Ripetere il passaggio su ogni componente della soluzione.

  • Aggiunta di tutte le referenze nella soluzione – Questo passaggio è necessario, affinché, durante lo spostamento della soluzione, siano incluse tutte le referenze e i componenti utilizzate dal nostro processo e necessari al funzionamento anche sull’Environment di destinazione. 
  • Rimozione del valore preimpostato su ogni variabile - Questo passaggio è necessario affinché durante l'importazione della soluzione venga richiesta la risoluzione delle variabili d'ambiente riferite al nuovo ambiente. 

Impresoft-4ward-Power-Platform13Ripetere il passaggio su ogni variabile

A questo punto possiamo procedere con l’export dall’ambiente 1 del pacchetto

Nota tecnica: la procedura di export vi chiederà di scegliere se esportare la soluzione come gestita o non gestita (questo è un tema che approfondiremo successivamente); tuttavia non è fondamentale per l’esito del nostro test. Procedete con l’esportazione non gestita.

Impresoft-4ward-Power-Platform14

Per la relativa importazione sull’ambiente 2

Impresoft-4ward-Power-Platform15

come anticipato, vi verrà chiesto di risolvere le 2 variabili d’ambiente precedentemente configurate.

Impresoft-4ward-Power-Platform16

Di seguito come ho riconfigurato le mie: 

Impresoft-4ward-Power-Platform17

Terminati questi passaggi, la soluzione è già pronta per essere utilizzata con i nuovi puntamenti. 

Impresoft-4ward-Power-Platform18

E come possiamo constatare dall’output, i metadati questa volta arriveranno dal secondo ambiente. 

Impresoft-4ward-Power-Platform19

Sono certo che riconoscerete presto come queste variabili d’ambiente diventeranno strumenti indispensabili per una gestione efficiente dei processi.

 

Jljch Nicosia

Jljch Nicosia

Nel settore IT da oltre 20 anni, ha maturato una solida esperienza con 9 di sviluppo di Document Management Systems e 7 di sviluppo di sistemi di wordprocessing.
E' laureato in Informatica, ma si ritiene in “ continuous improvement ”. Ha conseguito diverse certificazioni Microsoft e ha competenze in SQL querying, MS600, PL200, PL400 e PL600.
In Impresoft 4ward è Software Solution Analyst da 4 anni. Si occupa Power Platform, SharePoint e trasformazione digitale.