Partekatu bidez


Errors funtzioa

Honako hauei aplikatzen zaie: Mihise-aplikazioak Ereduetan oinarritutako aplikazioak

Errorearen informazioa ematen du aurreko aldaketentzat datu-iturburua.

Informazio orokorra

Errors Datu-iturri baten erregistro bat aldatzen denean gerta daiteke. Kausa ugari daude, besteak beste, sareko irteerak, baimen eskasak eta editatu beharreko gatazkak.

Datu-iturburuetako datuak aldatzen dituzten funtzioak, adibidez Patch, Collect, Remove, RemoveIf, Update, UpdateIf, eta SubmitForm bi modutan ematen dute erroreen berri:

  • Funtzio horietako bakoitzak errore-balio bat itzultzen du eragiketaren emaitza gisa. Errors IsError-ekin detekta daiteke eta IfError eta App.OnError-ekin ordezkatu edo ezabatu ohi bezala. Ikusi Errore-kudeaketa informazio gehiagorako.
  • Eragiketaren ondoren, funtzioak Errors aurreko eragiketen erroreak ere itzuliko ditu. Errore-mezua inprimaki-pantailan bistaratzeko erabilgarria izan daiteke, egoera-aldagai batean errorea harrapatu beharrik gabe.

Akats batzuk saihestu ditzakezu, hau erabili aurretik Balidatu eta DataSourceInfo funtzioak. Ikusi datu-iturriekin lan egitea iradokizun gehiago lortzeko nola lan egin eta akatsak saihesteko.

Deskribapenak

Funtzioak Errors erroreen taula bat itzultzen du, zutabe hauek dituena:

  • Grabatu. Erregistroa datu-iturburuan errorea zeukan. Erregistro bat sortzean errorea gertatu bada, zutabe hau hutsik egongo da.
  • Zutabea. Errorea eragin duen zutabea, errorea zutabe bakar bati egotz dakioke. Hala ez bada, zuria da.
  • Mezua. Errorearen azalpena. Akats kate hau azken erabiltzailearentzat bista daiteke. Mezu hau datu-iturriak sor dezake eta luzea izan daiteke eta erabiltzailearentzat inolako esanahirik ez duten zutabe-izen gordinak izan ditzake.
  • Errorea. Errorea konpontzeko formuletan erabil daitekeen errorearen kodea:
ErrorKind Deskribapenak
ErrorKind.Conflict Beste aldaketa bat egin zen erregistro berean, eta ondorioz gatazka aldatu zen. Erabili Freskatu funtzioa erregistroa berriz kargatzeko eta saiatu berriro.
ErrorKind.ConstraintViolation Murrizketa bat edo gehiago urratu dira.
ErrorKind.CreatePermission Erregistro bat sortzeko saiakera bat egin zen eta uneko erabiltzaileak ez du erregistroak sortzeko baimenik.
ErrorKind.DeletePermission Erregistro bat ezabatzeko saiakera bat egin zen eta uneko erabiltzaileak ez du erregistroak ezabatzeko baimenik.
ErrorKind.EditPermission Erregistro bat editatzeko saiakera bat egin zen eta uneko erabiltzaileak ez du erregistroak editatzeko baimenik.
ErrorKind.GeneratedValue datu-iturburu-ek automatikoki sortzen duen zutabe bat aldatzeko saiakera bat egin zen.
ErrorKind.MissingRequired Beharrezko zutabearen balioa erregistroan falta da.
ErrorKind.None Ez da akatsik egon.
ErrorKind.NotFound Erregistro bat editatzeko edo ezabatzeko ahalegina egin zen, baina ezin da erregistroa aurkitu. Baliteke beste erabiltzaile batek erregistroa aldatu duela.
ErrorKind.ReadOnlyValue Irakurtzen den zutabe bat aldatzeko saiakera bat egin zen.
ErrorKind.Sync Errorea informatu zen datu-iturburuaren bidez. Kontsultatu Mezuaren zutabea informazio gehiagorako.
ErrorKind.Unknown Akats bat gertatu da, baina ezezaguna.
ErrorKind.Validation Baliozkotze-arazo orokor bat detektatu zen, beste mota batekin bat ez zetorrena.

