שתף באמצעות


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

חל על: יישומי בד ציור יישומים מונחי דגמים

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

תיאור

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

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

אובייקט היישום בחלונית תצוגת העץ.

המאפיין ActiveScreen

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

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

השתמש בפונקציה Back או Navigate כדי לשנות את המסך המוצג.

מאפיין BackEnabled

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

מאפייני ConfirmExit

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

הערה

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

ConfirmExit

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

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

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

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

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

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

ConfirmExitMessage

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

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

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

הערה

לאובייקט היישום יש שני מאפיינים נוספים, OnMessage ו- BackEnabled שהם מאפיינים ניסויים. מאפיינים אלה יוסרו לבסוף מאובייקט היישום. אנו ממליצים שלא תשתמש במאפיינים אלו בסביבת הייצור.

דוגמה

  1. צור יישום המכיל שני פקדי טפסים, AccountForm ו- ContactForm.

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

    AccountForm.Unsaved Or ContactForm.Unsaved
    

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

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

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

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

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

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

הגדרת מפתח אינסטרומנטציה עבור Application Insights

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

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

אם הנתונים לא נשלחים ל-App Insights, צור קשר עם מנהל מערכת של Power Platform וודא אם App Insights מושבת ברמת הדייר.

מאפיין Formulas

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

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

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, במקום זאת אפשר לכתוב name = expression ואז להשתמש ב- name בכל היישום כדי להחליף expression. ההגדרות של נוסחאות אלה נעשות במאפיין Formulas:

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, המנוהלים באמצעות 'מנהל השמות'. הם מחושבים מחדש באופן אוטומטי כמו גיליון אלקטרוני, בדיוק כמו מאפייני פקד.

הנוסחאות בעלות השם מוגדרות בזו אחר זו במאפיין Formulas, כל אחת מסתיימת בנקודה-פסיק. סוג הנוסחה מוסק מסוגי הביטוי, המבוסס על סוגי הרכיבים בתוך הביטוי, ואופן השימוש שלהם יחד. לדוגמה, נוסחאות בעלות שם אלה מאחזרות מידע שימושי על המשתמש הנוכחי מ- 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;.

מאפיין OnError

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

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

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

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

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

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

דוגמה

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

Label1.Text = 1/Slider1.Value

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

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

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

כעת נבחן מה קרה ביתר פירוט:

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

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

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

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

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

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

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

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

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

המאפיין OnStart

הערה

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

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

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

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

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

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

הערה

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

המאפיין StartScreen

הערה

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

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

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

הערה

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

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

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

נווט אל StartScreen

דוגמאות

Screen9

מציין שיש להציג תחילה את Screen9 כאשר היישום מופעל.

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

בודק אם הפרמטר "מצב ניהול" הוגדר על-ידי המשתמש ומשתמש בו כדי להחליט אם יש להציג תחילה את 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 מוחזר כטקסט. הפורמט של הטקסט עשוי להשתנות עם הזמן ויש להתייחס אליו כמכלול; יש להימנע מחילוץ מנות בודדות.