אובייקט App ב- Power Apps

חל על: אפליקציות קנבס

קבל מידע על האפליקציה הפועלת כעת ושלוט באופן הפעולה של האפליקציה.

תיאור

כמו פקד, אובייקט היישום כולל מאפיינים שמזהים איזה מסך מוצג ומציגים בקשה לשמירת שינויים כדי שלא תאבד אותם. לכל יישום יש אובייקט יישום.

כתוב נוסחאות עבור מאפיינים מסוימים של אובייקט היישום . בראש החלונית תצוגת עץ, בחר באובייקט יישום כפי שהיית עושה עם כל פקד או מסך אחר. כדי להציג או לערוך אחד ממאפיינים האובייקט, בחר אותו ברשימה הנפתחת מימין ל שורת הנוסחאות.

צילום מסך של אובייקט היישום שנבחר בחלונית תצוגת העץ. חלונית המאפיינים גלויה.

מאמר זה מתאר את מאפייני אובייקט היישום הבאים:

  • ActiveScreen – המסך המוצג כעת.
  • BackEnabled – האופן שבו האפליקציה מגיבה למחוות 'הקודם' של המכשיר.
  • ConfirmExit ו- ConfirmExitMessage – מזהירים את המשתמש לפני סגירת היישום.
  • מחרוזת חיבור – הגדר רישום של 'תובנות יישום'.
  • נוסחאות – הגדר נוסחאות בעלות שם, פונקציות המוגדרות על-ידי המשתמש וסוגים המוגדרים על-ידי המשתמש.
  • OnError – טיפול בשגיאות באופן כללי.
  • OnStart – הפעל לוגיקה בעת הפעלת היישום.
  • StartScreen – הגדר את המסך המוצג ראשון כאשר האפליקציה נטענת.
  • StudioVersion – החזר את גירסת Power Apps Studio שפרסמה את האפליקציה.

המאפיין ActiveScreen

המאפיין ActiveScreen מזהה את המסך המוצג כעת.

מאפיין זה מחזיר אובייקט מסך. השתמש בה כדי להפנות למאפיינים של המסך הנוכחי, כגון השם עם הנוסחה App.ActiveScreen.Name. באפשרותך גם להשוות מאפיין זה לאובייקט מסך אחר, כגון הנוסחה של ההשוואה App.ActiveScreen = Screen2 כדי לבדוק אם Screen2 הוא המסך הנוכחי.

השתמש בפונקציההקודם או נווט כדי להחליף את המסך המוצג.

מאפיין BackEnabled

המאפיין BackEnabled משנה את האופן שבו האפליקציה מגיבה למחוות חזרה של המכשיר (החלק במהירות או השתמש בלחצן 'הקודם' של החומרה במכשירי Android, או החלק במהירות מימין במכשירי iOS) בעת הפעלתו ב- Power Apps למכשירים ניידים. כאשר אפשרות זו מופעלת, מחוות ההחזרה של המכשיר חוזרת למסך שהוצגה לאחרונה, בדומה לנוסחה הקודם . כאשר אפשרות זו אינה זמינה, מחוות ההשבתה של המכשיר מעבירה את המשתמש לרשימת האפליקציות.

מאפייני ConfirmExit

אף אחד לא רוצה לאבד שינויים שלא נשמרו. השתמש במאפיינים ConfirmExit ו - ConfirmExitMessage כדי להזהיר את המשתמש לפני סגירת היישום.

Note

  • ConfirmExit אינו פועל ביישומים שמוטבעים ב- Power BI וב- SharePoint, לדוגמה.
  • ConfirmExit אינו נתמך בדפים מותאמים אישית.
  • כעת, מאפיינים אלה יכולים להפנות לפקדים רק במסך הראשון אם התכונה תצוגה מקדימה של טעינה מושהית זמינה (שהיא זמינה כברירת מחדל עבור אפליקציות חדשות). אם אתה מפנה אל מסכים אחרים, Power Apps Studio אינו מציג שגיאה, אך האפליקציה שפ פורסמה אינה פתוחה ב- Power Apps Mobile או בדפדפן. Microsoft פועל כדי להרים מגבלה זו. בינתיים, בטל טעינה מושהית בתכונות>קרובות של הגדרות (תחת תצוגה מקדימה).

