PowerAppsin Virheet-funktioErrors function in PowerApps

Antaa tietolähteen edellisiin muutoksiin liittyviä virhetietoja.Provides error information for previous changes to a data source.

YleiskatsausOverview

Virheitä voi tapahtua, kun tietolähteen tietuetta muutetaan.Errors can happen when a record of a data source is changed. Tähän voi olla useita syitä, kuten verkkokatkokset, riittämättömät käyttöoikeudet ja muokkausristiriidat.Many causes are possible, including network outages, inadequate permissions, and edit conflicts.

Patch-funktio ja muut datafunktiot eivät suoraan palauta virheitä.The Patch function and other data functions don't directly return errors. Sen sijaan ne palauttavat niiden toiminnon tuloksen.Instead they return the result of their operation. Kun datafunktio suoritetaan, voit käyttää Errors-funktiota virheiden tietojen hankkimiseen.After a data function executes, you can use the Errors function to obtain the details of any errors. Voit tarkistaa virheiden olemassaolon kaavan IsEmpty( Errors ( ... ) ) funktiolla [IsEmpty].You can check for the existence of errors with the [IsEmpty] function in the formula IsEmpty( Errors ( ... ) ).

Voit välttää joitakin virheitä, ennen kuin ne tapahtuvat, käyttämällä Validate- ja DataSourceInfo-funktioita.You can avoid some errors before they happen by using the Validate and DataSourceInfo functions. Katso lisäehdotuksia siitä, miten virheitä käsitellään ja vältetään, aiheesta tietolähteiden käsitteleminen.See working with data sources for more suggestions on how to work with and avoid errors.

KuvausDescription

Errors-funktio palauttaa virheiden taulukon, joka sisältää seuraavat sarakkeet:The Errors function returns a table of errors that contains the following columns:

  • Record.Record. Tietolähteessä oleva tietue, jossa virhe ilmeni.The record in the data source that had the error. Jos virhe ilmeni tietueen luonnin aikana, tämä sarake on tyhjä.If the error occurred during the creation of a record, this column will be blank.
  • Column.Column. Sarake, joka aiheutti virheen, jos virheen voidaan katsoa johtuneen yhdestä sarakkeesta.The column that caused the error, if the error can be attributed to a single column. Jos ei, tämä on tyhjä.If not, this will be blank.
  • Message.Message. Virheen kuvaus.A description of the error. Tämä virhemerkkijono voidaan näyttää loppukäyttäjälle.This error string can be displayed for the end user. Huomioi, että tietolähde saattaa muodostaa tämän viestin ja se voi olla pitkä ja sisältää raakoja sarakkeiden nimiä, jotka eivät ehkä merkitse käyttäjälle mitään.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. Virhekoodi, jota voidaan käyttää kaavoissa ratkaisemaan virhe:An error code that can be used in formulas to help resolve the error:
ErrorKindErrorKind KuvausDescription
ErrorKind.ConflictErrorKind.Conflict Toinen muutos tehtiin samaan tietueeseen, mikä aiheutti muutosristiriidan.Another change was made to the same record, resulting in a change conflict. Lataa tietue uudestaan Refresh-funktiolla ja yritä tehdä muutos uudelleen.Use the Refresh function to reload the record and try the change again.
ErrorKind.ConstraintViolationErrorKind.ConstraintViolation Yhtä tai useampaa rajoitusta on rikottu.One or more constraints have been violated.
ErrorKind.CreatePermissionErrorKind.CreatePermission Tietue yritettiin luoda, eikä nykyisellä käyttäjällä ole tietueiden luontioikeutta.An attempt was made to create a record, and the current user doesn't have permission to create records.
ErrorKind.DeletePermissionErrorKind.DeletePermission Tietue yritettiin poistaa, eikä nykyisellä käyttäjällä ole tietueiden poisto-oikeutta.An attempt was made to delete a record, and the current user doesn't have permission to delete records.
ErrorKind.EditPermissionErrorKind.EditPermission Tietuetta yritettiin muokata, eikä nykyisellä käyttäjällä ole tietueiden muokkausoikeutta.An attempt was made to edit a record, and the current user doesn't have permission to edit records.
ErrorKind.GeneratedValueErrorKind.GeneratedValue Tietolähteen automaattisesti luomaa saraketta yritettiin muuttaa.An attempt was made to change a column that the data source generates automatically.
ErrorKind.MissingRequiredErrorKind.MissingRequired Pakollisen sarakkeen arvo puuttuu tietueesta.The value for a required column is missing from the record.
ErrorKind.NoneErrorKind.None Ei virhettä.There is no error.
ErrorKind.NotFoundErrorKind.NotFound Tietuetta yritettiin muokata tai se yritettiin poistaa, mutta tietuetta ei löytynyt.An attempt was made to edit or delete a record, but the record couldn't be found. Toinen käyttäjä on ehkä muuttanut tietuetta.Another user may have changed the record.
ErrorKind.ReadOnlyValueErrorKind.ReadOnlyValue Vain luettavaa saraketta yritettiin muuttaa.An attempt was made to change a column that's read only.
ErrorKind.SyncErrorKind.Sync Tietolähde ilmoitti virheestä.An error was reported by the data source. Lisätietoja on Viesti-sarakkeessa.Check the Message column for more information.
ErrorKind.UnknownErrorKind.Unknown Ilmeni virhe, mutta sen laji on tuntematon.There was an error, but of an unknown kind.
ErrorKind.ValidationErrorKind.Validation Havaittiin yleinen vahvistusongelma, joka ei sopinut mihinkään muuhun lajiin.There was a general validation issue detected, that did not fit one of the other kinds.

