La maggior parte delle app di PowerApps usa informazioni esterne archiviate in servizi cloud definiti origini dati. Un esempio comune è una tabella in un file di Excel archiviato in OneDrive for Business. Le app accedono a queste origini dati usando le connessioni.

Questo articolo illustra i diversi tipi di origini dati e spiega come usare le origini dati tabella.

La creazione di un'app che esegue operazioni di base di lettura e scrittura in un'origine dati è molto semplice. In alcuni casi, tuttavia, si vuole ottenere un maggiore controllo sul flusso dei dati da e verso l'applicazione. Questo articolo illustra il modo in cui le funzioni Patch, DataSourceInfo, Validate ed Errors offrono maggiore controllo.

Tipi di origini dati

Le origini dati possono essere connesse a un servizio cloud oppure possono essere locali per un'app.

Origini dati connesse

Le origini dati più comuni sono le tabelle, che possono essere usate per recuperare e archiviare informazioni. È possibile usare le connessioni alle origini dati per leggere e scrivere dati in cartelle di lavoro di Microsoft Excel, elenchi di SharePoint, tabelle di SQL e molti altri formati, che possono essere archiviati nei servizi cloud come OneDrive for Business, DropBox, SQL Server e così via.

Le origini dati diverse dalle tabelle includono posta elettronica, calendari, Twitter e notifiche, ma in questo articolo non vengono trattati questi altri tipi di origini dati.

Origini dati locali

L'uso dei controlli Raccolta, Visualizza modulo e Modifica modulo consente di creare con facilità un'app che legge e scrive dati da un'origine dati. Per iniziare, leggere l'articolo Informazioni sui moduli dati.

Quando si richiede a PowerApps di creare un'app dai dati, vengono usati questi controlli. L'app usa automaticamente una tabella interna per archiviare e modificare i dati provenienti dall'origine dati.

La raccolta è un tipo speciale di origine dati, che è locale per l'app e non è supportata da alcuna connessione a un servizio nel cloud. Non è quindi possibile condividere le informazioni tra dispositivi per lo stesso utente o tra utenti. Le raccolte possono essere caricate e salvate localmente.

Tipi di tabelle

Le tabelle interne per un'app di PowerApps sono a valore fisso, così come un numero o una stringa costituiscono un valore. Le tabelle interne non vengono archiviate in alcuna posizione, sono semplicemente presenti nella memoria dell'app. Non è possibile modificare direttamente la struttura e i dati di una tabella. In alternativa, è possibile creare una nuova tabella tramite una formula, usando quindi tale formula per creare una copia modificata della tabella originale.

Le tabelle esterne vengono archiviate in un'origine dati per il recupero e la condivisione in un secondo tempo. PowerApps fornisce "connessioni" per la lettura e la scrittura dei dati archiviati. In una connessione è possibile accedere a più tabelle di informazioni. Sarà possibile selezionare le tabelle da usare nell'app e ogni app diventerà un'origine dati separata.

Per altre informazioni, vedere Utilizzo delle tabelle, che fornisce altri dettagli sulle tabelle interne. Queste informazioni sono applicabili anche a tabelle esterne che risiedono in un servizio cloud.

Utilizzo delle tabelle

È possibile usare le origini dati tabella in modo analogo all'uso di una tabella interna di PowerApps. Esattamente come una tabella interna, ogni origine dati ha record, colonne e proprietà che è possibile usare nelle formule. Inoltre:

  • L'origine dati ha gli stessi nomi di colonna e gli stessi tipi di dati della tabella sottostante nella connessione.

    Nota: per origini dati SharePoint o Excel che contengono nomi di colonna con spazi, PowerApps sostituirà gli spazi con "_x0020_". Ad esempio, "Nome colonna" in SharePoint o Excel verrà visualizzato come "Column_x0020_Name" in PowerApps quando viene visualizzato nel layout di dati o usato in una formula.

  • L'origine dati viene caricata automaticamente dal servizio durante il caricamento dell'app. È possibile forzare l'aggiornamento dei dati usando la funzione Refresh.

  • Quando gli utenti eseguono un'app, possono creare, modificare ed eliminare i record ed eseguire il push delle modifiche nella tabella sottostante nel servizio.

    • I record possono essere creati con le funzioni Patch e Collect.
    • I record possono essere modificati con le funzioni Patch, Update e UpdateIf.
    • I record possono essere rimossi con le funzioni Remove e RemoveIf.
    • Gli errori che si verificano durante l'utilizzo di un'origine dati sono disponibili tramite la funzione Errors.
  • Le funzioni DataSourceInfo, Defaults e Validate forniscono informazioni sull'origine dati che è possibile usare per ottimizzare l'esperienza utente.