ConfirmExit

ConfirmExit הוא מאפיין בוליאני אשר, כאשר true, פותח תיבת דו-שיח לאישור לפני סגירת היישום. כברירת מחדל, מאפיין זה הוא false, ולא מופיעה תיבת דו-שיח.

כאשר ייתכן שלמשתמש יש שינויים שלא נשמרו באפליקציה, השתמש במאפיין זה כדי להציג תיבת דו-שיח לאישור לפני היציאה מהאפליקציה. השתמש בנוסחה הבוחן משתנים ומפרטי פקד (לדוגמה, המאפיין לא שמור של פקד עריכת טופס).

תיבת הדו-שיח לאישור מופיעה בכל מצב שבו ניתן אובדן נתונים, כגון:

  • הפעל את הפונקציה Exit .
  • אם האפליקציה פועלת בדפדפן:
    • סגור את הדפדפן או את כרטיסיית הדפדפן שבה האפליקציה פועלת.
    • בחר בלחצן 'הקודם' של הדפדפן.
    • הפעל את הפונקציה Launch עם LaunchTarget of Self.
  • אם האפליקציה פועלת ב- Power Apps Mobile (iOS או Android):
    • החלק כדי לעבור לאפליקציה אחרת ב- Power Apps Mobile.
    • בחר בלחצן 'הקודם' במכשיר Android.
    • הפעל את הפונקציה Launch כדי להפעיל יישום בד ציור אחר.

המראה המדויק של תיבת הדו-שיח לאישור עשוי להשתנות בין מכשירים וגירסאות של Power Apps.

תיבת הדו-שיח לאישור אינה מוצגת ב- Power Apps Studio.

ConfirmExitMessage

כברירת מחדל, תיבת הדו-שיח לאישור מציגה הודעה כללית, כגון "ייתכן שיש לך שינויים שלא נשמרו." בשפה של המשתמש.

השתמש ב- ConfirmExitMessage כדי לספק הודעה מותאמת אישית בתיבת הדו-שיח לאישור. אם נכס זה הוא ריק, נעשה שימוש בערך ברירת המחדל. הודעות מותאמות אישית נחתכו לפי הצורך כדי להיכנס לתיבת הדו-שיח לאישור, לכן השאר את ההודעה לכמה שורות לכל היותר.

בדפדפן, תיבת הדו-שיח לאישור יכולה להציג הודעה כללית מהדפדפן.

דוגמה

  1. הגדר את המאפיין ConfirmExit של האובייקט יישום לביטוי הבא:

    AccountForm.Unsaved Or ContactForm.Unsaved
    

    תיבת הדו-שיח מופיעה אם המשתמש משנה נתונים בכל טופס ולאחר מכן מנסה לסגור את היישום מבלי לשמור שינויים אלה.

    תיבת הדו-שיח הכללית לאישור.

  2. הגדר את המאפיין ConfirmExitMessage של האובייקט יישום לנוסחה הבאה:

    If( AccountForm.Unsaved,
        "Accounts form has unsaved changes.",
        "Contacts form has unsaved changes."
    )
    

    תיבת הדו-שיח מציגה הודעה ספציפית לטופס כאשר המשתמש משנה נתונים בכל טופס ולאחר מכן מנסה לסגור את היישום מבלי לשמור שינויים אלה.

    תיבת דו-שיח לאישור הספציפית לטופס.

מאפיין מחרוזת חיבור

השתמש במאפיין מחרוזת חיבור כדי לייצא יומני יישומים שנוצרו על-ידי המערכת לתובנות יישום.

כדי להגדיר את מחרוזת חיבור:

  1. פתח את האפליקציה לעריכה ב- Power Apps Studio.
  2. בחר את האובייקט יישום מתצוגת העץ בניווט השמאלי.
  3. הזן את מחרוזת החיבור בחלונית המאפיינים.

אם הנתונים אינם נשלחים לתובנות אפליקציה, פנה למנהל Power Platform ובדוק אם תובנות לגבי אפליקציות אינן זמינות ברמת הדייר.

מאפיין Formulas

השתמש במאפיין נוסחאות כדי להגדיר לוגיקה הניתנת לשימוש חוזר בכל היישום. המאפיין נוסחאות תומך בשלושה מבנים:

נוסחאות בעלות שם

השתמש בנוסחאות בעלות שם במאפיין נוסחאות כדי להגדיר נוסחה שבה תוכל לעשות שימוש חוזר בכל חלקי היישום.

ב- Power Apps, נוסחאות קובעות את הערך של מאפייני בקרה. לדוגמה, כדי להגדיר את צבע הרקע באופן עקבי ברחבי אפליקציה, הגדר את המאפיין מילוי עבור כל פקד לנוסחה נפוצה:

Label1.Fill: ColorValue( Param( "BackgroundColor" ) )
Label2.Fill: ColorValue( Param( "BackgroundColor" ) )
Label3.Fill: ColorValue( Param( "BackgroundColor" ) )

כאשר כל כך הרבה מקומות שבהם מופיעה נוסחה זו, היא הופכת להיות מייגע וש מועדת לשגיאות לעדכן את כולם במקרה הצורך בשינוי. במקום זאת, צור משתנה כללי ב- OnStart כדי להגדיר את הצבע פעם אחת ולאחר מכן השתמש שוב בערך ביישום:

App.OnStart: Set( BGColor, ColorValue( Param( "BackgroundColor" ) ) )
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

אמנם זו שיטה טובה יותר, היא תלויה גם בהפעלת OnStart לפני קביעת הערך עבור BGColor. BGColor עשוי לפעול גם באיזו פינה של היישום שהיוצר אינו מודע אליה, שינוי שבוצע על-ידי אדם אחר, וייתכן שיהיה קשה לאתר אותו.

נוסחאות בעלות שם מעניקות חלופה לכך. בדיוק כפי שאתה כותב בדרך כלל control-property = expression, באפשרותך במקום זאת לכתוב שם = ביטוי ולאחר מכן לעשות שימוש חוזר בשם ביישום כדי להחליף ביטוי. הגדר נוסחאות אלה במאפיין נוסחאות:

App.Formulas: BGColor = ColorValue( Param( "BackgroundColor" ) );
Label1.Fill: BGColor
Label2.Fill: BGColor
Label3.Fill: BGColor

בין היתרונות של שימוש בנוסחאות בעלות שם:

  • הערך של הנוסחה תמיד זמין. אין תלות בתזמון, אין צורך בהפעלת OnStart תחילה לפני קביעת הערך, אין זמן שבו הערך של הנוסחה שגוי. נוסחאות בעלות שם יכולות להפנות זו לזו בכל סדר שהוא, כל עוד אינן יוצרות הפניה מעגלית. ניתן לחשב אותן במקביל.
  • הערך של הנוסחה תמיד מעודכן. הנוסחה יכולה לבצע חישוב התלוי במאפייני בקרה או ברשומות של מסד נתונים, ועם השינוי שלהם, הערך של הנוסחה יתעדכן באופן אוטומטי. אין צורך לעדכן את הערך ידנית כפי שעושים זאת עם משתנה. והנוסחאות מחושבות מחדש רק בעת הצורך.
  • הגדרת הנוסחה אינה ניתנת לשינוי. ההגדרה ב- Formulas היא מקור האמת היחיד, ולא ניתן לשנות את הערך במקום אחר ביישום. עם משתנים, קודים מסוימים עשויים לשנות ערך באופן בלתי צפוי, אך מצב זה של 'קשה לאיתור באגים' אינו אפשרי עם נוסחאות בעלות שם.
  • ניתן לדחות את חישוב הנוסחה. מכיוון שהערך שלו לא ניתן לשינוי, תמיד ניתן לחשב אותו בעת הצורך, כלומר לא צריך לחשב אותו עד שיהיה בו צורך. אין צורך לחשב ערכי נוסחה שאינם מחושבים עד להצגת screen2 של יישום עד שיופיע screen2. דחיית עבודה זו יכולה לשפר את זמן טעינת האפליקציה. נוסחאות בעלות שם הן הצהרתיות ומעניקות למערכת הזדמנויות לייעל את האופן ואת המועד שבו הן מחושבות.
  • נוסחאות בעלות שם הן מושג של Excel. Power Fx משתמש במושגים של Excel במידת האפשר, מכיוון שאנשים רבים מכירים את Excel היטב. נוסחאות בעלות שם הן המקבילה לתאים בעלי שם ונוסחאות בעלות שם ב- Excel, המנוהלים באמצעות 'מנהל השמות'. הם מחשבים מחדש באופן אוטומטי כמו תאים בגיליון אלקטרוני ומאפייני בקרה.

