In questo tutorial ti spiegherò cosa devi fare per collegare i dati ad una applicazione mobile sviluppata con AppSheet.
Se hai già letto il tutorial su come creare una APP mobile da un file Excel con AppSheet, sai già che per costruire una applicazione devi lavorare con 3 tipologie di oggetti diversi:
- Le Tabelle che sono usate per visualizzati e manipolare i dati tramite la tua APP mobile.
- Le Viste, ovvero tutte le maschere con le quali l’utente dovrà interagire tramite l’applicazione.
- I Bottoni e le Actions che servono per implementare gli automatismi e i workflow.

Oltre agli aspetti citati sopra, ci sono altre cose da tenere in considerazione quando si sviluppa una applicazione con AppSheet come la definizione dei ruoli utente e la modalità di autenticazione.
Tuttavia, configurare le sorgenti dati, progettare la user interface e costruire gli automatismi sono sicuramente i primi aspetti su cui è bene concentrarsi.
In questo articolo focalizzeremo la nostra attenzione sul primo di questi aspetti, ovvero la progettazione delle Tabelle, partendo dall’inizio, ovvero le sorgenti dati della nostra applicazione.
IN QUESTO ARTICOLO
Tipologie di origini dati

Uno degli aspetti più interessanti di AppSheet è la possibilità di poter collegare all’interno della stessa applicazione dati provenienti da sorgenti anche molto diverse tra di loro, senza dover necessariamente costruire integrazioni di alcun tipo.
Con AppSheet, tutte le APP possono essere utilizzate per visualizzare, modificare ed analizzare i dati provenienti da applicazioni già esistenti grazie ad una serie di connettori gratuiti e disponibili out-of-the-box.
Ad esempio, potresti implementare per la tua azienda una applicazione per gestire lo stock di magazzino che legge e modifica i dati in tempo reale direttamente sul ERP aziendale on-premise e, allo stesso tempo, mostrare ai dipendenti i propri turni di lavoro che sono gestiti nel sistema HR in cloud.
Se sei alle prime armi e non hai molta esperienza, il modo più efficace per iniziare a sviluppare una nuova applicazione con AppSheet è partendo da un Foglio Google, ossia un foglio di calcolo Excel ospitato nel Cloud.
Questo vuol dire che la tua applicazione gestirà per sempre i dati su un file Excel in Cloud?
Ovviamente no!
Ti spiegherò tra poco come puoi migrare la tua applicazione AppSheet ad un database SQL (SQL Server oppure Oracle) sia on-premise che in Cloud in pochissimo tempo e senza disservizi.
Come aggiungere nuove origini dati
Per collegare una nuova origine dati alla tua applicazione AppSheet:
- Accedi al workspace della tua applicazione
- Clicca su Data > Table > New Table

- AppSheet ti farà vedere tutte le tipologie di origini dati usate fino a questo momento, ma puoi aggiungerne di nuovi tipi.
- Clicca sul bottone [+] per aggiungere una sorgente dati di tipo diverso

- Questo è l’elenco delle tipologie di Origini Dati che AppSheet mette a tua disposizione.

Come vuoi vedere sono disponibili i connettori verso svariate applicazioni cloud come Salesforce, Smartsheet, Office365, Dropbox, ecc.
La cosa importante da tenere a mente è che collegando una di queste sorgenti dati alla tua applicazione AppSheet, quando modificherai i dati attraverso la tua APP, le modifiche vengono automaticamente sincronizzate verso il sistema sorgente.
Come collegare un foglio dati Google Sheet
A meno che tu già non abbia già requisiti particolari, potresti creare la tua prima applicazione mobile collegandola direttamente ad un foglio dati salvato in Google Drive.
Per collegare la tua applicazione ad un folgio un Google Sheet:
- Seleziona l’origine dati Sheets on Google Drive

- Scegli il foglio dati da collegare e premi Select

- AppSheet andrà a creare una tabella leggendo i dati dal foglio dati.
- Se ci sono più fogli, puoi aggiungere nuove tabelle usando la stessa procedura.

È importante sottolineare l’importanza che i tuoi dati siano salvati in un posto sicuro ed affidabile. Il rischio è che la tua applicazione non funzioni più.
In questo caso specifico, avendo collegato l’applicazione AppSheet ad un foglio dati salvato in Google Drive, se decidessi di spostare il foglio dati sotto un percorso diverso o, ancor peggio, lo cancellassi, rischierei di invalidare la mia APP oltre che perdere tutti i dati.
Per questo motivo, presta attenzione a dove salvi il file in Drive e non spostarlo. L’alternativa è quella di collegare la tua applicazione ad un’altra sorgente dati, ad esempio un database SQL.
Come cambiare l’origine dati di una applicazione
Supponiamo che ad un certo punto tu decida di migrare i dati della tua applicazione su un sistema più robusto come un database SQL.
AppSheet consente di cambiare l’origine dati di una tabella in modo abbastanza semplice e sicuro, purché siano rispettati alcuni vincoli.
Vediamo come fare.
Prima di tutto, devi migrare i tuoi dati sul database server da collegare.
Questo significa che se vuoi migrare una APP collegata ad uno o più fogli dati Google, devi creare una tabella SQL nel database di destinazione esattamente identica.
La cosa importante affinché la procedura di migrazione funzioni correttamente, è che i nomi delle colonne della nuova tabella siano esattamente gli stessi del foglio dati.
Inoltre, anche i tipi dato dovrebbero essere coerenti.
Fatta questa attività propedeutica, puoi cambiare l’origine dati in questo modo:
- Vai in Data > Table e clicca sulla tabella

