Informazioni sulle origini dati per le app canvas

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. Le app accedono a queste origini dati tramite le connessioni.

Questo articolo illustra i diversi tipi di origini dati e come usare le origini dati delle tabelle, tra cui come gestire la delega, la gestione degli errori e i problemi comuni.

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 utilizzare connessioni a origini dati per leggere e scrivere dati in cartelle di lavoro di Microsoft Excel, elenchi creati con Microsoft Lists, raccolte di SharePoint, tabelle di SQL e molti altri formati, che possono essere archiviati in servizi cloud come OneDrive, 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

Con l'uso dei controlli Raccolta, Modulo visualizzazione e Modulo modifica puoi creare con facilità un'app che legge e scrive dati da un'origine dati. Per iniziare, vedi Informazioni sui moduli dati.

Quando richiedi a Power Apps di creare un'app dai dati, vengono usati questi controlli. Dietro le quinte, l'app utilizza una tabella interna per archiviare e manipolare i dati provenienti dall'origine dati.

Un tipo speciale di origine dati è la Raccolta, che è locale per l'app e non supportata da una connessione a un servizio nel cloud. Pertanto, le informazioni non possono essere condivise tra dispositivi per lo stesso utente o tra utenti. Le raccolte possono essere caricate e salvate localmente.

Tipi di tabelle

Le tabelle interne a un'app sono a valore fisso, così come un numero o una stringa costituiscono un valore. Le tabelle interne non vengono archiviate in alcuna posizione, ma sono 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 ognuna diventerà un'origine dati separata.

Per altre informazioni, vedi Utilizzo delle tabelle per le tabelle interne, ma anche tabelle esterne che risiedono in un servizio cloud.

Utilizzo delle tabelle

Puoi usare le origini dati di tabella così come usi 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.

    Note

    Per origini dati SharePoint o Excel che contengono nomi di colonna con spazi, Power Apps sostituisce gli spazi con "_x0020_". Ad esempio, "Nome colonna" in SharePoint o Excel appare come "Column_x0020_Name" in Power Apps quando viene visualizzato nel layout di dati o usato in una formula.

  • La fonte dei dati viene caricata automaticamente dal servizio quando l'applicazione viene avviata. Puoi forzare l'aggiornamento dei dati usando la funzione Refresh.

  • Quando gli utenti eseguono un'app, possono creare, modificare ed eliminare i record e trasferire le modifiche nuovamente alla 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 a esso dall'app.

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

Visualizzare uno o più record

Flusso di informazioni quando un'app legge le informazioni in un'origine dati.

Questo diagramma 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 Microsoft Lists o SharePoint Online).
  • 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 galleria in una schermata e collegando la proprietà Items all'origine dati: Galleria.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

Le frecce nel diagramma precedente sono unidirezionali. Le modifiche a un'origine dati non vengono reinviate attraverso le stesse formule in cui i dati sono stati recuperati. 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.

Per modificare un record esistente di un'origine dati è necessario che il record provenga originariamente dall'origine dati. È possibile che il record venga visualizzato in una raccolta, una variabile del contesto e tramite diverse formule, ma la rispettiva origine deve essere riconducibile all'origine dati. Le informazioni aggiuntive vengono trasmesse insieme al record che le identifica in modo univoco, per assicurare che venga modificato il record corretto.

Flusso di informazioni per aggiornare un'origine dati. Questo diagramma mostra il flusso di informazioni per aggiornare un'origine dati:

  • Un controllo Modulo modifica fornisce un contenitore per le schede di input, che sono costituite da controlli di input utente, ad esempio un controllo 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 impostata sul campo del record ThisItem del modulo. I controlli nella scheda di input ottengono i rispettivi valori di input da Default. In genere, non devi modificare questa impostazione predefinita.
  • 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 proprietà.
  • 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 ed esegue il writeback nell'origine dati.
  • In alcuni casi si verificano problemi. Una connessione di rete potrebbe essere inattiva o una verifica della convalida viene eseguita dal servizio, di cui l'app non era a conoscenza. Le proprietà Error ed ErrorKind del controllo form 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 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. I motivi della verifica sono due:

  • Commenti immediati per l'utente. Il momento migliore per risolvere un problema è proprio quando si verifica, quando è ancora fresco nella mente dell'utente. Con ogni tocco o pressione di tasti, può apparire testo rosso che segnala un problema con l'inserimento.
  • Minore traffico di rete e meno latenza utente. Un numero maggiore di problemi rilevati nell'app significa 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 degli errori

Ora che il record è stato convalidato, aggiornalo con Patch.

Tuttavia è comunque possibile che si verifichi un problema. Alcuni dei possibili errori dipendono ad esempio dal fatto che la rete è inattiva, la convalida del servizio non è riuscita o l'utente non ha le autorizzazioni corrette. L'app deve rispondere in modo appropriato alle situazioni di errore, fornendo feedback 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 che hanno avuto i problemi. Se il problema può essere risolto dall'utente, ad esempio nel 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 ci sono record a cui associare eventuali errori. In questo caso, il valore blank viene 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, è consigliabile 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. La tabella Clienti contiene milioni di record.

