Una delle maggiori frustrazioni del personale non specializzato nell’IT è sempre stata quella di avere idee valide per aumentare la propria produttività aziendale, ma di non poterle realizzare in tempo utile a causa della mancanza di una specifica governance dei sistemi di sviluppo software.
Fino a qualche anno fa, per vedere concretizzarsi un tool o una app che ci desse una mano ad automatizzare alcune ripetitive operazioni di ufficio, era necessaria una complessa trafila che richiedeva spesso la presentazione di una richiesta a un responsabile, l’approvazione di un budget, ed infine l’apparizione quasi miracolosa del guru software di turno.
Oggi, invece, lo scenario è drasticamente cambiato. Grazie alle innovazioni portate dal cloud e dalle potenzialità degli ambienti SAAS (Software As A Service), stiamo assistendo a un proliferare delle soluzioni cosiddette low code. Di che cosa si tratta? Si tratta di ambienti di sviluppo che non richiedono la conoscenza di complessi linguaggi di programmazione, ma che permettono, tramite la guida assistita di tool grafici, la creazione di flussi logici o di interfacce in grado di ricevere l’input di un utente ed eseguire delle actions su delle basi di dati. Il successo incontrato da queste proposte è stato immediato, sin dalla loro comparsa sul mercato, proprio perché hanno permesso di colmare quel gap che impediva a persone non dotate di specifiche competenze informatiche di realizzare app per migliorare la propria produttività aziendale.
Gli ambienti low code sono spesso soluzioni flessibili e potenti, ma con un’interfaccia amichevole da utilizzare, e che soprattutto permettono di avere risultati soddisfacenti senza l’impiego di tecniche di programmazione specialistiche. In questi ambienti è possibile realizzare tool o processi automatizzati che vanno dal semplice recupero dell’allegato di una e-mail alla creazione di query per interrogare complesse basi dati.
La proposta di Microsoft: l’ambiente Power Platform
Tra le tante soluzioni presenti sul mercato, una delle più interessanti è sicuramente la piattaforma per la realizzazione di App e flussi logici low code proposta da Microsoft, Power Platform, una piattaforma composta da diversi moduli, tra cui un ambiente di sviluppo low code per App mobili (Power Apps), un editor per realizzare flussi di automatismo logico (Power Automate) e altri componenti dedicati alla BI e ai dati.
Uno dei punti di forza della piattaforma è di essere nativamente integrata nell’ambiente cloud di Microsoft365 (quello che fino a qualche mese fa era più conosciuto comunemente come Office365). Questa integrazione permette alla piattaforma di beneficiare di collegamenti e interazioni native con i tipi dati e le principali applicazioni del mondo Office, nonché di poter sfruttare le liste Share Point per immediate operazioni CRUD sui dati, oppure di poter pubblicare le proprie App direttamente in Teams.
Power Apps offre un ambiente di sviluppo a oggetti grafici in cui, con l’ausilio di poche righe di codice per manipolare eventi e proprietà degli oggetti, è possibile creare App mobili dalle interfacce dinamiche e accattivanti, nonché in grado di connettersi, grazie all’offerta di connettori Premium, alle più diffuse base dati per le applicazioni aziendali, come SQL Server oppure le liste di Share Point.
Le app realizzate con Power Apps sono fruibili sia da browser desktop, dove beneficiano di un rendering responsive reso disponibile immediatamente dalla piattaforma, ma anche su smartphone o tablet tramite l’installazione dell’app gratuita di Power Apps.
L’ambiente di sviluppo offre inoltre molte creazioni guidate tramite wizard, che aiutano l’utente nella realizzazione di app specifiche come cataloghi e form di raccolta dati. Inoltre, offre una collezione ricca di componenti aggiuntivi utilizzabili nelle app, come un frame per la raccolta della firma da smartphone o la visualizzazione di report Power BI.
Integrare Power Automate con le API REST
Un componente della suite Power Platform che si accompagna spesso all’utilizzo di Power Apps è l’editor Power Automate (prima chiamato Flow). Power Automate permette di realizzare flussi logici che automatizzano operazioni come salvare un allegato di posta elettronica in una cartella One Drive, oppure interrogare basi dati tramite connettori o API. I flussi Power Automate sono molto potenti, e l’editor offre infatti una pressoché infinita collezione di connettori o elementi di logica di flusso, come condizioni If – Else oppure la possibilità di eseguire cicli di operazioni (Loop condizionali), il tutto senza scrivere una sola riga di codice, ma con l’ausilio di elementi di progettazione grafica.
Power Automate è talmente avanzato da permettere di ottenere risultati di interazione e elaborazione dati un tempo raggiungibili solo con elevate skill di programmazione. Basti pensare che Power Automate è in grado di scambiare dati con API di qualsiasi tipo per mezzo del supporto al formato JSON, che viene letto e codificato (serializzato) per mezzo di template e flussi impostabili con tool grafici. Power Automate contiene automatismi specifici per il dialogo con API Rest, da cui può ricevere dati sotto forma di oggetti JSON.
Questa possibilità di integrare i flussi con API esterne permette di ampliare la produttività dell’ambiente Microsoft365, arricchendolo di dati e interazioni provenienti anche da software scritti in Net Core oppure di terze parti, anche On Premise, a condizioni che, appunto, espongano delle API interrogabili dall’esterno.
Pubblicare l’App in Teams
Una volta realizzata la nostra App, una delle possibilità più entusiasmanti dell’ambiente Power Platform è la possibilità di rendere disponibile a tutti i nostri colleghi l’App su Teams. Teams rende disponibile un vero e proprio App Catalog, dove è possibile caricare il packaging dell’App esportato dall’ambiente di sviluppo Power Apps, e di realizzare tramite una procedura assistita il Manifest dell’App, che ne consente la visualizzazione all’interno di un riquadro Teams.
L’App sarà così comodamente fruibile da qualsiasi utente autenticato sul Tenant aziendale, che abbia accesso alla piattaforma di comunicazione, anche da device mobile.