Funktionen Errors i PowerAppsErrors function in PowerApps

Indeholder oplysninger om fejl i forbindelse med tidligere ændringer af en datakilde.Provides error information for previous changes to a data source.

OversigtOverview

Fejl kan forekomme, når en post i den datakilde ændres.Errors can happen when a record of a data source is changed. Der kan være mange årsager, herunder netværksafbrydelser, utilstrækkelige tilladelser og redigeringskonflikter.Many causes are possible, including network outages, inadequate permissions, and edit conflicts.

Funktionen Patch og andre datafunktioner returnerer ikke fejl direkte.The Patch function and other data functions don't directly return errors. I stedet returnerer de resultatet af deres handling.Instead they return the result of their operation. Når du udfører en datafunktion, kan du bruge funktionen Errors til at få oplysninger om eventuelle fejl.After a data function executes, you can use the Errors function to obtain the details of any errors. Du kan kontrollere, om der findes fejl i forbindelse med funktionen [IsEmpty] i formlen IsEmpty (Errors (...)).You can check for the existence of errors with the [IsEmpty] function in the formula IsEmpty( Errors ( ... ) ).

Du kan undgå nogle fejl, inden de opstår, ved at bruge funktionerne Validate og DataSourceInfo.You can avoid some errors before they happen by using the Validate and DataSourceInfo functions. Under arbejde med datakilder kan du se flere forslag til, hvordan du arbejder med og undgår fejl.See working with data sources for more suggestions on how to work with and avoid errors.

BeskrivelseDescription

Funktionen Errors returnerer en tabel med fejl, der indeholder følgende kolonner:The Errors function returns a table of errors that contains the following columns:

  • Post.Record. Posten i den datakilde, hvor fejlen var.The record in the data source that had the error. Hvis fejlen opstod under oprettelsen af en post, er denne kolonne tom.If the error occurred during the creation of a record, this column will be blank.
  • Kolonne.Column. Den kolonne, der forårsagede fejlen, hvis fejlen kan tilskrives en enkelt kolonne.The column that caused the error, if the error can be attributed to a single column. Hvis ikke, er den tom.If not, this will be blank.
  • Meddelelse.Message. En beskrivelse af fejlen.A description of the error. Slutbrugeren kan få vist denne fejlstreng.This error string can be displayed for the end user. Vær opmærksom på, at datakilden kan generere denne meddelelse, og at den kan være lang og indeholde rå kolonnenavne, som ikke giver mening for brugeren.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.
  • Fejl.Error. En fejlkode, der kan bruges i formler til at hjælpe med at løse fejlen:An error code that can be used in formulas to help resolve the error:
ErrorKindErrorKind BeskrivelseDescription
ErrorKind.ConflictErrorKind.Conflict Der blev udført en anden ændring af den samme post, hvilket resulterede i en ændringskonflikt.Another change was made to the same record, resulting in a change conflict. Brug funktionen Refresh til at genindlæse posten, og prøv at foretage ændringen igen.Use the Refresh function to reload the record and try the change again.
ErrorKind.ConstraintViolationErrorKind.ConstraintViolation En eller flere begrænsninger er blevet overtrådt.One or more constraints have been violated.
ErrorKind.CreatePermissionErrorKind.CreatePermission Det blev forsøgt at oprette en post, og den aktuelle bruger har ikke tilladelse til at oprette poster.An attempt was made to create a record, and the current user doesn't have permission to create records.
ErrorKind.DeletePermissionErrorKind.DeletePermission Det blev forsøgt at slette en post, og den aktuelle bruger har ikke tilladelse til at slette poster.An attempt was made to delete a record, and the current user doesn't have permission to delete records.
ErrorKind.EditPermissionErrorKind.EditPermission Det blev forsøgt at redigere en post, og den aktuelle bruger har ikke tilladelse til at redigere poster.An attempt was made to edit a record, and the current user doesn't have permission to edit records.
ErrorKind.GeneratedValueErrorKind.GeneratedValue Det blev forsøgt at ændre en kolonne, som datakilden har oprettet automatisk.An attempt was made to change a column that the data source generates automatically.
ErrorKind.MissingRequiredErrorKind.MissingRequired Værdien for en påkrævet kolonne mangler i posten.The value for a required column is missing from the record.
ErrorKind.NoneErrorKind.None Der er ingen fejl.There is no error.
ErrorKind.NotFoundErrorKind.NotFound Det blev forsøgt at redigere eller slette en post, men posten blev ikke fundet.An attempt was made to edit or delete a record, but the record couldn't be found. En anden bruger har muligvis ændret posten.Another user may have changed the record.
ErrorKind.ReadOnlyValueErrorKind.ReadOnlyValue Det blev forsøgt at ændre en kolonne, der er skrivebeskyttet.An attempt was made to change a column that's read only.
ErrorKind.SyncErrorKind.Sync Datakilden rapporterede en fejl.An error was reported by the data source. Se flere oplysninger i kolonnen Message.Check the Message column for more information.
ErrorKind.UnknownErrorKind.Unknown Der opstod en fejl, men af en ukendt type.There was an error, but of an unknown kind.
ErrorKind.ValidationErrorKind.Validation Der blev registreret et generelt valideringsproblem, som ikke passede sammen med nogen af de andre former.There was a general validation issue detected, that did not fit one of the other kinds.