הגדר נוסחאות בעלות שם זו אחרי זו במאפיין נוסחאות , שכל אחת מהן מסתיימת בנקודה-פסיק. סוג הנוסחה נגזר מסוגי הרכיבים בתוך הנוסחה ומאופן השימוש בהם יחד. לדוגמה, נוסחאות בעלות שם אלה מאחזרות מידע שימושי על המשתמש הנוכחי מ- Dataverse:

UserEmail = User().Email;
UserInfo = LookUp( Users, 'Primary Email' = User().Email );
UserTitle = UserInfo.Title;
UserPhone = Switch( UserInfo.'Preferred Phone', 
                    'Preferred Phone (Users)'.'Mobile Phone', UserInfo.'Mobile Phone',
                    UserInfo.'Main Phone' );

אם יש לעדכן את הנוסחה עבור UserTitle , באפשרותך לעדכן אותה בקלות במיקום אחד זה. אם אין צורך ב- UserPhone ביישום, קריאות אלה לטבלה Users ב- Dataverse אינן מתבצעות. אין עונש על הכללת הגדרת נוסחה שאינה בשימוש.

להלן כמה מהמגבלות של נוסחאות בעלות שם:

  • אינן יכולות להשתמש בפונקציות של התנהגות או לגרום לתופעות לוואי אחרות ביישום.
  • אינן יכולות ליצור הפניה מעגלית אותו יישום לא יכול לכלול גם a = b; וגם b = a;.

פונקציות המוגדרות על-ידי המשתמש

Power Fx כולל רשימה ארוכה של פונקציות מוכללות, כגון If, Text ו- Set. באמצעות פונקציות המוגדרות על-ידי המשתמש, באפשרותך לכתוב פונקציות משלך המחזירות פרמטרים ומחזירות ערך, בדיוק כמו הפונקציות המוכללות. חשוב על פונקציות המוגדרות על-ידי המשתמש כהרחבה לנוסחאות בעלות שם שמוסיף פרמטרים ותומך בנוסחאות אופן פעולה.

לדוגמה, באפשרותך להגדיר נוסחה בעלת שם המחזירה ספרי סיפורת מספריה:

Library = [ { Title: "The Hobbit", Author: "J. R. R. Tolkien", Genre: "Fiction" },
            { Title: "Oxford English Dictionary", Author: "Oxford University", Genre: "Reference" } ];

LibraryFiction = Filter( Library, Genre = "Fiction" );

ללא פרמטרים, עליך להגדיר נוסחאות בעלות שם נפרדות עבור כל ז'אנר. אך במקום זאת, בצע פרמטרים של הנוסחה בעלת השם:

LibraryType := Type( [ { Title: Text, Author: Text, Genre: Text } ] );

LibraryGenre( SelectedGenre: Text ): LibraryType = Filter( Library, Genre = SelectedGenre );

כעת באפשרותך להתקשר אל LibraryGenre( "Fiction" ), LibraryGenre( "Reference" ), או לסנן לפי ז'אנרים אחרים באמצעות פונקציה אחת המוגדרת על-ידי המשתמש.

התחביר הוא:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : נוסחת ReturnType = ;

  • FunctionName – נדרש. שם הפונקציה המוגדרת על-ידי המשתמש.
  • ParameterNames – אופציונלי. שם הפרמטר של הפונקציה.
  • ParameterType(s) – אופציונלי. שם סוג, שם סוג נתונים מוכלל, שם מקור נתונים או סוג המוגדר באמצעות הפונקציה Type.
  • ReturnType – נדרש. סוג הערך המוחזר מהפונקציה.
  • נוסחה - חובה. הנוסחה המחשבת את ערך הפונקציה בהתבסס על הפרמטרים.

