Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Modelem řízené aplikace
plátna
Poskytuje informace o chybách u předchozích změn zdroje dat.
Přehled
Errors může dojít při změně záznamu zdroje dat. Příčin může být řada, například výpadky sítě, nedostatečná oprávnění a konflikty úprav.
Funkce, které mění zdroje dat, jako Patch, Collect, Remove, RemoveIf, Update, UpdateIf a SubmitForm hlásí chyby dvěma způsoby:
- Každá z těchto funkcí vrátí chybovou hodnotu jako výsledek operace. Errors lze zjistit pomocí isError a nahradit nebo potlačit ifError a App.OnError jako obvykle. Další informace naleznete v článku Zpracování chyb.
- Po operaci Errors vrátí funkce také chyby pro předchozí operace. Může být užitečné pro zobrazení chybové zprávy na obrazovce formuláře, aniž by bylo nutné zachytit chybu ve stavové proměnné.
Některým chybám se dá vyhnout ještě před jejich vznikem pomocí funkcí Validate a DataSourceInfo. Další návrhy k tomu, jak pracovat s chybami a jak se jim vyhýbat, najdete v tématu o práci se zdroji dat.
Popis
Funkce Errors vrátí tabulku chyb, která obsahuje následující sloupce:
- Záznam. Záznam ve zdroji dat, který obsahuje chybu. Pokud k chybě došlo při vytváření záznamu, je tento sloupec prázdný.
- Sloupec. Sloupec, který způsobil chybu, pokud lze danou chybu přiřadit jednomu sloupci. Pokud ne, je to prázdné.
- Zpráva. Popis chyby. Tento text chyby se může zobrazovat koncovému uživateli. Tato zpráva může být generována zdrojem dat a může být dlouhá a obsahovat nezpracované názvy sloupců, které nemusí mít pro uživatele žádný význam.
- Chyba. Kód chyby, který je možné použít ve vzorcích, aby se usnadnilo vyřešení chyby:
| ErrorKind | Popis |
|---|---|
| ErrorKind.Conflict | Ve stejném záznamu se provedla jiná změna a výsledkem je konflikt změn. Pomocí funkce Refresh znovu načtěte záznam a zkuste provést danou změnu znovu. |
| ErrorKind.ConstraintViolation | Porušilo se jedno nebo více omezení. |
| ErrorKind.CreatePermission | Došlo k pokusu o vytvoření záznamu a aktuální uživatel nemá oprávnění k vytváření záznamů. |
| ErrorKind.DeletePermission | Došlo k pokusu o odstranění záznamu a aktuální uživatel nemá oprávnění k odstraňování záznamů. |
| ErrorKind.EditPermission | Došlo k pokusu o úpravy záznamu a aktuální uživatel nemá oprávnění k úpravám záznamů. |
| ErrorKind.GeneratedValue | Došlo k pokusu o změnu sloupce, který zdroj dat generuje automaticky. |
| ErrorKind.MissingRequired | Hodnota pro požadovaný sloupec v záznamu chybí. |
| ErrorKind.None | Není žádná chyba. |
| ErrorKind.NotFound | Došlo k pokusu o úpravy nebo odstranění záznamu, ale záznam se nenašel. Záznam mohl změnit jiný uživatel. |
| ErrorKind.ReadOnlyValue | Došlo k pokusu o změnu sloupce, který je jen pro čtení. |
| ErrorKind.Sync | Zdroj dat oznámil chybu. Další informace najdete ve sloupci Zpráva. |
| ErrorKind.Unknown | Došlo k chybě neznámého typu. |
| ErrorKind.Validation | Zjistil se obecný problém s ověřováním, který se nevejde do jednoho z ostatních typů. |
Errors lze vrátit pro celý zdroj dat nebo pouze pro vybraný řádek zadáním argumentu Záznam funkci.
Náplast nebo jiná datová funkce může vrátit a prázdný hodnotu, pokud například nelze vytvořit záznam. Do pole můžete předat prázdnouErrorshodnotu a v těchto případech vrátí příslušné informace o chybě. Následné použití datových funkcí ve stejném zdroji dat vymaže tyto informace o chybě.
Pokud nedojde k žádným chybám, bude tabulka, která Errors vrací, prázdná a je možné ji otestovat pomocí funkce IsEmpty .
Syntaxe
Errors( Zdroj dat [, Záznam ] )
- ZdrojDat – povinné. Zdroj dat, pro který chcete vrátit chyby.
- Záznam – Volitelné. Konkrétní záznam, pro který chcete vrátit chyby. Pokud nezadáte tento argument, funkce vrátí chyby pro celý zdroj dat.
Příklady
Podrobný postup
V tomto příkladu budeme pracovat se zdrojem dat IceCream , což je zdroj dat, pro který se Power Apps pokusí detekovat konflikty:
Poznámka:
Power Apps se nepokoušá detekovat konflikty pro změny tabulek Dataverse.
Uživatel načte prostřednictvím aplikace do formuláře pro vkládání dat záznam Chocolate a pak změní hodnotu Quantity na 90. Záznam, se kterým se má pracovat, se nachází v kontextové proměnnéEditRecord:
- UpdateContext( { EditRecord: LookUp( IceCream, Flavour = "Chocolate" ) } )
K provedení této změny ve zdroji dat se používá funkce Patch:
- Oprava (IceCream, EditRecord, Gallery.Updates)
Where Gallery.Updates se vyhodnotí jako { Quantity: 90 }, protože byla změněna pouze vlastnost Množství .
Bohužel zrovna před voláním funkce Patch někdo jiný změnil vlastnost Quantity pro záznam Chocolate na 80. Vzhledem k tomu, že se jedná o podporovaný zdroj dat pro detekci konfliktů, Služba Power Apps tuto chybu zjistí a nepovolí konfliktní změnu. Tuto situaci můžete vyhledat pomocí vzorce:
- IsEmpty( Errors( IceCream; EditRecord ) )
Vrátí hodnotu false, protože funkce vrátila Errors následující tabulku:
| Záznam | Sloupec | Zpráva | Chybové |
|---|---|---|---|
| { Flavor: "Chocolate"; Quantity: 100 } | prázdný | Another user has modified the record that you're trying to modify. Znovu načtěte záznam a zkuste to znovu." | ErrorKind.Conflict |
Můžete do formuláře umístit popisek, který zobrazí tuto chybu uživateli.
- Pokud chcete tuto chybu zobrazit, nastavte do vlastnosti Text tohoto popisku tento vzorec:
Label.Text = First(Errors( IceCream; EditRecord )). Zpráva
Můžete také do formuláře přidat tlačítko Načíst znovu, aby mohl uživatel tento konflikt účinně vyřešit.
- Pokud chcete toto tlačítko zobrazit jenom v případě, že došlo ke konfliktu, nastavte do vlastnosti Visible tohoto tlačítka tento vzorec:
! IsEmpty( Lookup( Errors( IceCream; EditRecord ); Error = ErrorKind.Conflict ) ) - Pokud chcete vrátit změnu, kterou uživatel vybere, nastavte její vlastnost OnSelect na tento vzorec:
ReloadButton.OnSelect = vrátit se k uloženému( IceCream, EditRecord )