Creazione di origini dati

PowerApps non può essere usato per creare un'origine dati connessa o per modificarne la struttura. L'origine dati deve esistere già nel servizio. Per creare ad esempio una tabella in una cartella di lavoro di Excel archiviata in OneDrive, è prima di tutto necessario usare Excel Online su OneDrive per creare una cartella di lavoro. Creare quindi una connessione alla tabella dall'app.

Le origini dati di tipo raccolta, tuttavia possono essere create e modificate in un'app, ma sono solo temporanee.

Visualizzare uno o più record

Il diagramma precedente mostra il flusso di informazioni quando un'app legge le informazioni in un'origine dati:

  • Le informazioni vengono archiviate e condivise tramite un servizio di archiviazione, in questo caso un elenco di SharePoint di un sito di Office 365.
  • Una connessione rende disponibili queste informazioni per l'app. La connessione gestisce l'autenticazione dell'utente per l'accesso alle informazioni.
  • Quando l'app viene avviata o viene selezionata la funzione Refresh, le informazioni vengono recuperate dalla connessione e inserite in un'origine dati nell'app per l'uso locale.
  • Le formule vengono usate per leggere le informazioni ed esporle nei controlli che possono essere visualizzati dall'utente. È possibile visualizzare i record di un'origine dati usando una raccolta in una schermata e collegando la proprietà Items all'origine dati: Gallery.Items = DataSource. È possibile collegare i controlli entro la raccolta con la raccolta usando la proprietà Default dei controlli.
  • Anche l'origine dati è una tabella. È quindi possibile usare Filter, Sort, AddColumns e altre funzioni per perfezionare e aumentare l'origine dati prima di usarla nel suo complesso. È anche possibile usare Lookup, First, Last e altre funzioni per utilizzare i singoli record.

Modificare un record

Nella sezione precedente è stato illustrato come leggere un'origine dati. Si noti che le frecce nel diagramma precedente sono unidirezionali. Non viene eseguito di nuovo il push delle modifiche a un'origine dati tramite le stesse formule in cui sono stati recuperati i dati. Vengono invece usate nuove formule. Viene spesso usata una schermata diversa per la modifica di un record rispetto a quella usata per l'esplorazione dei record, in particolare in un dispositivo mobile.

Si noti che per modificare un record esistente di un'origine dati è necessario che il record provenga originariamente dall'origine dati. È possibile che il record sia stato trasmesso tramite una raccolta, una variabile del contesto e tramite diverse formule, ma la rispettiva origine deve essere riconducibile all'origine dati. Ciò è importante, perché le informazioni aggiuntive vengono trasmesse insieme al record che le identifica in modo univoco, per assicurare che venga modificato il record corretto.

Il diagramma precedente mostra il flusso di informazioni per l'aggiornamento di un'origine dati:

  • Un controllo Modifica modulo fornisce un contenitore per le schede di input, che sono costituite da controlli di input utente, ad esempio un controllo di input di testo o un dispositivo di scorrimento. Le proprietà DataSource e Item vengono usate per identificare il record da modificare.
  • Ogni scheda di input ha una proprietà Default, che viene in genere impostata sul campo del record ThisItem del modulo. I controlli nella scheda di input otterranno i rispettivi valori di input da Default. Non è in genere necessario modificare questa impostazione.
  • Ogni scheda di input espone una proprietà Update. Questa proprietà esegue il mapping dell'input dell'utente a un campo specifico del record, in modo da eseguire il writeback nell'origine dati. Non è in genere necessario modificare questa impostazione.
  • Un pulsante o un controllo immagine nella schermata consente all'utente di salvare le modifiche al record. La formula OnSelect del controllo chiama la funzione SubmitForm per eseguire questa operazione. SubmitForm legge tutte le proprietà Update delle schede e usa queste informazioni per eseguire il writeback nell'origine dati.
  • In alcuni casi si verificheranno problemi. È possibile che una connessione di rete sia inattiva o che una verifica della convalida venga eseguita dal servizio, senza che l'app sia informata. Le proprietà Error ed ErrorKind del controllo modulo rendono disponibili queste informazioni, in modo che possano essere visualizzate all'utente.

Per un controllo più granulare sul processo, è anche possibile usare la funzione Patch e Errors. Il controllo Modifica modulo espone una proprietà Updates, in modo che sia possibile leggere i valori del campo nel modulo. È anche possibile usare questa proprietà per chiamare un connettore personalizzato su una connessione, ignorando completamente le funzioni Patch e SubmitForm.

Convalida