עליך להקליד כל פרמטר ואת הפלט מהפונקציה המוגדרת על-ידי המשתמש. בדוגמה זו, SelectedGenre: Text הגדרת הפרמטר הראשון לפונקציה להיות מסוג 'SelectedGenre טקסט' והוא שם הפרמטר המשמש בגוף הפעולה של המסנן. ראה סוגי נתונים עבור שמות הסוגים הנתמכים. הפונקציה Type משמשת ליצירת סוג צבירה עבור הספריה, כך שתוכל להחזיר טבלת ספרים מהפונקציה.

אתה מגדיר LibraryType כטבלה רבים של סוג רשומות. אם ברצונך להעביר ספר בודד לפונקציה, באפשרותך לחלץ את סוג הרשומה עבור טבלה זו באמצעות הפונקציה RecordOf:

BookType := Type( RecordOf( LibraryType ) );

IsGenre( Book: BookType, SelectedGenre: Text ): Boolean = (Book.Genre = SelectedGenre);

התאמת רשומות עבור פרמטרים של פונקציות הדוקה יותר מאשר בחלקים אחרים ב- Power Fx. השדות של ערך רשומה חייבים להיות קבוצת משנה נכונה של הגדרת הסוג ולא יכולים לכלול שדות נוספים. לדוגמה, IsGenre( { Title: "My Book", Published: 2001 }, "Fiction" ) התוצאה היא שגיאה.

רקורסיון אינו נתמך עדיין על-ידי פונקציות המוגדרות על-ידי המשתמש.

אופן פעולה של פונקציות המוגדרות על-ידי המשתמש

נוסחאות בעלות שם ורוב הפונקציות המוגדרות על-ידי המשתמש אינן תומכות בפונקציות אופן פעולה עם תופעות לוואי, כגון Set או Notify. באופן כללי, הימנע מעדכון מצב אם ניתן. במקום זאת, השתמש בדפוסי תיכנות פונקציונליים כדי לאפשר ל- Power Fx לחשב מחדש נוסחאות לפי הצורך באופן אוטומטי. אבל, יש מקרים שבהם זה בלתי נמנע. כדי לכלול לוגיקה של אופן פעולה בפונקציה המוגדרת על-ידי המשתמש, יש לעטוף את הגוף בסוגריים מסולסלים:

Spend( Amount: Number ) : Void = {
    If( Amount > Savings, 
        Error( $"{Amount} is more than available savings" ),
        Set( Savings, Savings - Amount );
        Set( Spent, Spent + Amount) 
    );
}

כעת באפשרותך להתקשר כדי Spend( 12 ) לבדוק אם יש לך 12 בחיסכון, ואם כן, לחייב אותו ב- 12 ולהוסיף 12 למשתנה 'בילה'. סוג ההחזרה של פונקציה זו הוא Void מכיוון שהוא אינו מחזיר ערך.

התחביר של פונקציה המוגדרת על-ידי המשתמש הוא:

FunctionName( [ ParameterName1: ParameterType1 [ , ParameterName2: ParameterType2 ... ] ] ) : ReturnType = { Formula1 [ ; פורמולה 2 ... ] };

  • FunctionName – נדרש. שם הפונקציה המוגדרת על-ידי המשתמש.
  • ParameterNames – אופציונלי. שם הפרמטר של הפונקציה.
  • ParameterType(s) – אופציונלי. שם הסוג, שם סוג נתונים מוכלל, שם מקור נתונים או סוג המוגדר באמצעות הפונקציה Type.
  • ReturnType – נדרש. סוג הערך המוחזר מהפונקציה. השתמש ב- Void אם הפונקציה אינה מחזירה ערך.
  • נוסחאות – חובה. הנוסחה המחשבת את ערך הפונקציה בהתבסס על הפרמטרים.

כמו בכל הנוסחאות ב- Power Fx, הביצוע אינו מסתיים כאשר נתקלת בשגיאה. לאחר המכונה לפונקציה Error, הפונקציה If מונעת מהשינויים ב'חיסכון' ו'בילה' לקרות. ניתן להשתמש בפונקציהIfError גם כדי למנוע ביצוע נוסף לאחר שגיאה. למרות שהיא מחזירה Void, הנוסחה עדיין יכולה להחזיר שגיאה אם קיימת בעיה.

