Kopīgot, izmantojot


Errors funkcija

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:

Saldējums.

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 )