Belešku
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da se prijavite ili da promenite direktorijume.
Pristup ovoj stranici zahteva autorizaciju. Možete pokušati da promenite direktorijume.
Odnosi se na: Aplikacije platna koje potiče
od modela
Pruža informacije o grešci za prethodne promene u izvoru podataka.
Pregled
Errors može da se desi kada se promeni zapis izvora podataka. Mogući su mnogi uzroci, uključujući prekid mreže, neadekvatne dozvole i neusaglašenosti oko uređivanja.
Funkcije koje menjaju podatke u izvorima podataka, kao što su Patch, Collect, Remove, RemoveIf, Update, UpdateIf i SubmitForm prijavljuju greške na dva načina:
- Svaka od ovih funkcija vraća vrednost greške kao rezultat operacije. Errors može da se otkrije pomoću funkcije IsError i zameni ili potisne funkcijom IfErrori App.OnError kao i obično. Za više informacija, pogledajte članak Rukovanje greškama.
- Nakon operacije funkcija Errors će vratiti i greške za prethodne operacije. Može biti korisno za prikazivanje poruke o grešci na ekranu obrasca bez potrebe za hvatanjem greške u promenljivoj stanja.
Neke greške možete izbeći pre nego što se one pojave korišćenjem funkcija Validate i DataSourceInfo. Pogledajte rad sa izvorima podataka za više predloga o tome kako raditi i izbegavati greške.
Opis
Funkcija Errors vraća tabelu grešaka koja sadrži sledeće kolone:
- Zapis. Zapis u izvoru podataka koji je imao grešku. Ako je došlo do greške tokom kreiranja zapisa, ova kolona je prazna.
- Kolone. Kolona koja je izazvala grešku, ako se greška može pripisati jednoj koloni. Ako nije, prazno je.
- Poruku. Opis greške. Ova niska grešaka se može prikazati krajnjem korisniku. Ova poruka je možda generisala izvor podataka i mogla bi da bude dugačka i da sadrži osnovna imena kolona koja možda nemaju nikakvo značenje za korisnika.
- Greška. Kôd greške koji se može koristiti u formulama za rešavanje greške:
| ErrorKind | Opis |
|---|---|
| ErrorKind.Conflict | Nastala je druga promena za isti zapis, što je dovelo do neusaglašenosti pri promeni. Koristite funkciju Refresh da biste ponovo učitali zapis, pa ponovo pokušajte da obavite promenu. |
| ErrorKind.ConstraintViolation | Jedno ili više ograničenja je prekršeno. |
| ErrorKind.CreatePermission | Načinjen je pokušaj kreiranja zapisa, a trenutni korisnik nema dozvolu za kreiranje zapisa. |
| ErrorKind.DeletePermission | Načinjen je pokušaj brisanja zapisa, a trenutni korisnik nema dozvolu za brisanje zapisa. |
| ErrorKind.EditPermission | Načinjen je pokušaj uređivanja zapisa, a trenutni korisnik nema dozvolu za uređivanje zapisa. |
| ErrorKind.GeneratedValue | Načinjen je pokušaj da se promeni kolona koju izvor podataka automatski generiše. |
| ErrorKind.MissingRequired | Vrednost za potrebnu kolonu nedostaje iz zapisa. |
| ErrorKind.None | Nema greške. |
| ErrorKind.NotFound | Načinjen je pokušaj uređivanja ili brisanja zapisa, ali zapis nije pronađen. Drugi korisnik je možda promenio zapis. |
| ErrorKind.ReadOnlyValue | Načinjen je pokušaj promene kolone koja je samo za čitanje. |
| ErrorKind.Sync | Greška je prijavljena od strane izvora podataka. Proverite kolonu Poruka za više informacija. |
| ErrorKind.Unknown | Došlo je do greške, ali nepoznate vrste. |
| ErrorKind.Validation | Otkriven je opšti problem sa proverom valjanosti koji se ne uklapa u neku drugu vrstu. |
Errors može da se vrati za ceo izvor podataka ili samo za izabrani red tako što funkciji obezbeđuje argument Zapis.
Zakrpa ili neka druga funkcija podataka može da vrati praznu vrednost ako, na primer, zapis ne može biti kreiran. Možete da dodate prazno u Errors, a ona vraća odgovarajuće informacije o grešci u tim slučajevima. Naredna upotreba funkcija podataka u istom izvoru podataka obriše ove informacije o grešci.
Ako nema grešaka, Errors tabela koja se vrati biće prazna i može se testirati pomoću funkcije IsEmpty.
Sintaksa
Errors( Izvor podataka [, Zapis ] )
- DataSource – Obavezno. Izvor podataka za koji želite da vraća greške.
- Zapis– Opciono. Određeni zapis za koji želite da vraća greške. Ako ne navedete ovaj argument, funkcija vraća greške za ceo izvor podataka.
Primeri
Korak po korak
U ovom primeru radićemo sa IceCream izvorom podataka, izvorom podataka za koji Power Apps pokušava da otkrije neusaglašenosti:
Belešku
Power Apps ne pokušava da otkrije neusaglašenosti za promene u Dataverse tabelama.
Kroz aplikaciju korisnik učitava zapis Čokolada u obrascu za unos podataka, a zatim menja vrednost Količina na 90. Zapis sa kojim se radi smešten je u promenljivu kontekstaEditRecord:
- UpdateContext( { EditRecord: LookUp( IceCream, Flavor = "Čokolada") } )
Da biste izvršili ovu promenu u izvoru podataka, funkcija Patch se koristi:
- Zakrpa( IceCream, EditRecord, Gallery.Updates )
Where Gallery.Updates procenjuje { Količina: 90 }, pošto je izmenjeno samo svojstvo "Količina".
Na žalost, malo pre nego što je funkcija Patch pozvana, neko drugi menja svojstvo Quantity za čokoladu na 80. Pošto je ovo podržani izvor podataka za otkrivanje neusaglašenosti, Power Apps će otkriti ovo i neće dozvoliti da dođe do neusaglašene promene. Možete proveriti ovu situaciju pomoću formule:
- IsEmpty( Errors( IceCream, EditRecord )
Koja vraća vrednost "false" zato što je Errors funkcija vratila sledeću tabelu:
| Zapis | Kolona | Poruka | Greška |
|---|---|---|---|
| { Ukus: "Čokolada", količina: 100 } | Prazno | „Drugi korisnik je izmenio zapis koji pokušavate da izmenite. Ponovo učitajte zapis i pokušajte ponovo." | ErrorKind.Conflict |
Na obrazac možete staviti oznaku koja će korisniku pokazati ovu grešku.
- Da biste prikazali grešku, podesite svojstvo Text oznake prema ovoj formuli:
Label.Text = First(Errors( IceCream, EditRecord )). Poruku
Takođe možete da dodate dugme Učitaj ponovo na obrazac, tako da korisnik može efikasno rešiti neusaglašenost.
- Da biste dugme prikazali samo kada je došlo do neusaglašenosti, podesite svojstvo Visible dugmeta prema ovoj formuli:
! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) ) - Da biste vratili promenu, koju korisnik izabere dugme, postavite njegovo svojstvo OnSelect na ovu formulu:
ReloadButton.OnSelect = Revert( IceCream, EditRecord )