סוגים שמוגדרים על-ידי המשתמש

השתמש בנוסחאות בעלות שם עם הפונקציה Type כדי ליצור סוגים המוגדרים על-ידי המשתמש. השתמש ב- := במקום ב- = כדי להגדיר סוג המוגדר על-ידי המשתמש, לדוגמה Book := Type( { Title: Text, Author: Text } ). עיין בפונקציה Type לקבלת מידע נוסף ודוגמאות.

מאפיין OnError

השתמש ב- OnError כדי לבצע פעולה כאשר מתרחשת שגיאה במקום כלשהו ביישום. הוא מספק הזדמנות כללית ליירט כרזת שגיאה לפני שהיא מוצגת למשתמש הקצה. באפשרותך גם להשתמש בה כדי לרשום שגיאה באמצעות הפונקציה 'מעקב' או לכתוב למסד נתונים או לשירות אינטרנט.

ביישום בד ציור, התוצאה של כל הערכת נוסחה נבדקת לאיתור שגיאה. אם מתרחשת שגיאה, הפונקציה OnError מוערכת עם אותם משתני טווח של FirstError ו- AllErrors בהן היישום משתמש אם הנוסחה כולה גולשת בפונקציה IfError.

אם OnError ריק, כרזת שגיאה המהווה ברירת מחדל מציגה את FirstError.Message של השגיאה. הגדרת נוסחת OnError עוקפת אופן פעולה זה, כך היוצר יכול לטפל בדיווח שגיאות לפי הצורך. באפשרותך לבקש את אופן הפעולה המהווה ברירת מחדל ב- OnError על-ידי העברת השגיאה מחדש באמצעות הפונקציה Error. השתמש בגישה של חיתוך מחדש אם ברצונך לסנן או לטפל בשגיאות מסוימות באופן שונה, אך אפשר לאחרים לעבור.

הפונקציה OnError לא יכולה להחליף שגיאה בחישובים כפי ש- IfError יכולה. אם OnError מופעל, השגיאה כבר התרחשה והיא כבר מעובדת באמצעות חישובי נוסחאות כגון IfError; OnError שולט בדיווח שגיאות בלבד.

נוסחאות OnError מוערכות בו-זמנית וייתכן שההערכה שלהן חופפת לעיבוד של שגיאות אחרות. לדוגמה, אם תגדיר משתנה כללי בחלק העליון של OnError ותקרא אותו מאוחר יותר באותה נוסחה, ייתכן שהערך השתנה. השתמש בפונקציה With כדי ליצור ערך בעל שם שהוא מקומי לנוסחה.

למרות ש- OnError מעבד כל שגיאה בנפרד, ייתכן שכרזת השגיאה המהווה ברירת מחדל לא תופיע עבור כל שגיאה בנפרד. כדי להימנע מהצגה של כרזות שגיאה רבות מדי בו-זמנית, אותה כרזת שגיאה לא תוצג שוב אם היא הוצגה לאחרונה.

דוגמה

חשוב על פקד Label ופקד Slider שמאוגדים יחד באמצעות הנוסחה:

Label1.Text = 1/Slider1.Value

פקד Label ופקד Slider מאוגדים באמצעות הנוסחה Label1.Text = 1/Slider1.Value.

המחוון מוגדר כברירת מחדל כ- 50. אם תזיז את המחוון ל- 0, האפשרות תווית1 לא תראה ערך, ותופיע כרזת שגיאה:

הפקד Slider הוזז ל- 0, ולכן גורם לחלוקה באפס ולהצגת חלון שגיאה.

בוא נבחן מה קורה בפירוט:

  1. הזז את המחוון שמאלה והמאפיין מחוון1.ערך ישתנה ל- 0.
  2. Label1.Text עובר הערכה מחדש באופן אוטומטי. חלוקה באפס מתרחשת, יוצר שגיאה.
  3. IfError לא קיים בנוסחה זו. שגיאת החלוקה באפס מוחזרת על-ידי הערכת הנוסחה.
  4. המאפיין Label1.Text לא יכול להחזיר דבר עבור השגיאה הזו, לכן הוא מצב ריק.
  5. OnError מופעל. מכיוון שאין מטפל, מוצג חלון השגיאה הרגיל עם פרטי השגיאה.