- Vai alla sezione Storage e clicca sul menù a discesa Source Path

- Seleziona l’opzione Browse for more data

- Scegli la nuova Origine Dati usando la procedura già vista

- Ad esempio, in questo tutorial selezionerò come nuova sorgente dati un diverso foglio dati, creato come copia di quello originale.

Come preparare i dati della tua applicazione
Il cuore di ogni applicazione web è sicuramente il modello dati, ossia le tabelle dove vengono salvate le informazioni che la tua APP dovrà gestire.
Quindi, non devi stupirti se ti dico che il primo aspetto di cui ti devi preoccupare quando decidi di creare una nuova applicazione mobile sono proprio i dati e come verranno organizzati.
In particolare, se decidi di creare la tua APP da un foglio dati (es: Google Sheet) ci sono alcune linee guida che dovresti tenere a mente per essere sicuro di progettare i tuoi dati in modo robusto e sicuro.
Ovviamente, queste considerazioni valgono a maggior ragione anche quando la tua applicazione si collega ad un database SQL, tuttavia in questo caso la definizione delle tabelle in un database è già soggetta automaticamente a determinati vincoli che non esistono in un foglio Excel.
Vediamo quali sono le linee guida su come creare le tabelle in Google Sheet o Excel.
Crea un foglio dati per ogni tabella
Per ogni oggetto che va gestito nella tua applicazione dovrai creare un foglio dati dedicato.
Ad esempio, supponiamo tu voglia creare una applicazione che ti consenta di inserire ordini di vendita (testata e righe).
Hai bisogno di almeno 3 tabelle:
- Una tabella per gestire l’anagrafica articoli
- Una tabella per la testata dell’ordine
- Una tabella per le righe dell’ordine
Nel foglio dati dovrai creare almeno 3 fogli dati:
- Items per gestire l’anagrafica articoli ed il prezzo di listino
- Order_Header per inserire la testata dell’ordine
- Order_Lines per inserire le righe dell’ordine

Imposta una chiave primaria
Ciascuna tabella che andrai a creare deve avere una colonna chiamata Chiave Primaria (o Primary Key).
In una tabella una chiave primaria è un valore che identifica in modo univoco la specifica riga all’interno della tabella.
Nei successivi paragrafi ti spiegherò come inserire automaticamente , per il momento limitati a prevedere per ogni tabella una colonna ID dedicata
- Tabella Items: Item_ID

- Tabella Order_Headers: Order_ID

- Tabella Order_Lines: Order_Line_ID

Ogni colonna deve avere un nome unico
All’interno di ogni tabella ogni colonna deve avere una intestazione univoca.
Questo significa non dovresti mai avere due colonne con lo stesso nome come nel seguente esempio dove ho creato 2 colonne con la stessa intestazione.

Ogni tabella deve avere una sola intestazione
Le tabelle che crei nei fogli dati che collegherai alla tua applicazione devono aveer una soloa intestazione.
Una tabella fatta come nel seguente esempio è sbagliata.

Non usare tabelle Pivot
Una tabella pivot è un efficace strumento di calcolo, disponibile sia su MS Excel che in Google Sheet, che ti consente di fare analisi dei dati.
AppSheet non supporta l’integrazione con tabella Pivot quindi, se hai bisogno di mostrare agli utenti i dati aggregati in funzione di qualche valore specifico, devi utilizzare le funzioni che mette a disposizione la piattaforma.
Le vedremo nei successivi tutoriali.
Come collegare i dati di una tabella
Se creato un foglio dati Google seguendo le linee guida che ti ho dato, puoi finalmente collegarlo alla tua applicazione AppSheet.
In alternativa, puoi installare una delle tante applicazioni di demo che AppSheet mette disposizione per vedere come sono state implementate le varie funzionalità.
La prima cosa da fare è creare la tua applicazione.
- Collegati al Workspace AppSheet
- Clicca Make a New App
- Seleziona l’opzione Start with your own data

- Seleziona il foglio dati che avrai precedentemente caricato i Google Drive e premi Select

Dopo aver creato la tua applicazione, puoi aggiungere nuove tabelle.
- Accedi al workspace della tua applicazione
- Clicca su Data
Il sistema ti chiede se vuoi creare subito le nuove tabelle

