De functie Errors in PowerAppsErrors function in PowerApps

Biedt foutinformatie voor eerdere wijzigingen in een gegevensbron.Provides error information for previous changes to a data source.

OverzichtOverview

Fouten kunnen ontstaan wanneer een record van een gegevensbron is gewijzigd.Errors can happen when a record of a data source is changed. Er zijn veel oorzaken mogelijk, zoals netwerkstoringen, ontoereikende machtigingen en bewerkingsconflicten.Many causes are possible, including network outages, inadequate permissions, and edit conflicts.

De functie Patch en andere gegevensfuncties retourneren niet rechtstreeks fouten.The Patch function and other data functions don't directly return errors. In plaats daarvan retourneren ze het resultaat van hun bewerking.Instead they return the result of their operation. Nadat een gegevensfunctie is uitgevoerd, kunt u de functie Errors gebruiken om de details van fouten op te halen.After a data function executes, you can use the Errors function to obtain the details of any errors. U kunt controleren of er sprake is van fouten met de functie [IsEmpty] in de formule IsEmpty ( Errors (...) ).You can check for the existence of errors with the [IsEmpty] function in the formula IsEmpty( Errors ( ... ) ).

U kunt bepaalde fouten voorkomen voordat ze plaatsvinden met behulp van de functies Validate en DataSourceInfo.You can avoid some errors before they happen by using the Validate and DataSourceInfo functions. Zie Werken met gegevensbronnen voor meer suggesties voor het werken met en voorkomen van fouten.See working with data sources for more suggestions on how to work with and avoid errors.

BeschrijvingDescription

De functie Errors retourneert een tabel met fouten die de volgende kolommen bevat:The Errors function returns a table of errors that contains the following columns:

  • Record.Record. De record in de gegevensbron waarin de fout optrad.The record in the data source that had the error. Als de fout is opgetreden tijdens het maken van een record, is deze kolom leeg.If the error occurred during the creation of a record, this column will be blank.
  • Column.Column. De kolom die de fout veroorzaakt heeft, indien de fout kan worden toegeschreven aan één kolom.The column that caused the error, if the error can be attributed to a single column. Zo niet, dan is deze kolom leeg.If not, this will be blank.
  • Message.Message. Een beschrijving van de fout.A description of the error. Deze fouttekenreeks kan worden weergegeven voor de eindgebruiker.This error string can be displayed for the end user. Let erop dat dit bericht mogelijk is gegenereerd door de gegevensbron en lang kan zijn en onbewerkte kolomnamen kan bevatten die mogelijk onduidelijk zijn voor de gebruiker.Be aware that this message may be generated by the data source and could be long and contain raw column names that may not have any meaning to the user.
  • Error.Error. Een foutcode die kan worden gebruikt in formules om te helpen bij het oplossen van de fout:An error code that can be used in formulas to help resolve the error:
ErrorKindErrorKind BeschrijvingDescription
ErrorKind.ConflictErrorKind.Conflict Er is nog een wijziging gemaakt in dezelfde record, wat leidt tot een conflict.Another change was made to the same record, resulting in a change conflict. Gebruik de functie Refresh om de record opnieuw te laden en probeer de wijziging vervolgens opnieuw.Use the Refresh function to reload the record and try the change again.
ErrorKind.ConstraintViolationErrorKind.ConstraintViolation Er zijn een of meer beperkingen overtreden.One or more constraints have been violated.
ErrorKind.CreatePermissionErrorKind.CreatePermission Er is een poging gedaan om een record te maken en de huidige gebruiker is niet gemachtigd om records te maken.An attempt was made to create a record, and the current user doesn't have permission to create records.
ErrorKind.DeletePermissionErrorKind.DeletePermission Er is een poging gedaan om een record te verwijderen en de huidige gebruiker is niet gemachtigd om records te verwijderen.An attempt was made to delete a record, and the current user doesn't have permission to delete records.
ErrorKind.EditPermissionErrorKind.EditPermission Er is een poging gedaan om een record te bewerken en de huidige gebruiker is niet gemachtigd om records te bewerken.An attempt was made to edit a record, and the current user doesn't have permission to edit records.
ErrorKind.GeneratedValueErrorKind.GeneratedValue Er is een poging gedaan om een kolom te wijzigen die de gegevensbron automatisch genereert.An attempt was made to change a column that the data source generates automatically.
ErrorKind.MissingRequiredErrorKind.MissingRequired De waarde voor een vereiste kolom ontbreekt in de record.The value for a required column is missing from the record.
ErrorKind.NoneErrorKind.None Er is geen fout.There is no error.
ErrorKind.NotFoundErrorKind.NotFound Er is een poging gedaan om een record te bewerken of te verwijderen, maar de record kan niet worden gevonden.An attempt was made to edit or delete a record, but the record couldn't be found. De record is mogelijk door een andere gebruiker gewijzigd.Another user may have changed the record.
ErrorKind.ReadOnlyValueErrorKind.ReadOnlyValue Er is een poging gedaan om een kolom te wijzigen die alleen-lezen is.An attempt was made to change a column that's read only.
ErrorKind.SyncErrorKind.Sync Er is een fout gerapporteerd door de gegevensbron.An error was reported by the data source. Controleer de kolom Bericht voor meer informatie.Check the Message column for more information.
ErrorKind.UnknownErrorKind.Unknown Er is een onbekend type fout opgetreden.There was an error, but of an unknown kind.
ErrorKind.ValidationErrorKind.Validation Er is een algemeen validatieprobleem gedetecteerd dat niet binnen een van de andere categorieën past.There was a general validation issue detected, that did not fit one of the other kinds.