במידת הצורך, באפשרותך גם לשנות את הנוסחה ל- Label1.Text = IfError( 1/Slider1.Value, 0 ). השימוש ב- IfError פירושו שאין כרזת שגיאה או שגיאה. לא ניתן לשנות את הערך של שגיאה מ- OnError מכיוון שהשגיאה כבר התרחשה - OnError קובע רק כיצד הוא מדווח.

אם אתה מוסיף מטפל OnError , הוא אינו משפיע על השלבים לפני שלב 5, אך הוא משנה את אופן הדיווח של השגיאה:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" )

נוסחת App.OnError מוגדרת ליצירת Trace.

באמצעות מטפל OnError זה, משתמש היישום אינו רואה כל שגיאה. אך השגיאה מתווספת למעקב של הצג, כולל המקור של פרטי השגיאה מ - FirstError:

פקד המחוון הוזז ל- 0, ולכן גורם לשגיאת חלוקה באפס אך לא מוצג חלון שגיאה.

אם ברצונך להציג גם את כרזת השגיאה המהווה ברירת מחדל יחד עם המעקב, בצע מחדש את השגיאה מחדש באמצעות הפונקציה Error לאחר השיחה מעקב, כאילו המעקב לא היה שם:

Trace( $"Error {FirstError.Message} in {FirstError.Source}" );
Error( FirstError )

המאפיין OnStart

Note

השימוש במאפיין OnStart עלול לגרום לבעיות ביצועים בעת טעינת יישום. שקול את החלופות הבאות לפני הוספת לוגיקה ל- OnStart:

  • כדי מטמון נתונים או להגדיר משתנים כלליים, השתמש בנוסחה בעלת שם במאפיין 'נוסחאות ' אם הדבר אפשרי.
  • כדי להגדיר את המסך הראשון להצגה, השתמש במאפיין מסך התחלבמקום ניווט.
  • כדי להפעיל לוגיקה כאשר מוצג מסך ספציפי, השתמש במאפיין OnVisible של המסך.

בהתאם להקשר שלך, ייתכן שהמאפיין OnStart אינו זמין כברירת מחדל. אם אינך רואה אותו ועלך להשתמש בו, בדוק את ההגדרות המתקדמות של האפליקציה לקבלת בורר כדי להפוך אותו לזמין.

כאשר כלל ביטול החסימה OnStart זמין (ברירת המחדל), OnStart פועל בו-זמנית עם כללי יישום אחרים. כתוצאה מכך:

  • ייתכן שמשתנים שהותחלו ב- OnStart לא מאותחלים באופן מלא כאשר כללי יישום אחרים קוראים אותם.
  • מסך יכול לעבד ולהפוך לא אינטראקטיבי לפני ש- App.OnStart או Screen.OnVisible מסיים לפעול, במיוחד אם פונקציות אלה נמשכות זמן רב.

המאפיין OnStart פועל כאשר המשתמש מפעיל את היישום. השתמש במאפיין זה כדי:

  • אחזר ומטמון נתונים באוספים באמצעות הפונקציה Collect .
  • הגדר משתנים כלליים באמצעות הפונקציה Set.

נוסחה זו פועלת לפני הופעת המסך הראשון. אף מסך לא נטען, כך שלא ניתן להגדיר משתני הקשר עם הפונקציה UpdateContext. עם זאת, באפשרותך להעביר משתני הקשר באמצעות הפונקציה Navigate .

לאחר שינוי המאפיין OnStart, בדוק אותו על-ידי ריחוף מעל אובייקט היישום בחלונית תצוגת עץ, בחירת שלוש הנקודות (...) ולאחר מכן בחירה באפשרות הפעל בעת הפעלה. בניגוד לטעינת היישום בפעם הראשונה, אוספים ומשתנים קיימים כבר מוגדרים. כדי להתחיל עם אוספים ריקים, השתמש בפונקציה ClearCollect במקום בפונקציה Collect.

תפריט קיצור דרך של פריט יישום להפעלת OnStart