Non vuoi portare milioni di clienti nell'app e poi scegliere quelli che desideri. La selezione dovrebbe essere eseguita nel servizio cloud in cui è archiviata la tabella e in cui vengono 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 eseguite all'interno del servizio cloud. Altre informazioni in Delega.

Importante

Per impostazione predefinita, Power Apps recupera solo i primi record 500 da un'origine dati. È possibile aumentare questo limite a un massimo di 2.000 record nelle impostazioni dell'app. Se l'origine dati contiene più record e la formula non è completamente delegabile, viene visualizzato un triangolo giallo di avvertimento sulla delega in Power Apps Studio. Quando viene visualizzato questo avviso, l'app potrebbe non restituire tutti i record corrispondenti in fase di esecuzione. Per evitare la perdita di dati in set di dati di grandi dimensioni, usare funzioni delegabili come Filter e Sort con origini dati supportate o prendere in considerazione l'uso di Microsoft Dataverse, che offre un supporto più ampio per la delega.

Identificare e risolvere gli avvisi di delega

Un avviso di delega appare spesso nella barra delle formule come un triangolo giallo quando Power Apps non riesce a delegare un'operazione di formula all'origine dati, ma non tutti i casi non delegabili mostrano questo avviso. Per verificare se una formula è delegabile:

  1. Puoi selezionare il controllo o la formula che gestisce la tua origine dati.
  2. Cercare un'icona a forma di triangolo giallo in Power Apps Studio.
  3. Passare il puntatore del mouse sul triangolo per leggere il messaggio di avviso di delega.

Per risolvere i problemi di delega:

  • Sostituire funzioni non delegabili (ad esempio Search per le colonne di testo in SharePoint) con alternative delegabili, ove possibile.
  • Passare a Microsoft Dataverse come sorgente dati per il supporto della delega più ampio.
  • Utilizzare le viste lato server (per SharePoint) o le stored procedure (per SQL) per filtrare preventivamente i dati.
  • Per risolvere i problemi di delega che non sono contrassegnati, usare Live Monitor in Strumenti avanzati per esaminare le query Power Apps inviati e i dati restituiti da ogni origine dati. Per ulteriori informazioni, vedere Debugging di app canvas con il monitoraggio in tempo reale.

Collections

Le raccolte sono un tipo specifico di origine dati. Sono locali per l'app e non supportati da una connessione a un servizio nel cloud. Pertanto, le informazioni non possono essere condivise tra dispositivi per lo stesso utente o tra utenti.

Le raccolte funzionano in modo analogo alle altre origini dati, con alcune eccezioni:

  • Le raccolte possono essere create in modo dinamico con la funzione Collect. Non è necessario stabilirle in anticipo, come nel caso delle origini dati basate sulla connessione.
  • Le colonne di una raccolta possono essere modificate in qualsiasi momento tramite la funzione Collect.
  • Le raccolte consentono dei record duplicati. In una raccolta possono esistere più copie dello stesso record. Le funzioni come Remove vengono 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 comunemente utilizzate per mantenere lo stato globale dell'app. Per informazioni sulle opzioni disponibili per la gestione dello stato, vedi Utilizzo delle variabili.

Risolvere i problemi comuni relativi all'origine dati

Per impostazione predefinita, Power Apps recupera solo i primi 500 record da un'origine dati. Se sembra che manchino record nella tua galleria, probabilmente hai un problema di delega. Verificare la presenza di un avviso di triangolo giallo nella formula Items della galleria e assicurarsi che la formula di filtro che stai usando sia delegabile per l'origine dati. Per la procedura di risoluzione, vedere Uso di origini dati di grandi dimensioni .

I nomi delle colonne mostrano x0020 nelle formule

Se il SharePoint list o il tabella di Excel ha nomi di colonna con spazi (ad esempio, My Column), Power Apps sostituisce gli spazi con _x0020_ nelle formule (ad esempio, MyTable.My_x0020_Column). Si tratta di un comportamento previsto. Rinominare la colonna nei dati di origine per rimuovere gli spazi o continuare a usare il nome codificato nelle formule.

Le modifiche della fonte di dati non vengono visualizzate all'interno dell'app.

Se i dati sottostanti sono stati modificati esternamente (ad esempio, un record è stato aggiunto in SharePoint), l'app non rileva automaticamente le modifiche durante l'esecuzione. Usare la funzione Refresh per forzare l'app a ricaricare i dati correnti. Ad esempio, aggiungere un pulsante con OnSelect = Refresh(MyDataSource).

Quando è consigliabile usare Patch anziché SubmitForm?

Usare SubmitForm quando si dispone di un controllo Modifica modulo , che gestisce automaticamente la convalida, il mapping dei campi e la visualizzazione degli errori. Usare Patch quando è necessario:

  • Aggiornare un record senza un controllo del modulo.
  • Aggiornare solo campi specifici senza influire sugli altri.
  • Scrivere su più origini dati in un'unica operazione.
  • Creare un'esperienza di salvataggio completamente personalizzata.