הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
חל על: אפליקציות Canvas
המבוססות על מודלים
מספקת מידע בנוגע לשגיאות עבור שינויים קודמים שבוצעו במקור נתונים.
מבט כולל
Errors עשוי להתרחש כאשר רשומה של מקור נתונים משתנה. קיימות סיבות רבות לכך, כולל בעיות ברשת, הרשאות לא מספיקות והתנגשויות עריכה.
הפונקציות שמשנות נתונים במקורות נתונים, כגון תיקון, איסוף, הסרה, RemoveIf, עדכון, 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 | מקור הנתונים דיווח על שגיאה. עיין בעמודה Message לקבלת מידע נוסף. |
| ErrorKind.Unknown | אירעה שגיאה, אך מסוג לא ידוע. |
| ErrorKind.Validation | זוהתה בעיית אימות כללית, שלא התאיתה לאחד מהסוגים האחרים. |
Errors ניתן להחזיר עבור מקור הנתונים כולו, או עבור שורה שנבחרה בלבד על-ידי מתן הארגומנט Record לפונקציה.
לְהַטלִיא או פונקציית נתונים אחרת עשויה להחזיר א רֵיק ערך אם, למשל, לא ניתן היה ליצור רשומה. באפשרותך להעביר נתונים ריקים ל Errors- , והוא מחזיר פרטי שגיאה מתאימים במקרים אלה. השימוש הבא בפונקציות נתונים באותו מקור נתונים מנקה מידע שגיאה זה.
אם אין שגיאות, הטבלה שתחזיר Errors תהיה ריקה ובאפשרותך לבדוק אותה עם הפונקציה IsEmpty .
תחביר
Errors( DataSource [, Record ] )
- DataSource – נדרש. מקור הנתונים שעבורו ברצונך להחזיר שגיאות.
- רְשׁוּמָה – אופציונלי. רשומה ספציפית שעבורה ברצונך להחזיר שגיאות. אם לא תציין ארגומנט זה, הפונקציה תחזיר שגיאות עבור מקור הנתונים כולו.
דוגמאות
שלב אחר שלב
בדוגמה זו, אנו פועלים עם מקור הנתונים IceCream , מקור נתונים שעבורו Power Apps ינסה לזהות התנגשויות:
הערה
Power Apps אינו מנסה לזהות התנגשויות עבור שינויים בטבלאות Dataverse.
באמצעות היישום, המשתמש טוען את הרשומה 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( Errors( IceCream, EditRecord )
פעולה זו מחזירה ערך False, מכיוון שהפונקציה Errors החזירה את הטבלה הבאה:
| רשומה | עמודה | הודעה | שגיאה |
|---|---|---|---|
| { Flavor: "Chocolate", Quantity: 100 } | רֵיק | "משתמש אחר שינה את הרשומה שאתה מנסה לשנות. טען מחדש את הרשומה ונסה שוב." | ErrorKind.Conflict |
ניתן למקם תווית בטופס כדי להציג שגיאה זו למשתמש.
- כדי להציג את השגיאה, קבע את המאפיין Text של התווית לנוסחה הבאה:
Label.Text = First(Errors( IceCream, EditRecord )). הודעה
ניתן גם להוסיף לחצן טען מחדש לטופס, כך שהמשתמש יוכל לפתור את ההתנגשות באופן יעיל.
- כדי להציג את הלחצן רק כאשר מתרחשת התנגשות, קבע את המאפיין Visible של הלחצן לנוסחה הבאה:
! IsEmpty( בדיקת מידע( Errors( IceCream, EditRecord ), Error = ErrorKind.Conflict ) - כדי להחזיר את השינוי, שהמשתמש בוחר בלחצן, הגדר את המאפיין OnSelect שלו לנוסחה זו:
ReloadButton.OnSelect = לחזור( IceCream, EditRecord )