Deli z drugimi prek


Errors funkcija

Velja za: Aplikacije na platnu , ki jih poganja model

Zagotavlja informacije o napakah za prejšnje spremembe vira podatkov.

Pregled

Errors se lahko zgodi , ko se spremeni zapis vira podatkov. Možnih je veliko vzrokov, vključno z izpadi omrežja, neustreznimi dovoljenji in spori pri urejanju.

Funkcije, ki spreminjajo podatke v virih podatkov, kot so Patch, Collect, Remove, RemoveIf, Update, UpdateIf in SubmitForm, o napakah poročajo na dva načina:

  • Vsaka od teh funkcij vrne vrednost napake kot rezultat operacije. Errors je mogoče zaznati z IsError in zamenjati ali ukinjeno z IfError in App.OnError kot običajno. Za več informacij glejte Obravnavanje napak.
  • Po operaciji funkcija vrne Errors tudi napake za prejšnje operacije. To je lahko uporabno za prikaz sporočila o napaki na zaslonu obrazca, ne da bi morali zajeti napako v spremenljivki stanja.

Nekatere napake lahko preprečite, preden se zgodijo, s funkcijama Validate in DataSourceInfo. Glejte delo z viri podatkov za več predlogov o tem, kako delati z napakami in jih preprečevati.

Opis

Funkcija Errors vrne tabelo napak , ki vsebuje te stolpce:

  • Zapis. Zapis v viru podatkov, ki je imel napako. Če je med ustvarjanjem zapisa prišlo do napake, je ta stolpec prazen.
  • Stolpec. Stolpec, ki je povzročil napako, če je napako mogoče pripisati enemu stolpcu. Če ni, je prazno.
  • Sporočilo. Opis napake. Ta niz napake je lahko prikazan končnemu uporabniku. To sporočilo lahko ustvari vir podatkov in je lahko dolgo in vsebuje neobdelana imena stolpcev, ki uporabniku morda nimajo nobenega pomena.
  • Napaka. Koda napake, ki se lahko uporabi v formulah kot pomoč za odpravljanje težave:
ErrorKind Opis
ErrorKind.Conflict Za isti zapis je bila izvedena druga sprememba, da je nastal spor pri spremembah. Uporabite funkcijo Refresh, da znova naložite zapis in poskusite znova spremeniti.
ErrorKind.ConstraintViolation Ena ali več omejitev je bilo kršenih.
ErrorKind.CreatePermission Prišlo je do poskusa ustvarjanja zapisa in trenutni uporabnik nima dovoljenja za ustvarjanje zapisov.
ErrorKind.DeletePermission Prišlo je do poskusa brisanja zapisa in trenutni uporabnik nima dovoljenja za brisanje zapisov.
ErrorKind.EditPermission Prišlo je do poskusa urejanja zapisa in trenutni uporabnik nima dovoljenja za urejanje zapisov.
ErrorKind.GeneratedValue Prišlo je do poskusa spreminjanja stolpca, ki ga vir podatkov ustvari samodejno.
ErrorKind.MissingRequired Vrednost za obvezen stolpec v zapisu manjka.
ErrorKind.None Ni napake.
ErrorKind.NotFound Prišlo je do poskusa urejanja ali brisanja zapisa, toda zapisa ni bilo mogoče najti. Drug uporabnik je morda spremenil zapis.
ErrorKind.ReadOnlyValue Prišlo je do poskusa spremembe stolpca, ki je samo za branje.
ErrorKind.Sync Vir podatkov je sporočil napako. Preverite stolpec »Sporočila« za več informacij.
ErrorKind.Unknown Prišlo je do napake, toda vrsta je neznana.
ErrorKind.Validation Zaznana je bila splošna težava preverjanja veljavnosti, ki se ni ujemala z eno od drugih vrst.

Errors lahko vrne za celoten vir podatkov ali le za izbrano vrstico tako, da funkciji posreduje argument Zapis .

obliž ali druga podatkovna funkcija lahko vrne a prazno vrednost, če na primer zapisa ni bilo mogoče ustvariti. Vnesete lahko prazno vrednost v Errors, v teh primerih pa vrne tudi ustrezne informacije o napaki. Nadaljnja uporaba podatkovnih funkcij v istem viru podatkov počisti te informacije o napaki.

Če ni napak, bo vrnjena tabela Errors prazna in jo je mogoče preskusiti s funkcijo IsEmpty.

Sintaksa

Errors( Vir podatkov [, zapis ] )

  • DataSource – Zahtevano. Vir podatkov, za katerega želite vrniti napake.
  • Zapis – Neobvezno. Določen zapis, za katerega želite vrniti napake. Če ne določite tega argumenta, funkcija vrne napake za celoten vir podatkov.

Primeri

Korak za korakom

V tem primeru bomo delali z virom podatkov IceCream , virom podatkov, za katerega bodo aplikacije Power Apps poskušale zaznati spore:

Sladoled.

opomba,

Power Apps ne poskuša zaznati sporov za spremembe v tabelah Dataverse.

Prek aplikacije uporabnik naloži zapis »Chocolate« v obrazec za vnos podatkov in nato spremeni vrednost za Quantity na 90. Zapis, s katerim se opravi delo, je umeščen v spremenljivko kontekstaEditRecord:

  • UpdateContext( { EditRecord: LookUp( IceCream, Flavor = "Chocolate" ) } )

Za uveljavitev te spremembe v viru podatkov je uporabljena funkcija Patch:

  • Popravek (IceCream, EditRecord, Gallery.Updates)

Kjer funkcija Gallery.Updates oceni { Količina: 90 }, ker je bila spremenjena le lastnost »Količina«.

Žal tik pred priklicem funkcije Patch nekdo drug spremeni Quantity za »Chocolate« na 80. Ker je to podprt vir podatkov za zaznavanje sporov, power apps zazna to težavo in ne dovoli spremembe v sporu. To situacijo lahko preverite s formulo:

  • IsEmpty( Errors( IceCream, EditRecord )

Kar vrne »false«, ker je Errors funkcija vrnila to tabelo:

Zapis Stolpični grafikon Sporočilo Napaka
{ Okus: "Čokolada", Količina: 100 } prazno »Drug uporabnik je spremenil zapis, ki ga poskušate spremeniti. Znova naložite zapis in poskusite znova.« ErrorKind.Conflict

Na obrazec lahko umestite oznako, da prikažete to napako uporabniku.

  • Za prikaz napake nastavite lastnost Besedilo oznake na to formulo:
    Label.Text = First(Errors( IceCream, EditRecord )). Sporočilo

V obrazec lahko dodate tudi gumb Znova naloži, tako da lahko uporabnik učinkovito odpravi spor.

  • Za prikaz gumba samo, ko pride do spora, nastavite lastnost Visible gumba na to formulo:
    ! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict )
  • Če želite povrniti spremembo, ki jo uporabnik izbere, nastavite lastnost OnSelect na to formulo:
    ReloadButton.OnSelect = Povrni (IceCream, EditRecord)