Az Errors függvény a PowerApps szolgáltatásbanErrors function in PowerApps

Tájékoztatást nyújt az adatforrások korábban végrehajtott módosításaival kapcsolatos hibákról.Provides error information for previous changes to a data source.

ÁttekintésOverview

Hibák általában az adatforrások rekordjainak módosításakor fordulnak elő.Errors can happen when a record of a data source is changed. Számos különböző okuk lehet, többek között a hálózat kimaradása, a megfelelő jogosultságok hiánya és szerkesztési ütközések.Many causes are possible, including network outages, inadequate permissions, and edit conflicts.

A Patch függvény és a többi adatfüggvény közvetlenül nem ad vissza hibákat.The Patch function and other data functions don't directly return errors. Ehelyett a műveletük végeredményét adják vissza.Instead they return the result of their operation. Az adatfüggvények végrehajtása után az Errors függvénnyel olvashatja be az esetleges hibák részleteit.After a data function executes, you can use the Errors function to obtain the details of any errors. Ha ellenőrizni szeretné, hogy előfordultak-e hibák, használja az [IsEmpty] függvényt az IsEmpty ( Errors (...) ) képletben.You can check for the existence of errors with the [IsEmpty] function in the formula IsEmpty( Errors ( ... ) ).

Bizonyos hibák már előfordulásuk előtt is elkerülhetők a Validate és a DataSourceInfo függvény használatával.You can avoid some errors before they happen by using the Validate and DataSourceInfo functions. A hibák kezelésével és elkerülésével kapcsolatban az adatforrások kezelésével kapcsolatos témakörben találhat további javaslatokat.See working with data sources for more suggestions on how to work with and avoid errors.

LeírásDescription

Az Errors függvény egy hibákból álló táblát ad vissza, amely a következő oszlopokat tartalmazza:The Errors function returns a table of errors that contains the following columns:

  • Record (Rekord).Record. Az adatforrás azon rekordja, amelyben a hiba jelentkezett.The record in the data source that had the error. Ha a hiba egy rekord létrehozása közben történt, ez az oszlop üres marad.If the error occurred during the creation of a record, this column will be blank.
  • Column (Oszlop).Column. A hibát okozó oszlop, ha a hiba egyetlen oszlopnak tulajdonítható.The column that caused the error, if the error can be attributed to a single column. Ellenkező esetben ez a mező üres lesz.If not, this will be blank.
  • Message (Üzenet).Message. A hiba leírása.A description of the error. Ez a hibaüzenet megjeleníthető a végfelhasználó számára.This error string can be displayed for the end user. Vegye figyelembe, hogy ezt az üzenetet valószínűleg az adatforrás generálja, ezért előfordulhat, hogy hosszú, és olyan nyers oszlopneveket tartalmaz, melyek a felhasználó számára semmit sem jelentenek.Be aware that this message may be generated by the data source and could be long and contain raw column names that may not have any meaning to the user.
  • Error (Hiba).Error. Egy hibakód, amely képletekben használható a hiba feloldásához:An error code that can be used in formulas to help resolve the error:
