Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: App
canvas app basate su modello
Restituisce informazioni su errori relativi alle modifiche precedenti apportate a un'origine dati.
Panoramica
Errors può verificarsi quando viene modificato un record di un'origine dati. Le cause di questi errori sono molteplici, ad esempio interruzione della rete, autorizzazioni non adeguate e conflitti di modifica.
Le funzioni che modificano i dati nelle origini dati, ad esempio Patch, Collect, Remove, RemoveIf, Update, UpdateIf e SubmitForm segnalano gli errori in due modi:
- Ognuna di queste funzioni restituisce un valore di errore come risultato dell'operazione. Errors può essere rilevato con IsError e sostituito o eliminato con IfError e App.OnError come di consueto. Per altre informazioni, vedi Gestione degli errori.
- Dopo l'operazione, la Errors funzione restituirà anche gli errori per le operazioni precedenti. Può essere utile per visualizzare il messaggio di errore in una schermata del modulo senza dover acquisire l'errore in una variabile di stato.
Puoi evitare alcuni errori prima che si verifichino usando le funzioni Validate e DataSourceInfo. Per altri suggerimenti su come usare le origini dati ed evitare errori, vedere Utilizzare le origini dati.
Descrizione
La Errors funzione restituisce una tabella di errori che contiene le colonne seguenti:
- Documentazione. Il record dell'origine dati in cui si è verificato l'errore. Se si è verificato l'errore durante la creazione di un record, questa colonna è vuota.
- Colonna. La colonna che ha causato l'errore, se l'errore può essere attribuito a una singola colonna. In caso contrario, è vuoto.
- Messaggio. Una descrizione dell'errore. Questa stringa di errore può essere visualizzata per l'utente finale. Questo messaggio può essere generato dall'origine dati e potrebbe essere lungo e contenere nomi di colonna non elaborati che potrebbero non avere alcun significato per l'utente.
- Errore. Un codice di errore che può essere usato nelle formule per consentire di risolvere l'errore:
| ErrorKind | Descrizione |
|---|---|
| ErrorKind.Conflict | È stata apportata allo stesso record un'altra modifica, causando un conflitto di modifiche. Usare la funzione Refresh per ricaricare il record e riprovare la modifica. |
| ErrorKind.ConstraintViolation | Sono stati violati uno o più vincoli. |
| ErrorKind.CreatePermission | È stato effettuato un tentativo di creazione di un record e l'utente corrente non ha l'autorizzazione di creare record. |
| ErrorKind.DeletePermission | È stato effettuato un tentativo di eliminazione di un record e l'utente corrente non ha l'autorizzazione di eliminare record. |
| ErrorKind.EditPermission | È stato effettuato un tentativo di modifica di un record e l'utente corrente non ha l'autorizzazione di modificare record. |
| ErrorKind.GeneratedValue | È stato effettuato un tentativo di modificare una colonna generata automaticamente dall'origine dati. |
| ErrorKind.MissingRequired | Il record non include il valore per una colonna obbligatoria. |
| ErrorKind.None | Nessun errore. |
| ErrorKind.NotFound | È stato effettuato un tentativo di modificare o eliminare un record, ma non è possibile trovare il record. Un altro utente potrebbe avere modificato il record. |
| ErrorKind.ReadOnlyValue | È stato effettuato un tentativo di modificare una colonna di sola lettura. |
| ErrorKind.Sync | È stato identificato un errore dall'origine dati. Controllare la colonna dei messaggi per altre informazioni. |
| ErrorKind.Unknown | Si è verificato un errore di tipo sconosciuto. |
| ErrorKind.Validation | È stato rilevato un problema di convalida generale, che non rientra in uno degli altri tipi. |
Errors può essere restituito per l'intera origine dati o solo per una riga selezionata fornendo l'argomento Record alla funzione.
Toppa o un'altra funzione dati può restituire un vuoto valore se, ad esempio, non è stato possibile creare un record. È possibile passare vuoto a Errorse restituisce le informazioni di errore appropriate in questi casi. L'uso successivo di funzioni dati nella stessa origine dati cancella queste informazioni sull'errore.
Se non sono presenti errori, la tabella restituita Errors sarà vuota e può essere testata con la funzione IsEmpty .
Sintassi
Errors( DataSource [, Record ] )
- DataSource: obbligatorio. L'origine dati per la quale si vuole restituire errori.
- Documentazione – Facoltativo. Un record specifico per il quale si vuole restituire errori. Se non si specifica questo argomento, la funzione restituisce errori per l'intera origine dati.
Esempi
Procedura dettagliata
Per questo esempio si userà l'origine dati IceCream , un'origine dati per cui Power Apps tenterà di rilevare i conflitti:
Annotazioni
Power Apps non tenta di rilevare conflitti per le modifiche apportate alle tabelle di Dataverse.
Tramite l'app, un utente carica il record Chocolate in un modulo di immissione dati e modifica il valore Quantity a 90. Il record da usare si trova nella variabile di contestoEditRecord:
- AggiornaContesto( { EditRecord: LookUp(Gelato, Gusto = "Cioccolato" ) } )
Per effettuare questa modifica nell'origine dati, usa la funzione Patch:
- Patch (IceCream, EditRecord, Gallery.Updates)
Dove Gallery.Updates restituisce { Quantity: 90 }, poiché è stata modificata solo la proprietà Quantity .
Si presupponga che immediatamente prima di chiamare la funzione Patch, un altro utente modifichi il valore Quantity di Chocolate a 80. Poiché si tratta di un'origine dati supportata per il rilevamento dei conflitti, Power Apps rileverà questo problema e non consentirà l'esecuzione della modifica in conflitto. È possibile verificare questa situazione con la formula:
- IsEmpty( Errors( IceCream, EditRecord ) )
Che restituisce false, perché la Errors funzione ha restituito la tabella seguente:
| Record | Colonna | Messaggio | Errore |
|---|---|---|---|
| { Flavor: "Chocolate", Quantity: 100 } | vuoto | "Un altro utente ha modificato il record che si sta tentando di modificare. Ricaricare il record e riprovare." | ErrorKind.Conflict |
È possibile includere un'etichetta nel modulo per visualizzare l'errore all'utente.
- Per visualizzare l'errore, impostare la proprietà Text dell'etichetta con questa formula:
Label.Text = First(Errors( IceCream, EditRecord )). Messaggio
È anche possibile aggiungere un pulsante Reload (ricarica) nel modulo, in modo che l'utente possa risolvere il conflitto direttamente.
- Per visualizzare il pulsante solo quando si verifica il conflitto, impostare la proprietà Visible del pulsante con questa formula:
! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) ) - Per ripristinare la modifica, selezionata dall'utente, impostare la relativa proprietà OnSelect su questa formula:
ReloadButton.OnSelect = ripristinare(Gelato, ModificaRecord)