Muistiinpano
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää kirjautua sisään tai vaihtaa hakemistoa.
Tämän sivun käyttö edellyttää valtuutusta. Voit yrittää vaihtaa hakemistoa.
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:
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 )