Jaa


Errors funktio

Koskee seuraavia: Pohjaan perustuvat sovellukset Mallipohjaiset sovellukset

Antaa tietolähteen edellisiin muutoksiin liittyviä virhetietoja.

Yleiskatsaus

Errors voi tapahtua, kun tietolähteen tietuetta muutetaan. Tähän voi olla useita syitä, kuten verkkokatkokset, riittämättömät käyttöoikeudet ja muokkausristiriidat.

Tietolähteitä muokkaavat funktiot, kuten Patch, Collect, Remove, RemoveIf, Update, UpdateIf ja SubmitForm raportoivat virheistä kahdella tavalla:

  • Kaikki nämä funktiot palauttavat virhearvon toiminnon tuloksena. Errors voidaan havaita IsError-funktiolla , ja se voidaan korvata tai estää funktiolla IfError ja App.OnError tavalliseen tapaan. Lisätietoja on kohdassa Virheiden käsittely.
  • Toiminnon Errors jälkeen funktio palauttaa myös edellisten toimintojen virheet. Siitä voi olla hyötyä, kun virhesanoma näytetään lomakenäytössä ilman, että virhettä tarvitsee siepata tilamuuttujaan.

Voit välttää joitakin virheitä, ennen kuin ne tapahtuvat, käyttämällä Validate- ja DataSourceInfo-funktioita. Katso lisäehdotuksia siitä, miten virheitä käsitellään ja vältetään, aiheesta tietolähteiden käsitteleminen.

Kuvaus

Funktio Errors palauttaa virhetaulukon , joka sisältää seuraavat sarakkeet:

  • Ennätys. Tietolähteessä oleva tietue, jossa virhe ilmeni. Jos virhe ilmeni tietueen luonnin aikana, tämä sarake on tyhjä.
  • Sarake. Sarake, joka aiheutti virheen, jos virheen voidaan katsoa johtuneen yhdestä sarakkeesta. Jos ei, se on tyhjä.
  • Viesti. Virheen kuvaus. Tämä virhemerkkijono voidaan näyttää loppukäyttäjälle. Tietolähde saattaa luoda tämän viestin, ja se voi olla pitkä ja sisältää raakoja sarakkeiden nimiä, joilla ei ehkä ole merkitystä käyttäjälle.
  • Virhe. Virhekoodi, jota voidaan käyttää kaavoissa ratkaisemaan virhe:
ErrorKind Kuvaus
ErrorKind.Conflict Toinen muutos tehtiin samaan tietueeseen, mikä aiheutti muutosristiriidan. Lataa tietue uudestaan Refresh-funktiolla ja yritä tehdä muutos uudelleen.
ErrorKind.ConstraintViolation Yhtä tai useampaa rajoitusta on rikottu.
ErrorKind.CreatePermission Tietue yritettiin luoda, eikä nykyisellä käyttäjällä ole tietueiden luontioikeutta.
ErrorKind.DeletePermission Tietue yritettiin poistaa, eikä nykyisellä käyttäjällä ole tietueiden poisto-oikeutta.
ErrorKind.EditPermission Tietuetta yritettiin muokata, eikä nykyisellä käyttäjällä ole tietueiden muokkausoikeutta.
ErrorKind.GeneratedValue Tietolähteen automaattisesti luomaa saraketta yritettiin muuttaa.
ErrorKind.MissingRequired Pakollisen sarakkeen arvo puuttuu tietueesta.
ErrorKind.None Ei virhettä.
ErrorKind.NotFound Tietuetta yritettiin muokata tai se yritettiin poistaa, mutta tietuetta ei löytynyt. Toinen käyttäjä on ehkä muuttanut tietuetta.
ErrorKind.ReadOnlyValue Vain luettavaa saraketta yritettiin muuttaa.
ErrorKind.Sync Tietolähde ilmoitti virheestä. Lisätietoja on Message-sarakkeessa.
ErrorKind.Unknown Ilmeni virhe, mutta sen laji on tuntematon.
ErrorKind.Validation Havaittiin yleinen vahvistusongelma, joka ei sopinut johonkin muuhun lajiin.

Errors voidaan palauttaa koko tietolähteestä tai vain valitusta rivistä antamalla funktiolle Tietue-argumentti .

Patch tai muu datafunktio voi palauttaa tyhjän arvon, jos esimerkiksi tietuetta ei voitu luoda. Voit välittää tyhjän kohteen ja Errorspalauttaa asianmukaiset virhetiedot näissä tapauksissa. Tietofunktioiden seuraava käyttö samalla tietolähteellä tyhjentää nämä virhetiedot.

Jos virheitä ei ole, palauttaa taulukon Errorstyhjäksi ja sitä voidaan testata IsEmpty-funktiolla .

Syntaksi

Errors( DataSource [, Record ] )

  • DataSource – Pakollinen. Tietolähde, jolle haluat palauttaa virheitä.
  • Record – valinnainen. Tietty tietue, jolle haluat palauttaa virheitä. Jos et määritä tätä argumenttia, funktio palauttaa virheitä koko tietolähteelle.

Esimerkit

Vaihe vaiheelta

Tässä esimerkissä käytämme IceCream-tietolähdettä , joka on tietolähde, jonka Power Apps yrittää havaita ristiriidat:

Ice Cream

Note

Power Apps ei yritä havaita ristiriitoja Dataverse-taulukoiden muutoksille.

Sovelluksessa käyttäjä lataa Chocolate-tietueen tietolomakkeeseen ja muuttaa sitten Quantity-arvoksi luvun 90. Työstettävä tietue sijoitetaan kontekstimuuttujaanEditRecord:

  • UpdateContext( { EditRecord: LookUp( Jäätelö, maku = "suklaa") } )

Tämä muutos tehdään tietolähteeseen Patch-funktiolla:

  • Patch( IceCream, EditRecord, Gallery.Updates )

Jossa Gallery.Updates saa arvon { Quantity: 90 }, koska vain Quantity-ominaisuutta on muokattu.

Valitettavasti, juuri ennen kuin Patch-funktio käynnistettiin, joku muu muutti Chocolate-tietueen Quantity-arvoksi luvun 80. Koska tätä tuetaan tietolähteenä ristiriitojen havaitsemisessa, Power Apps tunnistaa tämän eikä salli ristiriitaista muutosta. Voit tarkistaa tällaisen tilanteen seuraavalla kaavalla:

  • IsEmpty( Errors( IceCream, EditRecord ) )

Tämä palauttaa arvon epätosi, koska Errors funktio palautti seuraavan taulukon:

Tietue Sarake Sanoma Virhe
{ Flavor: "Chocolate", Quantity: 100 } aihio ”Toinen käyttäjä on muokannut tietuetta, jota yrität muokata. Lataa tietue uudelleen ja yritä uudelleen." ErrorKind.Conflict

Voit sijoittaa lomakkeeseen selitteen, joka näyttää tämän virheen käyttäjälle.

  • Näytä virhe määrittämällä selitteen Text-ominaisuudeksi tämä kaava:
    Label.Text = First(Errors( IceCream, EditRecord )). Viesti

Voit myös lisätä Lataa uudelleen -painikkeen lomakkeeseen, jotta käyttäjä voi ratkaista ristiriidan tehokkaasti.

  • Näytä painike vain, kun ristiriita on esiintynyt, määrittämällä painikkeen Visible-ominaisuudeksi seuraava kaava:
    ! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) )
  • Jos haluat palauttaa muutoksen, jonka käyttäjä valitsee painikkeen, määritä sen OnSelect-ominaisuudeksi tämä kaava:
    ReloadButton.OnSelect = palauttaa( Jäätelö, EditRecord )