Virheitä voidaan palauttaa koko tietolähteestä tai vain valitusta rivistä antamalla funktiolle Tietue-argumentti.Errors can be returned for the entire data source, or for only a selected row by providing the Record argument to the function.

Patch tai jokin toinen datafunktio saattaa palauttaa tyhjän arvon, jos esimerkiksi tietuetta ei voitu luoda.Patch or another data function may return a blank value if, for example, a record couldn't be created. Voit välittää tyhjän arvon Errors-funktiolle, ja se palauttaa asianmukaiset virhetiedot näissä tapauksissa.You can pass blank to Errors, and it will return appropriate error information in these cases. Datafunktioiden seuraava käyttökerta samalla tietolähteellä tyhjentää nämä virhetiedot.Subsequent use of data functions on the same data source will clear this error information.

Jos virheitä ei ole, taulukko, jonka Errors palauttaa, on tyhjä ja sitä voidaan testata IsEmpty-funktiolla.If there are no errors, the table that Errors returns will be empty and can be tested with the IsEmpty function.

SyntaksiSyntax

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

  • DataSource – Pakollinen.DataSource – Required. Tietolähde, jolle haluat palauttaa virheitä.The data source for which you want to return errors.
  • Record – Valinnainen.Record – Optional. Tietty tietue, jolle haluat palauttaa virheitä.A specific record for which you want to return errors. Jos et määritä tätä argumenttia, funktio palauttaa virheitä koko tietolähteelle.If you don't specify this argument, the function returns errors for the entire data source.

EsimerkkejäExamples

Vaihe vaiheeltaStep by Step

Tässä esimerkissä käytämme IceCream-tietolähdettä:For this example, we'll be working with the IceCream data source:

Sovelluksessa käyttäjä lataa Chocolate-tietueen tietolomakkeeseen ja muuttaa sitten Quantity-arvoksi luvun 90.Through the app, a user loads the Chocolate record into a data-entry form and then changes the value of Quantity to 90. Työstettävä tietue sijoitetaan kontekstimuuttujaanEditRecord:The record to be worked with is placed in the context variable EditRecord:

  • UpdateContext ({EditRecord: Ensimmäinen (Filter (IceCream, Flavor = ”suklaa”))})UpdateContext( { EditRecord: First( Filter( IceCream, Flavor = "Chocolate" ) ) } )

Tämä muutos tehdään tietolähteeseen Patch-funktiolla:To make this change in the data source, the Patch function is used:

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

Jos Gallery.Updates antaa tulokseksi {määrä: 90}, koska vain määrä ominaisuutta on muokattu.where Gallery.Updates evaluates to { Quantity: 90 }, since only the Quantity property has been modified.

Valitettavasti, juuri ennen kuin Patch-funktio käynnistettiin, joku muu muutti Chocolate-tietueen Quantity-arvoksi luvun 80.Unfortunately, just before the Patch function was invoked, somebody else modifies the Quantity for Chocolate to 80. PowerApps tunnistaa tämän eikä salli ristiriitaista muutosta.PowerApps will detect this and not allow the conflicting change to occur. Voit tarkistaa tällaisen tilanteen seuraavalla kaavalla:You can check for this situation with the formula:

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

joka palauttaa epätoden, koska Errors-funktio palautti seuraavan taulukon:which returns false, because the Errors function returned the following table:

TietueRecord SarakeColumn ViestiMessage VirheError
{Flavor: ”Suklaa”, Quantity: 100 }{ Flavor: "Chocolate", Quantity: 100 } tyhjäblank ”Toinen käyttäjä on muokannut tietuetta, jota yrität muokata."Another user has modified the record that you're trying to modify. Lataa tietue uudestaan ja yritä uudelleen.”Please reload the record and try again." ErrorKind.ConflictErrorKind.Conflict

Voit sijoittaa lomakkeeseen selitteen, joka näyttää tämän virheen käyttäjälle.You can place a label on the form to show this error to the user.

  • Näytä virhe määrittämällä selitteen Teksti-ominaisuudeksi tämä kaava: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

Voit myös lisätä Lataa uudelleen -painikkeen lomakkeeseen, jotta käyttäjä voi ratkaista ristiriidan tehokkaasti.You can also add a Reload button on the form, so that the user can efficiently resolve the conflict.

  • Näytä painike vain, kun ristiriita on esiintynyt, määrittämällä painikkeen Visible-ominaisuudeksi seuraava kaava: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 ) )
  • Kumoa muutos, kun käyttäjä valitsee painikkeen, määrittämällä sen OnSelect-ominaisuudeksi seuraava kaava: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 )