שתף באמצעות


Errors פונקציה

חל על: אפליקציות 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 )