Jagamisviis:


Errors funktsioon

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.

Jäätis.

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 )