Märkus.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida sisse logida või kausta vahetada.
Juurdepääs sellele lehele nõuab autoriseerimist. Võite proovida kausta vahetada.
Kehtib järgmise kohta: Lõuendirakendused
Mudelipõhised rakendused
Pakub tõrgetega seotud teavet andmeallikas varasemate muudatuste kohta.
Ülevaade
Errors võib juhtuda andmeallika kirje muutmisel. Paljud põhjused on võimalikud, sh võrgu katkestused, ebapiisavad õigused ja muudatuste vastuolud.
Funktsioonid, mis muudavad andmeid andmeallikas, nagu näiteks Paik, Kogu, Eemalda, RemoveIf, Värskenda, UpdateIf ja SubmitForm, teatavad tõrkeid kahel viisil.
- Kõik need funktsioonid tagastavad toimingu tulemusena veaväärtuse. ErrorsisError ja asendada või tõkestada ifError ja App.OnError nagu tavaliselt. Lisateavet leiate jaotisest Veakäsitlus.
- Pärast toimingut Errors tagastab funktsioon ka eelmiste toimingute vead. See võib olla kasulik tõrketeate kuvamiseks vormi ekraanil ilma tõrke jäädvustamiseta olekumuutujas.
Saate vältida tõrkeid, enne kui need juhtuvad, kasutades fuktsioone Validate ja DataSourceInfo. Vt andmeallikatega töötamine, et teada saada, kuidas töötada andmeallikatega ja vältida tõrkeid.
Kirjeldus
Funktsioon Errors tagastab veatabeli , mis sisaldab järgmisi veerge:
- Rekord. Andmeallika kirje, millel oli tõrge. Kui kirje loomisel ilmnes tõrge, on see veerg tühi.
- Veerg. Tõrget põhjustanud veerg, kui tõrget saab seostada ühe veeruga. Kui ei, siis on see tühi.
- Sõnum. Tõrke kirjeldus. Selle tõrke stringi saab kuvada lõppkasutaja jaoks. Selle sõnumi võib luua andmeallikas ning see võib olla pikk ja sisaldada toores veerunimesid, millel ei pruugi olla kasutajale mingit tähendust.
- Viga. Tõrkekood, mida saab kasutada tõrgete lahendamiseks valemites.
| ErrorKind | Kirjeldus |
|---|---|
| ErrorKind.Conflict | Teine muutus tehti samale samale kirjele, mille tulemuseks on muudatuste vastuolu. Kasutage funktsiooni Refresh (Värskenda) kirje laadimiseks ja proovige siis uuesti muuta. |
| ErrorKind.ConstraintViolation | Rikutud on ühte või mitut piirangut. |
| ErrorKind.CreatePermission | Tehti katse luua kirjet ja praegusel kasutajal pole kirjete loomiseks õigust. |
| ErrorKind.DeletePermission | Tehti katse kustutada kirjet ja praegusel kasutajal pole kirjete kustutamise õigust. |
| ErrorKind.EditPermission | Tehti katse muuta kirjet ja praegusel kasutajal pole kirjete muutmise õigust. |
| ErrorKind.GeneratedValue | Tehti katse muuta veergu, mille andmeallikas automaatselt genereerib. |
| ErrorKind.MissingRequired | Kirjest puudub nõutava veeru väärtus. |
| ErrorKind.None | Tõrkeid pole. |
| ErrorKind.NotFound | Prooviti kirjet redigeerida või kustutada, kuid kirjet ei leitud. Võimalik, et mõni teine kasutaja on kirjet muutnud. |
| ErrorKind.ReadOnlyValue | Tehti katse muuta veergu, mis on kirjutuskaitstud. |
| ErrorKind.Sync | Andmeallikas teatas tõrkest. Vaadake lisateavet veerust Sõnum. |
| ErrorKind.Unknown | Ilmnes tõrge, kuid tundmatut tüüpi. |
| ErrorKind.Validation | Tuvastati üldine valideerimisprobleem, mis ei sobinud ühte teist tüüpi. |
Errors saab tagastada kogu andmeallika või ainult valitud rea jaoks, esitades funktsioonile argumendi Kirje .
Paiga - või muu andmefunktsioon võib tagastada tühja väärtuse, kui näiteks kirjet ei saanud luua. Võite väärtuseleErrorsedastada tühja väärtuse ja sel juhul tagastab see asjakohase tõrketeabe. See tõrketeave kustutatakse andmefunktsioonide edaspidisel kasutamisel samas andmeallikas.
Kui vigu pole, on tagastatav tabel Errorstühi ja seda saab funktsiooni IsEmpty abil testida.
Süntaks
Errors( DataSource [, Record ] )
- DataSource – nõutav. Andmeallikas, mille jaoks soovite tõrkeid tagastada.
- Kirje – valikuline. Teatud kirje, mille jaoks soovite tõrkeid tagastada. Kui te seda argumenti ei määra, tagastab funktsioon tõrked kogu andmeallikas.
Näited
Samm-sammult
Selles näites töötame andmeallikaga IceCream , mis on andmeallikas, mille puhul Proovivad Power Apps tuvastada konflikte.
Märkus.
Power Apps ei püüa tuvastada andmevahetustabelite muudatuste konflikte.
Rakenduse kaudu laadib kasutaja kirje Šokolaad andmesisestuse vormi ja seejärel muudab Koguse väärtuseks 90. Kirje, millega soovite töötada, paigutatakse konteksti muutujasseEditRecord:
- UpdateContext( { EditRecord: LookUp( jäätis, maitse = "šokolaad" ) } )
Kui soovite selle muudatuse andmeallikas teha, kasutage funktsiooni Patch.
- Patch( IceCream, EditRecord, Gallery.Updates )
Where Gallery.Updates väärtus on { Kogus: 90 }, kuna ainult atribuuti Kogus on muudetud.
Kahjuks, just enne funktsiooni Patch käivitamist, muudab keegi teine Šokolaadi koguse Quantity 80-ks. Kuna see on konfliktide tuvastamiseks toetatud andmeallikas, tuvastavad Power Apps selle ja ei luba vastuolulise muudatuse toimumist. Saate seda olukorda kontrollida järgmise valemi abil.
- IsEmpty( Errors( IceCream, EditRecord ) )
Mis tagastab väärtuse false, kuna Errors funktsioon tagastas järgmise tabeli:
| Kirje | Veerg | Teade | Tõrge |
|---|---|---|---|
| { Maitse: "Šokolaad", Kogus: 100 } | tühi | Mõni teine kasutaja on muutnud kirjet, mida proovite muuta. Laadige kirje uuesti ja proovige uuesti." | ErrorKind.Conflict |
Saate panna vormile sildi, mis näitab seda tõrget kasutajale.
- Tõrke kuvamiseks määrake sildi atribuut Text sellele valemile.
Label.Text = First(Errors( IceCream, EditRecord )). Sõnum
Vormile saate lisada ka nupu Laadi uuesti, nii et kasutaja saab konflikti tõhusalt lahendada.
- Nupu kuvamiseks ainult konflikti tekkimisel seadke nupu atribuut Nähtav sellele valemile.
! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) - Kasutaja valitud muudatuse ennistamiseks seadke selle atribuudi OnSelect väärtuseks järgmine valem:
ReloadButton.OnSelect = ennistama( IceCream, EditRecord )