Informazioni sulle origini dati per le app canvas in Power Apps

La maggior parte delle app di Power Apps usa informazioni esterne archiviate in servizi cloud, definite 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, vuoi 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. Puoi 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 e SQL Server.

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, Modulo di visualizzazione e Modulo di modifica consente di creare con facilità un'app che legge e scrive dati da un'origine dati. Per iniziare, leggi l'articolo Informazioni sui moduli dati.

Quando richiedi a Power Apps 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 Power Apps 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 puoi modificare direttamente la struttura e i dati di una tabella. In alternativa, puoi 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. Power Apps fornisce "connessioni" per la lettura e la scrittura dei dati archiviati. In una connessione puoi accedere a più tabelle di informazioni. Puoi selezionare le tabelle da usare nell'app e ogni app diventerà un'origine dati separata.

Per altre informazioni, vedi 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

Puoi usare le origini dati tabella in modo analogo all'uso di una tabella interna di Power Apps. Esattamente come una tabella interna, ogni origine dati ha record, colonne e proprietà che puoi usare nelle formule. In aggiunta:

  • 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, Power Apps sostituirà gli spazi con "_x0020_". Ad esempio, "Nome colonna" in SharePoint o Excel verrà visualizzato come "Column_x0020_Name" in Power Apps 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. Puoi 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 puoi usare per ottimizzare l'esperienza utente.

Creazione di origini dati

Power Apps 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, devi prima di tutto usare Excel Online su OneDrive per creare una cartella di lavoro. Crea 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. Puoi visualizzare i record di un'origine dati usando una raccolta in una schermata e collegando la proprietà Items all'origine dati: Gallery.Items = DataSource. Puoi collegare i controlli entro la raccolta con la raccolta usando la proprietà Default dei controlli.
  • Anche l'origine dati è una tabella. Puoi quindi usare Filter, Sort, AddColumns e altre funzioni per perfezionare e aumentare l'origine dati prima di usarla nel suo complesso. Puoi anche 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. Nota 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.

Nota 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 Modulo di modifica 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. In genere non devi 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. In genere non devi 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, puoi anche usare la funzione Patch e Errors. Il controllo Modulo di modifica espone una proprietà Updates, in modo che sia possibile leggere i valori del campo nel modulo. Puoi anche 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.

Power Apps 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. Puoi 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 errori

Bene, hai convalidato il record. Ora devi 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, può 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. Usa i messaggi di errore a livello di colonna nei controlli di etichetta vicini alla posizione della colonna nella schermata di modifica. Usa 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 crei report da origini dati di grandi dimensioni, ad esempio milioni di record, vuoi ridurre al minimo il traffico di rete. Supponi 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 vuoi inserire milioni di clienti nell'app e poi scegliere i clienti da usare. Vuoi invece 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, vedi 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.
  • Puoi 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.
  • Puoi 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, vedi 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, vedi Utilizzo delle variabili.