Piezīmes
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt pierakstīties vai mainīt direktorijus.
Lai piekļūtu šai lapai, ir nepieciešama autorizācija. Varat mēģināt mainīt direktorijus.
Attiecas uz: Audekla programmas
Modeļa vadītas programmas
Kļūdas – datu avotam sniedz informāciju par kļūdu saistībā ar iepriekšējām izmaiņām datu avotā.
Pārskats
Errors var notikt, ja tiek mainīts datu avota ieraksts . Ir iespējami daudzi iemesli, tostarp tīkla pārrāvumi, nepietiekamas atļaujas un rediģēšanas konflikti.
Funkcijas, kas pārveido datus datu avotos, piemēram, Patch, Collect, Remove, RemoveIf, Update, UpdateIf un SubmitForm ziņo par kļūdām divos veidos:
- Katra no šīm funkcijām atgriež kļūdas vērtību kā operācijas rezultātu. Errors var noteikt ar IsError un aizstāt vai nomākt ar IfError un App.OnError kā parasti. Skat. Kļūdu apstrāde, lai iegūtu papildinformāciju.
- Pēc operācijas Errors funkcija atgriezīs arī iepriekšējo darbību kļūdas. Tas var būt noderīgs, lai parādītu kļūdas ziņojumu veidlapas ekrānā, neuztverot kļūdu stāvokļa mainīgajā.
Varat izvairīties no dažām kļūdām, pirms tās notiek, izmantojot funkcijas Validate un DataSourceInfo. Skatiet sadaļu darbs ar datu avotiem, lai iegūtu vairāk ierosinājumu par to, kā strādāt ar kļūdām un no tām izvairīties.
Apraksts
Funkcija Errors atgriež kļūdu tabulu , kurā ir šādas kolonnas:
- Rekords. Ieraksts datu avotā, kurā bija kļūda. Ja kļūda radās ieraksta izveides laikā, šī kolonna ir tukša.
- Kolonna. Kolonna, kas izraisīja kļūdu, ja šo kļūdu var saistīt ar vienu kolonnu. Ja nē, tas ir tukšs.
- Ziņa. Kļūdas apraksts. Šo kļūdas virkni var rādīt gala lietotājam. Šo ziņojumu var ģenerēt datu avots, un tas var būt garš un satur neapstrādātus kolonnu nosaukumus, kuriem lietotājam var nebūt nekādas nozīmes.
- Kļūda. Kļūdas kods, kuru var izmantot formulās, lai atrisinātu kļūdu:
| ErrorKind | Apraksts |
|---|---|
| ErrorKind.Conflict | Tam pašam ierakstam bija veiktas citas izmaiņas, radot izmaiņu konfliktu. Izmantojiet funkciju Refresh, lai atkārtoti ielādētu ierakstu, un vēlreiz mēģiniet veikt izmaiņas. |
| ErrorKind.ConstraintViolation | Ir pārkāpts viens vai vairāki ierobežojumi. |
| ErrorKind.CreatePermission | Tika veikts mēģinājums izveidot ierakstu, un pašreizējam lietotājam nav atļaujas veidot ierakstus. |
| ErrorKind.DeletePermission | Tika veikts mēģinājums dzēst ierakstu, un pašreizējam lietotājam nav atļaujas dzēst ierakstus. |
| ErrorKind.EditPermission | Tika veikts mēģinājums rediģēt ierakstu, un pašreizējam lietotājam nav atļaujas rediģēt ierakstus. |
| ErrorKind.GeneratedValue | Tika veikts mēģinājums mainīt kolonnu, kuru datu avots ģenerē automātiski. |
| ErrorKind.MissingRequired | Ierakstā nav obligātas kolonnas vērtības. |
| ErrorKind.None | Nav kļūdu. |
| ErrorKind.NotFound | Tika veikts mēģinājums rediģēt vai dzēst ierakstu, taču ieraksts netika atrasts. Iespējams, šo ierakstu ir mainījis cits lietotājs. |
| ErrorKind.ReadOnlyValue | Tika veikts mēģinājums mainīt kolonnu, kas ir tikai lasāma. |
| ErrorKind.Sync | Datu avots ziņoja par kļūdu. Papildinformāciju skatiet ziņojuma kolonnā. |
| ErrorKind.Unknown | Radās kļūda, bet nezināma tipa. |
| ErrorKind.Validation | Tika konstatēta vispārēja validācijas problēma, kas neatbilda nevienam no citiem veidiem. |
Errors var atgriezt visam datu avotam vai tikai atlasītajai rindai, funkcijai nodrošinot argumentu Ieraksts .
Ielāps vai cita datu funkcija var atgriezt tukšu vērtību, ja, piemēram, ierakstu nevarēja izveidot. Tukšu var nodot uzErrors, un šādos gadījumos tiek atgriezta atbilstoša kļūdas informācija. Turpmāka datu funkciju izmantošana tajā pašā datu avotā notīra šo kļūdas informāciju.
Ja kļūdu nav, atgrieztā Errors tabula būs tukša , un to var pārbaudīt, izmantojot funkciju IsEmpty .
Sintakse
Errors( Datu avots [, ieraksts ] )
- DataSource - Obligāts. Datu avots, kuram vēlaties atgriezt kļūdas.
- Ieraksts : pēc izvēles. Konkrēts ieraksts, kuram vēlaties atgriezt kļūdas. Ja šo argumentu nenorādāt, funkcija atgriež kļūdas visam datu avotam.
Piemēri
Pakāpeniskas darbības
Šajā piemērā mēs strādāsim ar IceCream datu avotu, datu avotu, kuram Power Apps mēģinās noteikt konfliktus:
Piezīmes
Power Apps nemēģina noteikt konfliktus izmaiņām Dataverse tabulās.
Izmantojot programmu, lietotājs datu ievades veidlapā ielādē ierakstu Šokolāde un pēc tam nomaina Daudzuma vērtību uz 90. Ieraksts, ar ko strādāt tiek ievietots konteksta mainīgajāEditRecord:
- UpdateContext( { EditRecord: LookUp( IceCream, Flavor = "Šokolāde" ) } )
Lai veiktu šīs izmaiņas datu avotā, tiek izmantota funkcija Patch:
- Plāksteris( IceCream, EditRecord, Gallery.Updates )
Kur Gallery.Updates tiek novērtēts kā { Quantity: 90 }, jo ir modificēts tikai rekvizīts Quantity .
Diemžēl tieši pirms Patch funkcijas izsaukšanas kāds cits modificē Daudzuma vērtību Šokolādei uz 80. Tā kā šis ir atbalstīts datu avots konfliktu noteikšanai, Power Apps to noteiks un neļaus konfliktējošām izmaiņām notikt. Varat šo situāciju pārbaudīt, izmantojot formulu:
- IsEmpty( Errors( Saldējums, EditRecord ) )
Kas atgriež false, jo Errors funkcija atgrieza šādu tabulu:
| Ieraksts | Stabiņš | Ziņojums | Kļūda |
|---|---|---|---|
| { Garša "Šokolādes", Daudzums: 100 } | Tukša | "Cits lietotājs ir modificējis to ieraksta vērtību, kuru mēģināt modificēt. Pārlādējiet ierakstu un mēģiniet vēlreiz." | ErrorKind.Conflict |
Varat novietot etiķeti veidlapā, lai šo kļūdu rādītu lietotājam.
- Lai rādītu kļūdu, iestatiet etiķetes rekvizītu Teksts uz šo formulu:
Label.Text = First(Errors( IceCream, EditRecord )). Ziņa
Veidlapā varat arī pievienot Pārlādēšanas pogu, lai lietotājs varētu efektīvi atrisināt konfliktu.
- Lai rādītu pogu vienīgi tad, kad ir radies konflikts, iestatiet pogas rekvizītu Redzams uz šo formulu:
! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) ) ) - Lai atsauktu izmaiņas, kuras lietotājs atlasa pogu, iestatiet rekvizītu OnSelect uz šo formulu:
ReloadButton.OnSelect = atjaunot iepriekšējo versiju( IceCream, EditRecord )