- In alternativa puoi sempre aggiungere una nuova tabella manualmente (cliccando sul bottone New Table)
Come configurare i permessi su una tabella
Dopo aver aggiunto una tabella alla tua applicazione, puoi decidere che tipo di operazioni possono essere eseguite sui dati.
Ad esempio potresti abilitare le operazioni di modifica (Update) ma non di aggiunta (Add) o cancellazione (Delete) di un record.
- Accedi al workspace dell’applicazione
- Clicca sulla tabella
- Seleziona i permessi che vuoi attivare

- Puoi anche decidere di rendere la tabella Read-Only

Come definire i tipi dati
Le applicazioni AppSheet vengono chiamate in gergo “data-driven”.
Questo significa che caratteristiche e le funzionalità che una applicazione mette a disposizione dipendono dai tipi di dati di ciascuna colonna di una tabella.
Facciamo un esempio: se la tua applicazione deve poter caricare delle immagini, magari scattate dalla telecamera del tuo smartphone, sarà necessario definire una tabella con una colonna che abbia un tipo dati Image.
Invece, se va inserito un valore numerico di tipo prezzo, dovrai usar il tipo dati Price

AppSheet mette disposizione un elenco molto ricco di tipi dato, ciascuno dei quali abilita automaticamente specifiche funzionalità nella tua applicazione.
Quando colleghi una sorgente dati alla tua applicazione, AppSheet è in grado di riconoscere automaticamente questi tipi dato in funzione delle informazioni che legge dai fogli dati.
Tuttavia, sta a te finalizzare e personalizzare, se necessario, il tipo dato di ciascuna colonna in funzione del utilizzo finale.
Nei paragrafi successivi faremo qualche approfondimento sui tipi dato più comuni.
Date & Time
In AppSheet hai a disposizione diversi tipi di campi per gestire le informazioni legate alla data e ora.
Quello che devi fare è scegliere il tipo dato più adatto alla tua applicazione
- Il tipo dato Date viene usato se vuoi creare un campo in cui inserire un valore data

- Datetime va invece usato se vuoi salvare anche l’informazione dell’ora.

- Nelle proprietà di un campo Datetime, puoi indicare se gestire o meno i secondi

- Il tipo dato Time viene usato se devi salvare solo l’ora
- Il tipo dato Duration, infine, serve per gestire la differenza tra due date espresse in ore, minuti e secondi

Numeri
I numeri non sono tutti uguali in AppSheet.
- Number è il tipo dato più classico: un campo numerico che può gestire anche cifre decimali

- Quando vuoi gestire un campo che rappresenta un importo, puoi usare il tipo dato Price.
- Puoi impostare nelle sue proprietà il simbolo della valuta da visualizzare.

- Percent è il tipo dato per i numeri che rappresentano percentuali numeriche
- Phone, infine, è da usare per mostrare un numero di telefono.
Cosa ti avevo detto? Ci sono tanti tipi di numeri!
Liste Valori e Campi Validati
In molte applicazioni spesso è necessario definire dei campi validati, ossia campi che possono assumere un numero finito di valori.
L’esempio forse più noto è il classico campo con menù a tendina. L’utente può scegliere uno solo tra i valori proposti.
Un altro caso è quello di un campo che ammette solo valori che dipendono dai record presenti in un’altra tabella.
Il caso è quello di un ordine di vendita, in cui gli articoli che puoi ordinare possono essere solo quelli definiti nel catalogo prodotti.
Vediamo come implementare queste casistiche.
Tipo campo Enum
Un tipo campo di questo tipo consente di selezionare un valore da un set predefinito.
- Accedi alle proprietà dal campo e seleziona il tipo Enum

- Clicca su Add per aggiungere nuovi valori alla lista valori

Tipo Campo EnumList
Si definisce esattamente come il campo Enum e permette di poter selezionare più valori da un elenco predefinito

Tipo campo Ref
Permette di collegare due tabelle, ovvero di far si che il valore salvato nel campo corrente, sia la chiave primaria di un record della tabella collegata.
- Per collegare due tabelle, seleziona il campo da validare e imposta il suo tipo a Ref
- Nella sezione Source table specifica la tabella collegata

Immagini e Media
Con AppSheet puoi creare dei campi per gestire immagini, video e firme digitali che possono essere acquisiti direttamente dal device.
Creiamo un campo per caricare una foto
- Nel foglio dati, andremo a creare una colonna in cui l’APP andrà a scrivere il percorso assoluto al file da caricare

- Selezionare il campo ed impostare il tipo a Image

- Nella tua applicazione verrà visualizzato un campo dedicato per caricare la foto.

- Puoi caricare la foto cercandola tra quelle salvate nel tuo dispositivo oppure acquisendola direttamente dalla fotocamera.
- Quando salvi, la foto viene salvata in Google Drive sotto il percorso indicato

grazie, molto utile come post.
aggiungo che facendo attenzione a non selezionare alcune features si può fare un uso limitato del servizio ma gratuito. a tal proposito, sai se esistono alternative valide come questa ma open source ?
Ottimo post.
Volevo chiedere se esiste la possibilità di gestire Campi EnumList la cui scelta degli elementi deriva da un’altra tabella (ref)?