Prima di modificare un record, è necessario che l'app verifichi che la modifica sia accettabile, per i due motivi seguenti:

  • Commenti immediati per l'utente. L'approccio ottimale consiste nel risolvere un problema appena si verifica, quando l'utente è ancora interessato. Letteralmente con ogni tocco o sequenza di tasti è possibile visualizzare testo rosso che identifica un problema con l'immissione specifica.
  • Minore traffico di rete e meno latenza utente. Un numero maggiore di problemi rilevati nell'app consente di ridurre il numero di conversazioni in rete per rilevare e risolvere problemi. Ogni conversazione richiede tempi di attesa prima che l'utente possa proseguire con il proprio lavoro.

PowerApps offre due strumenti per la convalida:

  • L'origine dati può fornire informazioni sugli elementi validi e non validi. Ad esempio, i numeri possono avere valori minimi e massimi e possono essere necessarie una o più voci. È possibile accedere a queste informazioni con la funzione DataSourceInfo.
  • La funzione Validate usa queste informazioni per verificare il valore di una singola colonna o di un intero record.

Gestione degli errori

Il record è stato convalidato. È ora necessario aggiornare il record con Patch.

È tuttavia possibile che si verifichi un problema. Alcuni dei possibili errori dipendono ad esempio dal fatto che la rete è inattiva, la convalida nel servizio non è riuscita o l'utente non ha le autorizzazioni corrette. L'app deve rispondere in modo appropriato alle situazioni di errore, fornendo commenti all'utente e soluzioni al problema.

Quando si verificano errori in un'origine dati, l'app registra automaticamente le informazioni sull'errore e le rende disponibili tramite la funzione Errors. Gli errori sono associati ai record correlati ai problemi. Se il problema può essere risolto dall'utente, ad esempio in caso di errore di convalida, è possibile inviare di nuovo il record per eliminare gli errori.

Se si verifica un errore durante la creazione di un record con Patch o Collect, non sono presenti record a cui associare eventuali errori. In questo caso, il valore blank verrà restituito da Patch e può essere usato come argomento del record per Errors. Gli errori di creazione vengono cancellati con l'operazione successiva.

La funzione Errors restituisce una tabella di informazioni sull'errore. Queste informazioni possono includere le informazioni sulla colonna, nel caso in cui l'errore possa essere attribuito a una colonna specifica. Usare i messaggi di errore a livello di colonna nei controlli di etichetta vicini alla posizione della colonna nella schermata di modifica. Usare i messaggi di errore a livello di record in cui il valore Column nella tabella di errore è blank, in una posizione vicina al pulsante Save per l'intero record.

Utilizzo di origini dati di grandi dimensioni

Quando si creano report da origini dati di grandi dimensioni, ad esempio milioni di record, si vuole ridurre al minimo il traffico di rete. Si supponga di volere creare un report relativo a tutti i clienti con valore StatusCode di tipo "Platinum" a New York City e che la tabella Customers contenga milioni di record.

Non è consigliabile inserire milioni di clienti nell'app e scegliere i clienti da usare. È invece preferibile che la selezione venga eseguita nel servizio cloud in cui è archiviata la tabella e che vengano inviati in rete solo i record scelti.

Molte, ma non tutte, le funzioni che possono essere usate per scegliere i record possono essere delegate, ovvero vengono eseguite all'interno del servizio cloud. Per informazioni su questa procedura, vedere Delegation (Delega).

Raccolte

Le raccolte sono un tipo speciale di origine dati. Sono locali per l'app e non sono supportate da alcuna connessione a un servizio nel cloud. Non è quindi possibile condividere le informazioni tra dispositivi per lo stesso utente o tra utenti. Funzionano in modo analogo alle altre origini dati, con alcune eccezioni:

  • Le raccolte possono essere create in modo dinamico con la funzione Collect. Non devono essere stabilite in anticipo, come le origini dati basate su connessione.
  • Le colonne di una raccolta possono essere modificate in qualsiasi momento tramite la funzione Collect.
  • Le raccolte consentono i record duplicati. In una raccolta possono esistere più copie dello stesso record. Le funzioni come Remove verranno applicate alla prima corrispondenza trovata, a meno che non venga fornito l'argomento All.
  • È possibile usare le funzioni SaveData e LoadData per salvare e ricaricare una copia della raccolta. Le informazioni vengono archiviate in una posizione privata a cui gli altri utenti, le altre app o gli altri dispositivi non possono accedere.
  • È possibile usare i controlli Esporta e Importa per salvare e ricaricare una copia della raccolta in un file con cui l'utente può interagire.

Per altre informazioni sull'utilizzo di una raccolta come origine dati, vedere Create and update a collection (Creare e aggiornare una raccolta).

Le raccolte vengono in genere usate per includere lo stato globale per l'app. Per informazioni sulle opzioni disponibili per la gestione dello stato, vedere Working with variables (Utilizzo delle variabili).