Fouten kunnen worden geretourneerd voor de gehele gegevensbron of alleen voor een geselecteerde rij door het argument Record te verstrekken aan de functie.Errors can be returned for the entire data source, or for only a selected row by providing the Record argument to the function.

Patch of een andere gegevensfunctie retourneert mogelijk een lege waarde als bijvoorbeeld een record niet kan worden gemaakt.Patch or another data function may return a blank value if, for example, a record couldn't be created. U kunt leeg doorgeven naar Fouten waarna het in dergelijke gevallen de juiste foutinformatie retourneert.You can pass blank to Errors, and it will return appropriate error information in these cases. Als u opnieuw een gegevensfunctie voor dezelfde gegevensbron gebruikt, worden deze foutgegevens gewist.Subsequent use of data functions on the same data source will clear this error information.

Als er geen fouten zijn, is de tabel die door Fouten wordt geretourneerd leeg en kan deze worden getest met de functie IsEmpty.If there are no errors, the table that Errors returns will be empty and can be tested with the IsEmpty function.

SyntaxisSyntax

Fouten( DataSource [, Record ] )Errors( DataSource [, Record ] )

  • DataSource - vereist.DataSource – Required. De gegevensbron waarvoor u fouten wilt ophalen.The data source for which you want to return errors.
  • Record - optioneel.Record – Optional. Een specifieke record waarvoor u fouten wilt ophalen.A specific record for which you want to return errors. Als u dit argument niet opgeeft, retourneert de functie fouten voor de gehele gegevensbron.If you don't specify this argument, the function returns errors for the entire data source.

VoorbeeldenExamples

Stap voor stapStep by Step

In dit voorbeeld werken we met de gegevensbron IJs:For this example, we'll be working with the IceCream data source:

Via de app laadt een gebruiker de record Chocolade in een formulier voor gegevensinvoer en wijzigt vervolgens de waarde van Hoeveelheid in 90.Through the app, a user loads the Chocolate record into a data-entry form and then changes the value of Quantity to 90. De record waarmee moet worden gewerkt is geplaatst in de contextvariabele RecordBewerken:The record to be worked with is placed in the context variable EditRecord:

  • UpdateContext( { RecordBewerken: Eerste( Filteren( IJs, Smaak = "Chocolade" ) ) } )UpdateContext( { EditRecord: First( Filter( IceCream, Flavor = "Chocolate" ) ) } )

Gebruik de functie Patch om deze wijziging door te voeren in de gegevensbron:To make this change in the data source, the Patch function is used:

  • Patch( IJs, RecordBewerken, Gallery.Updates )Patch( IceCream, EditRecord, Gallery.Updates )

waarbij Gallery.Updates resulteert in { Hoeveelheid: 90 }, aangezien alleen de eigenschap Quantity is gewijzigd.where Gallery.Updates evaluates to { Quantity: 90 }, since only the Quantity property has been modified.

Helaas heeft iemand anders net voordat de functie Patch werd aangeroepen de Hoeveelheid voor Chocolade gewijzigd in 80.Unfortunately, just before the Patch function was invoked, somebody else modifies the Quantity for Chocolate to 80. PowerApps detecteert dit en staat de conflicterende wijziging niet toe.PowerApps will detect this and not allow the conflicting change to occur. U kunt hierop controleren met de volgende formule:You can check for this situation with the formula:

  • IsEmpty( Errors ( IJs, RecordBewerken ) )IsEmpty( Errors( IceCream, EditRecord ) )

Deze retourneert false, omdat de functie Errors de volgende tabel heeft geretourneerd:which returns false, because the Errors function returned the following table:

RecordRecord ColumnColumn MessageMessage ErrorError
{ Smaak: "Chocolade", Hoeveelheid: 100 }{ Flavor: "Chocolate", Quantity: 100 } leegblank "Een andere gebruiker heeft de record gewijzigd die u probeert te wijzigen."Another user has modified the record that you're trying to modify. Laad de record opnieuw en probeer het nogmaals."Please reload the record and try again." ErrorKind.ConflictErrorKind.Conflict

U kunt een label op het formulier plaatsen om de gebruiker deze fout te tonen.You can place a label on the form to show this error to the user.

  • Om de fout te tonen, stelt u de eigenschap Text van het label in op deze formule:To show the error, set the label's Text property to this formula:
    Label.Text = First(Errors( IceCream, EditRecord )).MessageLabel.Text = First(Errors( IceCream, EditRecord )).Message

U kunt ook een knop Opnieuw laden aan het formulier toevoegen, zodat de gebruiker efficiënt het conflict kan oplossen.You can also add a Reload button on the form, so that the user can efficiently resolve the conflict.

  • Als u wilt dat de knop alleen wordt weergegeven wanneer er een conflict is opgetreden, stelt u de eigenschap Visible in op deze formule:To show the button only when a conflict has occurred, set the button's Visible property to this formula:
    !IsEmpty( Lookup( Errors( IJs, RecordBewerken ), Error = ErrorKind.Conflict ) )!IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) )
  • Om de wijziging terug te draaien wanneer de gebruiker de knop selecteert, stelt u de eigenschap OnSelect van de knop in op deze formule:To revert the change which the user selects the button, set its OnSelect property to this formula:
    ReloadButton.OnSelect = Revert( IJs, RecordBewerken )ReloadButton.OnSelect = Revert( IceCream, EditRecord )