Fejl kan returneres for hele datakilden, eller kun for en markeret række ved at angive argumentet Record i funktionen.Errors can be returned for the entire data source, or for only a selected row by providing the Record argument to the function.

Patch eller en anden datafunktion kan returnere en tom værdi, hvis der for eksempel ikke kunne oprettes en post.Patch or another data function may return a blank value if, for example, a record couldn't be created. Du kan sende tom til Errors, så returneres relevante oplysninger om fejlene i disse tilfælde.You can pass blank to Errors, and it will return appropriate error information in these cases. Efterfølgende brug af datafunktionerne på den samme datakilde fjerner oplysningerne om disse fejl.Subsequent use of data functions on the same data source will clear this error information.

Hvis der ikke er nogen fejl, er den tabel, som returneres ved hjælp af Errors, tom og kan undersøges ved hjælp af funktionen IsEmpty.If there are no errors, the table that Errors returns will be empty and can be tested with the IsEmpty function.

SyntaksSyntax

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

  • DataSource – påkrævet.DataSource – Required. Den datakilde, du vil returnere fejl for.The data source for which you want to return errors.
  • Record – valgfri.Record – Optional. Den bestemte post, du vil returnere fejl for.A specific record for which you want to return errors. Hvis du ikke angiver dette argument, returnerer funktionen fejl for hele datakilden.If you don't specify this argument, the function returns errors for the entire data source.

EksemplerExamples

Trin for trinStep by Step

I dette eksempel arbejder vi med datakilden IceCream:For this example, we'll be working with the IceCream data source:

Via appen indlæser en bruger posten Chocolate i en formular til indtastning af data og ændrer derefter værdien af Quantity til 90.Through the app, a user loads the Chocolate record into a data-entry form and then changes the value of Quantity to 90. Den post, der arbejdes med, er placeret i kontekstvariablen EditRecord:The record to be worked with is placed in the context variable EditRecord:

  • UpdateContext({EditRecord: First(Filter(IceCream, Flavor = "Chocolate"))})UpdateContext( { EditRecord: First( Filter( IceCream, Flavor = "Chocolate" ) ) } )

For at foretage denne ændring i datakilden bruges funktionen Patch:To make this change in the data source, the Patch function is used:

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

hvor Gallery.Updates evaluerer til {Quantity: 90}, da det kun er egenskaben Quantity, der er blevet ændret.where Gallery.Updates evaluates to { Quantity: 90 }, since only the Quantity property has been modified.

Lige før funktionen Patch blev aktiveret, ændrede en anden bruger desværre Quantity for Chocolate til 80.Unfortunately, just before the Patch function was invoked, somebody else modifies the Quantity for Chocolate to 80. PowerApps registrerer dette og tillader ikke, at den modstridende ændring træder i kraft.PowerApps will detect this and not allow the conflicting change to occur. Du kan søge efter denne situation ved hjælp af formlen:You can check for this situation with the formula:

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

hvilket returnerer false, da funktionen Errors returnerede følgende tabel:which returns false, because the Errors function returned the following table:

PostRecord KolonneColumn MeddelelseMessage FejlError
{Flavor: "Chocolate", Quantity: 100}{ Flavor: "Chocolate", Quantity: 100 } tomblank "En anden bruger har ændret posten, som du forsøger at ændre."Another user has modified the record that you're trying to modify. Indlæs posten igen, og prøv igen".Please reload the record and try again." ErrorKind.ConflictErrorKind.Conflict

Du kan placere en etiket på formularen for at vise fejlen til brugeren.You can place a label on the form to show this error to the user.

  • For at vise etiketten skal du indstille egenskaben Text for den til denne formel:To show the error, set the label's Text property to this formula:
    Label.Text = First(Errors(IceCream, EditRecord)).Message Label.Text = First(Errors( IceCream, EditRecord )).Message

Du kan også føje en Reload-knap til formularen, så brugeren kan løse konflikten effektivt.You can also add a Reload button on the form, so that the user can efficiently resolve the conflict.

  • Hvis du kun vil vise knappen, når der opstår en konflikt, skal du indstille egenskaben Visible for knappen til denne formel:To show the button only when a conflict has occurred, set the button's Visible property to this formula:
    !IsEmpty(Lookup(Errors(IceCream, EditRecord), Error = ErrorKind.Conflict))!IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) )
  • Hvis du vil gendanne ændringerne, som bruger foretager ved at vælge knappen, skal du indstille egenskaben OnSelect for den til denne formel:To revert the change which the user selects the button, set its OnSelect property to this formula:
    ReloadButton.OnSelect = Revert(IceCream, EditRecord)ReloadButton.OnSelect = Revert( IceCream, EditRecord )