ErrorKind (Hibatípus)ErrorKind LeírásDescription
ErrorKind.ConflictErrorKind.Conflict Egy másik módosítást hajtottak végre ugyanazon a rekordon, ami módosításütközést eredményezett.Another change was made to the same record, resulting in a change conflict. Töltse be újra rekordot a Refresh függvénnyel, és próbálja meg újból végrehajtani a módosítást.Use the Refresh function to reload the record and try the change again.
ErrorKind.ConstraintViolationErrorKind.ConstraintViolation Egy vagy több megszorítás meg lett sértve.One or more constraints have been violated.
ErrorKind.CreatePermissionErrorKind.CreatePermission Az aktuális felhasználó megpróbált létrehozni egy rekordot, de nem rendelkezik a rekordok létrehozásához szükséges jogosultságokkal.An attempt was made to create a record, and the current user doesn't have permission to create records.
ErrorKind.DeletePermissionErrorKind.DeletePermission Az aktuális felhasználó megpróbált törölni egy rekordot, de nem rendelkezik a rekordok törléséhez szükséges jogosultságokkal.An attempt was made to delete a record, and the current user doesn't have permission to delete records.
ErrorKind.EditPermissionErrorKind.EditPermission Az aktuális felhasználó megpróbált szerkeszteni egy rekordot, de nem rendelkezik a rekordok szerkesztéséhez szükséges jogosultságokkal.An attempt was made to edit a record, and the current user doesn't have permission to edit records.
ErrorKind.GeneratedValueErrorKind.GeneratedValue A felhasználó megpróbált módosítani egy olyan oszlopot, amelyet az adatforrás generál automatikusan.An attempt was made to change a column that the data source generates automatically.
ErrorKind.MissingRequiredErrorKind.MissingRequired Az egyik szükséges oszlop értéke hiányzik a rekordból.The value for a required column is missing from the record.
ErrorKind.NoneErrorKind.None Nincs hiba.There is no error.
ErrorKind.NotFoundErrorKind.NotFound A felhasználó megpróbált törölni vagy szerkeszteni egy rekordot, de a rekordot nem találta a rendszer.An attempt was made to edit or delete a record, but the record couldn't be found. Lehetséges, hogy egy másik felhasználó módosította a rekordot.Another user may have changed the record.
ErrorKind.ReadOnlyValueErrorKind.ReadOnlyValue A felhasználó megpróbált módosítani egy csak olvasható oszlopot.An attempt was made to change a column that's read only.
ErrorKind.SyncErrorKind.Sync Az adatforrás küldött hibaüzenetet.An error was reported by the data source. Ha további információkra van szüksége, ellenőrizze a Message oszlopot.Check the Message column for more information.
ErrorKind.UnknownErrorKind.Unknown Ismeretlen típusú hiba történt.There was an error, but of an unknown kind.
ErrorKind.ValidationErrorKind.Validation Általános érvényesítési probléma merült fel, amely egyik hibatípusba sem volt besorolható.There was a general validation issue detected, that did not fit one of the other kinds.

A hibák a teljes adatforrásra, illetve a függvény Rekord argumentumának megadása esetén egy bizonyos sorra vonatkozóan is visszaadhatók.Errors can be returned for the entire data source, or for only a selected row by providing the Record argument to the function.

Előfordulhat, hogy a Patch vagy egy másik adatfüggvény üres értéket ad vissza, ha például egy rekord nem hozható létre.Patch or another data function may return a blank value if, for example, a record couldn't be created. Ha az Errors függvény végrehajtásához üres értéket ad meg, ilyen esetekben a megfelelő hibainformációkat adja vissza.You can pass blank to Errors, and it will return appropriate error information in these cases. Az adatfüggvények ugyanazon az adatforráson való későbbi használatakor a rendszer törli ezeket a hibainformációkat.Subsequent use of data functions on the same data source will clear this error information.

Ha nincsenek hibák, az Errors által visszaadott tábla üres lesz, amit ellenőrizni lehet az IsEmpty függvénnyel.If there are no errors, the table that Errors returns will be empty and can be tested with the IsEmpty function.

SzintaxisSyntax

Errors( Adatforrás [, Rekord] )Errors( DataSource [, Record ] )

  • Adatforrás – kötelező.DataSource – Required. Annak az adatforrásnak a neve, amelyre vonatkozóan be szeretné olvasni a hibákat.The data source for which you want to return errors.
  • Rekord – nem kötelező.Record – Optional. Az a rekord, amelyre vonatkozóan be szeretné olvasni a hibákat.A specific record for which you want to return errors. Ha ez az argumentum nincs megadva, a függvény a teljes adatforrásra vonatkozóan adja vissza a hibákat.If you don't specify this argument, the function returns errors for the entire data source.

PéldákExamples

Lépésről lépésreStep by Step

Ebben a példában a Jégkrém adatforrással fogunk dolgozni:For this example, we'll be working with the IceCream data source:

Egy felhasználó az alkalmazásban betölti a Csokoládé rekordot egy adatbeviteli űrlapra, és a Mennyiség értékét 90-re módosítja.Through the app, a user loads the Chocolate record into a data-entry form and then changes the value of Quantity to 90. A rendszer az EditRecord (Szerkesztett rekord) környezeti változóban helyezi el a kezelendő rekordot:The record to be worked with is placed in the context variable EditRecord:

  • UpdateContext ( {EditRecord: First ( Filter ( Jégkrém, Íz = "Csokoládé" ) ) } )UpdateContext( { EditRecord: First( Filter( IceCream, Flavor = "Chocolate" ) ) } )

Ez a módosítás a Patch függvénnyel végezhető el az adatforrásban:To make this change in the data source, the Patch function is used:

  • Patch ( Jégkrém, EditRecord, Gallery.Updates )Patch( IceCream, EditRecord, Gallery.Updates )

ahol a Gallery.Updates kiértékelt értéke { Mennyiség: 90 }, mivel csak a Mennyiség tulajdonság módosult.where Gallery.Updates evaluates to { Quantity: 90 }, since only the Quantity property has been modified.

Sajnos azonban közvetlenül a Patch függvény hívása előtt valaki más is módosította a Csokoládéhoz tartozó Mennyiség tulajdonságot 80-ra.Unfortunately, just before the Patch function was invoked, somebody else modifies the Quantity for Chocolate to 80. A PowerApps észlelni fogja ezt, és nem engedélyezi az ütköző módosítás végrehajtását.PowerApps will detect this and not allow the conflicting change to occur. Az alábbi képlettel ellenőrizhető, hogy fennáll-e ez a helyzet:You can check for this situation with the formula:

  • IsEmpty ( Errors( Jégkrém, EditRecord ) )IsEmpty( Errors( IceCream, EditRecord ) )

amely false (hamis) értéket fog visszaadni, mert az Errors függvény az alábbi táblázatot adta vissza:which returns false, because the Errors function returned the following table:

RecordRecord ColumnColumn ÜzenetMessage HibaError
{ Íz: "Csokoládé", Mennyiség: 100 }{ Flavor: "Chocolate", Quantity: 100 } üresblank „Egy másik felhasználó módosította a rekordot, amelyet módosítani próbál."Another user has modified the record that you're trying to modify. Töltse be újra a rekordot, és próbálkozzon újra.”Please reload the record and try again." ErrorKind.ConflictErrorKind.Conflict

Elhelyezhet egy feliratot az űrlapon ahhoz, hogy jelezze a hibát a felhasználó számára.You can place a label on the form to show this error to the user.

  • A hiba megjelenítéséhez a felirat Text (Szöveg) tulajdonságát állítsa be a következő képletre:To show the error, set the label's Text property to this formula:
    Label.Text = First(Errors( IceCream, EditRecord )).MessageLabel.Text = First(Errors( IceCream, EditRecord )).Message

Egy Újratöltés gombot is elhelyezhet a lapon, hogy a felhasználó hatékonyan feloldhassa az ütközést.You can also add a Reload button on the form, so that the user can efficiently resolve the conflict.

  • Ha azt szeretné, hogy a rendszer csak akkor jelenítse meg a gombot, ha ütközést észlel, állítsa a gomb Visible (Látható) tulajdonságát a következő képletre:To show the button only when a conflict has occurred, set the button's Visible property to this formula:
    !IsEmpty( Lookup( Errors( Jégkrém, EditRecord ), Error = ErrorKind.Conflict ) )!IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) )
  • Ha azt szeretné, hogy a gomb kiválasztásakor a rendszer visszaállítsa a módosítást, állítsa annak OnSelect (Kijelöléskor) tulajdonságát a következő képletre:To revert the change which the user selects the button, set its OnSelect property to this formula:
    ReloadButton.OnSelect = Revert( Jégkrém, EditRecord )ReloadButton.OnSelect = Revert( IceCream, EditRecord )