Errors Datu-iturburu osoarentzat edo hautatutako errenkada baterako soilik itzul daiteke, funtzioari Record argumentua emanez.

Adabaki edo beste datu-funtzio batek hutsik balioa itzul dezake, adibidez, erregistro bat sortu ezin bada. Hutsunea pasa dezakezu honi, Errorseta kasu horietan errore-informazio egokia itzultzen du. Datu-iturri berean datu-funtzioak geroago erabiltzeak errore-informazio hori ezabatzen du.

Errorerik ez badago, itzultzen duen Errors taula hutsik egongo da eta IsEmpty funtzioarekin probatu ahal izango da.

Sintaxia

Errors( DataSource [, Record ] )

  • DataSource – Beharrezkoa. Datu-iturburua erroreak itzuli nahi dituzu.
  • Grabatu – Aukerakoa. Erregistro zehatz bat zeinarentzat erroreak itzuli nahi duzun. Argudio hau zehazten ez baduzu, funtzioak erroreak itzultzen ditu datu-iturburu osorako.

Adibideak

Urratsez urrats

Adibide honetarako, IceCream datu-iturriarekin lan egingo dugu, Power Apps-ek gatazkak detektatzen saiatuko den datu-iturburua:

Izozkia.

Oharra

Power Apps-ek ez du Dataverse-ren tauletan aldaketak egiteko gatazkak detektatzen saiatzen.

Aplikazioaren bidez, erabiltzaileak txokolatearen erregistroa datuak sartzeko inprimakian kargatzen du eta, ondoren, balioa aldatzen du Kopurua 90era. Landu beharreko erregistroa erregistroan kokatzen da testuinguru-aldagaiaEditRecord:

  • EguneratuContext( { Editatu Erregistroa: LookUp( Izozkia, Zaporea = "Txokolatea") } )

datu-iturburu-en aldaketa hau egiteko, Patch funtzioa erabiltzen da:

  • Adabakia (IceCream, EditRecord, Gallery.Updates)

Gallery.Updates-ek{ Quantity: 90 } () balioztatzen du, Quantity propietatea soilik aldatu baita.

Zoritxarrez, aurretik Patch funtzioa deitu da, beste norbaitek aldatzen du Kopurua Txokolatea 80rako. Gatazkak detektatzeko onartutako datu-iturburua denez, Power Apps-ek hori detektatuko du eta ez du gatazkan dagoen aldaketa gertatzea baimenduko. Egoera hau formula honekin egiaztatu dezakezu:

  • IsEmpty( Errors( IceCream, EditRecord ) )

Horrek false itzultzen du, funtzioak taula hau itzultzen duelakoErrors:

Erregistroa Zutabea Mezua Errorea
{ Zaporea: "Txokolatea", Kantitatea: 100 } hutsik "Beste erabiltzaile batek aldatu nahi dituzun erregistroak aldatu ditu. Berriro kargatu erregistroa eta saiatu berriro". ErrorKind.Conflict

Erabiltzaileari akats hau erakusteko formularioan etiketa bat jar dezakezu.

  • Errorea erakusteko, ezarri etiketa Testua formula honen jabetza:
    Label.Text = First(Errors( IceCream, EditRecord )). Mezua

Gehitu dezakezu Birkargatu inprimakiaren botoia, erabiltzaileak gatazka modu eraginkorrean konpondu dezan.

  • Gatazka gertatu denean soilik botoia erakusteko, ezarri botoia Visible formula honen jabetza:
    ! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) )
  • Erabiltzaileak botoia hautatzen duen aldaketa atzera botatzeko, ezarri OnSelect propietatea formula honetan:
    ReloadButton.OnSelect = Berrezarri (Izozkia, EditatuErregistroa)