Делите путем


Errors Функцију

Односи се на: Цанвас апликације - Апликације засноване на моделу

Пружа информације о грешци за претходне промене у извору података.

Преглед

Errors може се десити када се промени запис о извору података. Могући су многи узроци, укључујући прекид мреже, неадекватне дозволе и сукобе око уређивања.

Функције које мењају податке у изворима података, као што су Patch, Collect, Remove, RemoveIf, Update, UpdateIf и SubmitForm пријављују грешке на два начина:

  • Свака од ових функција враћа вредност грешке као резултат операције. Errors може се детектовати помоћу ИсЕррор и заменити или потиснути са ИфЕррор и Апп.ОнЕррор као и обично. За више информација, погледајте чланак Руковање грешкама.
  • Након операције, Errors функција ће такође вратити грешке за претходне операције. То може бити корисно за приказивање поруке о грешци на екрану обрасца без потребе за снимањем грешке у променљивој стања.

Неке грешке можете избећи пре него што се оне појаве коришћењем функција Validate и DataSourceInfo. Погледајте рад са изворима података за више предлога о томе како радити и избегавати грешке.

Опис

Функција Errors враћа табелу грешака која садржи следеће колоне :

  • Запис. Запис у извору података који је имао грешку. Ако је дошло до грешке током креирања записа, ова колона је празна .
  • Колоне. Колона која је изазвала грешку, ако се грешка може приписати једној колони. Ако не, празно је .
  • Поруку. Опис грешке. Ова ниска грешака се може приказати крајњем кориснику. Ова порука може бити генерисана од стране извора података и може бити дугачка и садржи сирова имена колона која можда немају никакво значење за корисника.
  • Грешка. Код грешке који се може користити у формулама за решавање грешке:
ErrorKind Опис
ErrorKind.Conflict Друга промена је начињена у истом запису, што је резултирало конфликтом промене. Користите функцију Refresh да бисте поново учитали запис, па поново покушајте да обавите промену.
ErrorKind.ConstraintViolation Једно или више ограничења је прекршено.
ErrorKind.CreatePermission Начињен је покушај креирања записа, а тренутни корисник нема дозволу за креирање записа.
ErrorKind.DeletePermission Начињен је покушај брисања записа, а тренутни корисник нема дозволу за брисање записа.
ErrorKind.EditPermission Начињен је покушај уређивања записа, а тренутни корисник нема дозволу за уређивање записа.
ErrorKind.GeneratedValue Начињен је покушај да се промени колона коју извор података аутоматски генерише.
ErrorKind.MissingRequired Вредност за потребну колону недостаје из записа.
ErrorKind.None Нема грешке.
ErrorKind.NotFound Начињен је покушај уређивања или брисања записа, али запис није пронађен. Други корисник је можда променио запис.
ErrorKind.ReadOnlyValue Начињен је покушај промене колоне која је само за читање.
ErrorKind.Sync Грешка је пријављена од стране извора података. Проверите колону Порука за више информација.
ErrorKind.Unknown Дошло је до грешке, али непознате врсте.
ErrorKind.Validation Откривен је општи проблем валидације, који се није уклапао у једну од других врста.

Errors може бити враћен за цео извор података, или само за изабрани ред обезбеђивањем аргумента Рецорд функцији.

Закрпа или нека друга функција података може да врати празну вредност ако, на пример, запис не може бити креиран. Можете проследити празно на Errors, и он враћа одговарајуће информације о грешци у овим случајевима. Накнадна употреба функција података на истом извору података брише ове информације о грешци.

Ако нема грешака, табела која Errors се враћа ће бити празна и може се тестирати са функцијом ИсЕмптy .

Синтакса

Errors( ДатаСоурце [, Запис] )

  • ДатаСоурце – Обавезно. Извор података за који желите да враћа грешке.
  • Запис – Опционо. Одређени запис за који желите да враћа грешке. Ако не наведете овај аргумент, функција враћа грешке за цео извор података.

Примери

Корак по корак

За овај пример, радићемо са извором података ИцеЦреам , извором података за који ће Повер Аппс покушати да открије конфликте:

Сладолед.

Белешка

Повер Аппс не покушава да открије конфликте за промене у Датаверсе табелама.

Кроз апликацију корисник учитава запис Чоколада у обрасцу за унос података, а затим мења вредност Количина на 90. Запис са којим се ради смештен је у променљиву контекстаEditRecord:

  • UpdateContext( { EditRecord: LookUp( IceCream, Flavor = "Чоколада" ) } )

Да бисте извршили ову промену у извору података, функција Patch се користи:

  • Патцх ( ИцеЦреам, ЕдитРецорд, Галлерy.Упдатес )

Где се Галлерy.Упдатес процењује на { Qуантитy: 90 } , пошто је само својство Qуантитy модификовано.

На жалост, мало пре него што је функција Patch позвана, неко други модификује Количину за чоколаду на 80. Пошто је ово подржани извор података за откривање сукоба, Повер Аппс ће то открити и неће дозволити конфликтну промену. Можете проверити ову ситуацију помоћу формуле:

  • ИсЕмптy ( Errors( Сладолед, ЕдитРецорд ) )

Који враћа фалсе , јер је функција вратила Errors следећу табелу:

Запис Колона Порука Грешка
{ Укус: "Чоколада", Количина: 100 } Празно „Други корисник је изменио запис који покушавате да измените. Поново учитајте запис и покушајте поново. " ErrorKind.Conflict

На образац можете ставити ознаку која ће кориснику показати ову грешку.

  • Да бисте приказали грешку, подесите својство Текст ознаке на ову формулу:
    Лабел .Тект = Фирст( Errors( ИцеЦреам, ЕдитРецорд )). Поруку

Такође можете да додате дугме Учитај поново на образац, тако да корисник може ефикасно решити сукоб.

  • Да бисте дугме приказали само када се догодио сукоб, подесите својство Видљиво дугмета према овој формули:
    ! ИсЕмптy ( Лоокуп ( Errors( ИцеЦреам, ЕдитРецорд ), Еррор = ЕррорКинд.Цонфлицт ) )
  • Да вратите промену, коју корисник изабере дугме, подесите његову особину ОнСелецт на ову формулу:
    РелоадБуттон .ОнСелецт = Реверт( ИцеЦреам, ЕдитРецорд )