Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Келесілерге қолданылады: Кенеп бағдарламалары
Үлгіге негізделген бағдарламалар
Деректер көзіне енгізілген алдыңғы өзгертулер үшін қате туралы ақпаратты қамтамасыз етеді.
Шолу
ErrorsДеректер көзі өзгерген кезде орын алуы мүмкін. Көп себептер мүмкін, соның ішіне желі үзілістері, тиісті емес рұқсаттар және өңдеу қайшылықтары.
Patch, Collect, Remove, RemoveIf, Update, UpdateIf және SubmitForm сияқты деректер көздеріндегі деректерді өзгертетін функциялар қателер туралы екі жолмен хабарлайды:
- Осы функциялардың әрқайсысы операция нәтижесінде қате мәнін қайтарады. Errors IsError көмегімен анықталуы мүмкін және әдеттегідей IfError және App.OnError-мен ауыстырылуы немесе басуы мүмкін. Қосымша ақпарат алу үшін Қатені өңдеу бөлімін қараңыз.
- Операциядан 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 Функцияға Жазба аргументін беру арқылы бүкіл деректер көзі үшін немесе тек таңдалған жол үшін қайтаруға болады.
Патч немесе басқа деректер функциясы a қайтаруы мүмкін бос мән, мысалы, жазба жасау мүмкін болмаса. Бос мәнді , деп Errorsжібере аласыз және ол осы жағдайларда тиісті қате ақпаратын қайтарады. Сол деректер көзіндегі деректер функцияларын кейіннен пайдалану осы қате ақпаратын тазартады.
Егер қателер болмаса, қайтаратын кесте Errorsбос болады және оны IsEmpty функциясымен тексеруге болады.
Синтаксис
Errors( Деректер көзі [, Жазба ] )
- Деректер көзі – Міндетті. Қателерді қайтару керек деректер көзі.
- Жазба – Қосымша. Қателерді қайтару керек нақты жазба. Бұл аргументті көрсетпесеңіз, бұл функция бүкіл деректер көзі үшін қателерді қайтарады.
Мысалдар
Қадам бойынша
Бұл мысал үшін біз Power Apps қайшылықтарды анықтауға тырысатын деректер көзі болып табылатын IceCream деректер көзімен жұмыс істейміз:
Ескертпе
Power Apps бағдарламасы Dataverse кестелеріндегі өзгерістер үшін қайшылықтарды анықтауға тырыспайды.
Бағдарлама арқылы пайдалнаушы деректерді енгізу пішініне «Шоколад» жазбасын жүктейді, содан кейін Мөлшер мәнін 90 деп өзгертеді. Жұмыс істейтін жазба мәтін айнымалысындаEditRecord орналастырылады:
- Жаңарту мәтінмәні( { Жазбаны өңдеу: іздеу( балмұздақ, дәм = "шоколад" ) } )
Деректер көзінде осы өзгерісті енгізу үшін Patch функциясы пайдаланылады:
- Патч (IceCream, EditRecord, Gallery.Updates)
Мұндағы Gallery.Updates{ Саны: 90 } мәніне есептеледі, өйткені тек Сан сипаты өзгертілген.
Өкінішке орай, тура Patch функциясы шақырылмай тұрып, басқа біреу шоколадтың Мөлшер мәнін 80 деп өзгерткен. Бұл қақтығысты анықтауға арналған қолдау көрсетілетін деректер көзі болғандықтан, Power Apps мұны анықтайды және қайшылықты өзгерістің пайда болуына жол бермейді. Бұл жағдайды мына формула арқылы тексеруге болады:
- IsEmpty( Errors( Балмұздақ, EditRecord ) )
Бұл false функциясын қайтарады, өйткені функция Errors келесі кестені қайтарады:
| Жазба | Баған | Хабарлама | Қате |
|---|---|---|---|
| { Түрі: "Шоколад", Мөлшер: 100 } | бос | "Басқа пайдаланушы сіз өзгертуге әрекеттеніп жатқан жазбаны өзгертті. Жазбаны қайта жүктеп, қайтадан көріңіз ». | ErrorKind.Conflict |
Бұл қатені пайдаланушыға көрсету үшін пішінге белгі қоюға болады.
- Қатені көрсету үшін белгінің Мәтін сипатын мына формулаға орнатыңыз:
Label.Text = First(Errors( IceCream, EditRecord )). РаT�
Сондай-ақ пішінде Қайта жүктеу түймешігін қосуға болады, осылайша пайдаланушы қайшылықты тиімді шеше алады.
- Түймешікті қайшылық орын алғанда ғана көрсету үшін түймешіктің Көрінеді сипатын мына формулаға орнатыңыз:
! IsEmpty( Lookup( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) ) - Пайдаланушы түймешігін таңдаған өзгертуді қайтару үшін оның OnSelect сипатын мына формулаға орнатыңыз:
ReloadButton.OnSelect = Қайтару( IceCream, EditRecord )