הפונקציה Errors
חל על: אפליקציות קנבס אפליקציות מונחות דגמים
מספקת מידע בנוגע לשגיאות עבור שינויים קודמים שבוצעו במקור נתונים.
מבט כולל
שגיאות עשויות להתרחש בעת שינוי רשומה של מקור נתונים. קיימות סיבות רבות לכך, כולל בעיות ברשת, הרשאות לא מספיקות והתנגשויות עריכה.
הפונקציות שמשנות נתונים במקורות נתונים, כגון תיקון, איסוף, הסרה, RemoveIf, עדכון, UpdateIf, ו-SubmitForm דיווחו על שגיאות בשתי דרכים:
- כל אחת מהפונקציות הללו תחזיר ערך שגיאה כתוצאה מהפעולה. אפשר לזהות שגיאות ב-IsError ולהחליף או להעלים ב-IfError וב-App.OnError כרגיל. למידע נוסף, ראה טיפול בשגיאות.
- לאחר הפעולה, הפונקציה שגיאות תחזיר גם את השגיאות עבור פעולות קודמות. זה יכול להיות שימושי להצגת הודעת השגיאה במסך טופס ללא צורך ללכוד את השגיאה במשתנה מצב.
ניתן למנוע שגיאות מסוימות לפני התרחשותן באמצעות הפונקציות Validate ו- DataSourceInfo. ראה עבודה עם מקורות נתונים לקבלת הצעות נוספות לעבודה עם טעויות ולהימנעות מהן.
תיאור
הפונקציה Errors מחזירה טבלה של שגיאות שמכילה את העמודות הבאות:
- רְשׁוּמָה. הרשומה במקור הנתונים שכוללת את השגיאה. אם השגיאה התרחשה במהלך יצירת רשומה, עמודה זו תהיה blank.
- עַמוּדָה. העמודה שגרמה לשגיאה, אם ניתן לייחס את השגיאה לעמודה בודדת. אם לא, היא תהיה blank.
- הוֹדָעָה. תיאור השגיאה. ניתן להציג מחרוזת שגיאה זו עבור משתמש הקצה. שים לב שהודעה זו עשויה להיווצר על-ידי מקור הנתונים, והיא עשויה להיות ארוכה ולהכיל שמות עמודות גולמיים שאין להם משמעות עבור המשתמש.
- שְׁגִיאָה. קוד שגיאה שניתן להשתמש בו בנוסחאות כדי לסייע בפתרון השגיאה:
ErrorKind | תיאור |
---|---|
ErrorKind.Conflict | שינוי נוסף בוצע באותה רשומה, כך שנגרמה התנגשות שינויים. השתמש בפונקציה Refresh כדי לטעון מחדש את הרשומה ולנסות שוב את השינוי. |
ErrorKind.ConstraintViolation | אירעה הפרה של אילוץ אחד או יותר. |
ErrorKind.CreatePermission | נעשה ניסיון ליצור רשומה, ולמשתמש הנוכחי אין הרשאה ליצור רשומות. |
ErrorKind.DeletePermission | נעשה ניסיון למחוק רשומה, ולמשתמש הנוכחי אין הרשאה למחוק רשומות. |
ErrorKind.EditPermission | נעשה ניסיון לערוך רשומה, ולמשתמש הנוכחי אין הרשאה לערוך רשומות. |
ErrorKind.GeneratedValue | נעשה ניסיון לשנות עמודה אשר מקור הנתונים יוצר באופן אוטומטי. |
ErrorKind.MissingRequired | ערך עבור עמודה נדרשת חסר ברשומה. |
ErrorKind.None | אין שגיאה. |
ErrorKind.NotFound | נעשה ניסיון לערוך או למחוק רשומה, אך הרשומה לא נמצאה. ייתכן שמשתמש אחר שינה את הרשומה. |
ErrorKind.ReadOnlyValue | נעשה ניסיון לשנות עמודה שמוגדרת לקריאה בלבד. |
ErrorKind.Sync | מקור הנתונים דיווח על שגיאה. עיין בעמודה Message לקבלת מידע נוסף. |
ErrorKind.Unknown | אירעה שגיאה, אך מסוג לא ידוע. |
ErrorKind.Validation | זוהתה בעיית אימות כללית שלא התאימה לאחד מהסוגים האחרים. |
תוכל להחזיר שגיאות עבור מקור הנתונים כולו, או עבור שורה נבחרת בלבד, אם תספק לפונקציה את הארגומנט Record.
לְהַטלִיא או פונקציית נתונים אחרת עשויה להחזיר א רֵיק ערך אם, למשל, לא ניתן היה ליצור רשומה. ניתן להעביר את blank לפונקציה Errors, והיא תחזיר את פרטי השגיאה המתאימים במקרים אלה. שימוש עוקב בפונקציות נתונים על אותו מקור נתונים ינקה את פרטי השגיאה הללו.
אם אין שגיאות, הטבלה שתוחזר על-ידי הפונקציה Errors תהיה ריקה, ותוכל לבדוק אותה באמצעות הפונקציה IsEmpty.
תחביר
שגיאות ( מקור נתונים [, רְשׁוּמָה ] )
- DataSource – חובה. מקור הנתונים שעבורו ברצונך להחזיר שגיאות.
- רְשׁוּמָה – אופציונלי. רשומה ספציפית שעבורה ברצונך להחזיר שגיאות. אם לא תציין ארגומנט זה, הפונקציה תחזיר שגיאות עבור מקור הנתונים כולו.
דוגמאות
שלב אחר שלב
עבור דוגמה זו, נעבוד עם מקור הנתונים IceCream:
באמצעות היישום, המשתמש טוען את הרשומה Chocolate לטופס הזנת נתונים ולאחר מכן משנה את הערך של Quantity ל- 90. הרשומה שאיתה הוא יעבוד ממוקמת במשתנה ההקשרEditRecord:
- UpdateContext( { EditRecord: LookUp( IceCream, Flavor = "שוקולד") } )
כדי לבצע שינוי זה במקור הנתונים, נעשה שימוש בפונקציה Patch:
- תיקון ( IceCream, EditRecord, Gallery.Updates )
כאשר Gallery.Updates מוערך ל- { Quantity: 90 }, מכיוון שרק המשתנה Quantity עבר שינוי.
למרבה הצער, בדיוק לפני הפעלת הפונקציה Patch, מישהו אחר שינה את Quantity עבור Chocolate ל- 80. Power Apps יזהה זאת ולא יאפשר לשינוי המתנגש להתרחש. תוכל לבדוק אם מצב זה מתרחש באמצעות הנוסחה:
- IsEmpty( שגיאות ( IceCream, EditRecord ) )
אשר מחזירה false, מכיוון שהפונקציה Errors החזירה את הטבלה הבאה:
רשומה | עמודה | הודעה | שגיאה |
---|---|---|---|
{ Flavor: "Chocolate", Quantity: 100 } | רֵיק | "משתמש אחר שינה את הרשומה שאתה מנסה לשנות. טען מחדש את הרשומה ונסה שוב." | ErrorKind.Conflict |
ניתן למקם תווית בטופס כדי להציג שגיאה זו למשתמש.
- כדי להציג את השגיאה, קבע את המאפיין Text של התווית לנוסחה הבאה:
Label.Text = First(Errors( IceCream, EditRecord )). הודעה
ניתן גם להוסיף לחצן טען מחדש לטופס, כך שהמשתמש יוכל לפתור את ההתנגשות באופן יעיל.
- כדי להציג את הלחצן רק כאשר מתרחשת התנגשות, קבע את המאפיין Visible של הלחצן לנוסחה הבאה:
!IsEmpty( Lookup( Errors( IceCream, EditRecord), Error = ErrorKind.Conflict)) - כדי לבטל את השינוי כשהמשתמש בוחר את הלחצן, הגדר את המאפיין OnSelect שלו לנוסחה הבאה:
ReloadButton.OnSelect = לחזור( IceCream, EditRecord )