Note

  • השימוש בפונקציה Navigateבמאפיין OnStart יצא משימוש. יישומים קיימים עדיין פועלים. לזמן מוגבל, באפשרותך להפוך אותה לזמינה בהגדרות האפליקציה (תחת יצא משימוש). אך השימוש ב'נווט באופן זה' עלול לגרום לעיכובים בטעינת היישום מכיוון שהוא כופה על המערכת לסיים את פעולת OnStart לפני הצגת המסך הראשון. השתמש במאפיין מסך התחל במקום זאת כדי להגדיר את המסך הראשון המוצג.
  • הבורר שיצא משימוש כבוי עבור אפליקציות שנוצרו לפני מרץ 2021, שבהן הוספת את נווט אל OnStart בין מרץ 2021 וכעת. בעת עריכת אפליקציות אלה ב Power Apps Studio, אתה רואה שגיאה. הפעל את המתג שהוצא משימוש כדי למחוק שגיאה זו.

המאפיין StartScreen

המאפיין מסך התחל מגדיר את המסך שיוראה ראשון. Power Apps מאפיין זה פעם אחת כאשר היישום נטען ומחזיר את אובייקט המסך שברצונך להציג. כברירת מחדל, מאפיין זה ריק, והמסך הראשון בתצוגת עץ סטודיו מוצג ראשון.

StartScreen הוא מאפיין זרימת נתונים שלא יכול להכיל פונקציות אופן פעולה. כל פונקציות זרימת הנתונים זמינות. השתמש בפונקציות ובאות אלה כדי להחליט איזה מסך להציג תחילה:

  • הפונקציה Param לקריאת פרמטרים משמשת להפעלת היישום.
  • הפונקציה User‎ לקריאת מידע אודות המשתמש הנוכחי.
  • LookUp, Filter, CountRows, Max, ופונקציות אחרות שקוראות ממקור נתונים.
  • API קורא דרך מחבר. ודא שהשיחה חוזרת במהירות.
  • אותות כגון חיבור, מצפן, ויישום.

Note

משתנים ואוספים כלליים, כולל אלה שנוצרו ב - OnStart, אינם זמינים ב- StartScreen. נוסחאות בעלות שם זמינות ולעתים קרובות מהוות חלופה טובה יותר לשימוש חוזר בנוסחאות ברחבי האפליקציה.

אם מסך התחל מחזיר שגיאה, המסך הראשון בתצוגת עץ סטודיו מוצג כאילו מסך התחל אינו מוגדר. השתמש בפונקציה IfError כדי ללכוד שגיאות ולנתב מחדש למסך שגיאה.

לאחר שינוי מסך התחל ב- Studio, בדוק אותו על-ידי ריחוף מעל אובייקט היישום בחלונית תצוגת עץ, בחירת שלוש הנקודות (...) ולאחר מכן בחירה באפשרות נווט אל מסך התחל. המסך משתנה כאילו היישום נטען זה עתה.

נווט אל StartScreen

דוגמאות

Screen9

Screen9 מוצגת ראשונה בכל פעם שהאפליקציות מופעלות.

If( Param( "admin-mode" ) = 1, HomeScreen, AdminScreen )

בדיקה אם המאפיין Param "admin-mode" מוגדר ומשתמש בו כדי להחליט אם HomeScreen או AdminScreen מוצגים ראשונים.

If( LookUp( Attendees, User = User().Email ).Staff, StaffPortal, HomeScreen )

בדיקה אם משתתף הוא חבר צוות ומפנה אותו למסך הנכון בעת האתחול.

IfError( If( CustomConnector.APICall() = "Forest", 
             ForestScreen, 
             OceanScreen 
         ), 
         ErrorScreen 
)

מנתב את היישום בהתבסס על קריאת API ל- ForestScreen או OceanScreen. אם ה- API נכשל, היישום משתמש במקום ErrorScreen זאת.

מאפיין StudioVersion

השתמש במאפיין StudioVersion כדי להציג או לרשום את הגירסה של Power Apps Studio המשמשת לפרסום אפליקציה. מאפיין זה עוזר לך בעת איתור באגים ובדיקת היישום שלך פורסם מחדש באמצעות גירסה עדכנית של Power Apps Studio.

StudioVersion מחזיר טקסט. העיצוב של טקסט זה יכול להשתנות לאורך זמן, לכן התייחס אליו כמשלם ואל תחלץ חלקים בודדים.