אובייקט 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 הוא מאפיין בוליאני שכאשר הוא נכון, פותח תיבת דו-שיח לאישור לפני סגירת האפליקציה. כברירת מחדל, מאפיין זה הוא 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
שהם מאפיינים ניסויים. מאפיינים אלה יוסרו לבסוף מאובייקט היישום. אנו ממליצים שלא תשתמש במאפיינים אלו בסביבת הייצור.
דוגמה
צור יישום המכיל שני פקדי טפסים, AccountForm ו- ContactForm.
הגדר את המאפיין ConfirmExit של האובייקט יישום לביטוי הבא:
AccountForm.Unsaved Or ContactForm.Unsaved
תיבת דו-שיח זו מופיעה אם המשתמש משנה נתונים בכל אחד מהטפסים ולאחר מכן מנסה לסגור את היישום מבלי לשמור את השינויים הללו.
הגדר את המאפיין ConfirmExitMessage של האובייקט יישום לנוסחה הבאה:
If( AccountsForm.Unsaved, "Accounts form has unsaved changes.", "Contacts form has unsaved changes." )
תיבת דו-שיח זו מופיעה אם המשתמש משנה נתונים בטופס 'תיק לקוח' ולאחר מכן מנסה לסגור את היישום מבלי לשמור את השינויים הללו.
הגדרת מפתח אינסטרומנטציה עבור Application Insights
כדי לייצא יומני יישומים שנוצרו על ידי המערכת אל Application Insights, עליך להגדיר את מפתח האינסטרומנטציה עבור יישום בד הציור שלך.
- פתח את האפליקציה לעריכה ב- Power Apps Studio.
- בחר את האובייקט יישום מתצוגת העץ בניווט השמאלי.
- הזן את מפתח האינסטרומנטציה בחלונית המאפיינים.
אם הנתונים לא נשלחים ל-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
המחוון מוגדר כברירת מחדל כ- 50. אם המחוון מועבר ל- 0, Label1 לא יציג ערך ויוצג חלון שגיאה:
כעת נבחן מה קרה ביתר פירוט:
- המשתמש הזיז את המחוון שמאלה והמאפיין Slide1.Value השתנה ל- 0.
- Label1.Text נבדק מחדש באופן אוטומטי. התרחשה חלוקה באפס, ונוצרה שגיאה.
- IfError לא קיים בנוסחה זו. שגיאת החלוקה באפס מוחזרת על-ידי הערכת הנוסחה.
- Label1.Text לא יכול להציג שום דבר עבור שגיאה זו, ולכן הוא מציג ריק מצב.
- OnError מופעל. מכיוון שאין מטפל, מוצג חלון השגיאה הרגיל עם פרטי השגיאה.
במידת הצורך, ניתן גם לשנות את הנוסחה ל- Label1.Text = IfError( 1/Slider1.Value, 0 )
. כך לא תיווצר שגיאה ולא יוצג חלון שגיאה. אנחנו לא יכולים לשנות את הערך של שגיאה מ- OnError מכיוון שבשלב זה השגיאה כבר קרתה, השאלה היא רק איך תדווח.
אם נוסיף מטפל OnError, לא תהיה לכך השפעה לפני שלב 5, אבל יכולה להיות לכך השפעה על אופן הדיווח על השגיאה:
Trace( $"Error {FirstError.Message} in {FirstError.Source}" )
במצב זה, מנקודת המבט של משתמש היישום, לא תוצג שגיאה כלשהי. אבל השגיאה תתווסף למעקב של הצג, יחד עם מידע על מקור השגיאה מ- FirstError:
אם נרצה שגם אותו חלון שגיאה המוגדר כברירת מחדל יוצג בנוסף למעקב, נוכל להציג מחדש את השגיאה בעזרת הפונקציה 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.
הערה
- שימוש בפונקציה Navigate במאפיין OnStart הוצא משימוש. היישומים הקיימים ימשיכו לפעול. למשך זמן מוגבל, אתה יכול להפוך זאת לזמין בהגדרות היישום (זמין תחת הוצא משימוש). עם זאת, שימוש בNavigate בצורה זאת יכול להוביל לעיכובים בטעינת יישום מכיוון שהוא מאלץ את המערכת להשלים הערכה של OnStart לפני הצגת המסך הראשון. השתמש במאפיין StartScreen במקום זאת כדי לחשב את המסך הראשון המוצג.
- מתג ה שההפסק יושבת עבור אפליקציות שנוצרו לפני מרץ 2021 שבהם הוספת את נווט to OnStart בין מרץ 2021 לעכשיו. כאשר אתה עורך יישומים כאלה ב- Power Apps Studio, אתה עשוי לראות שגיאה. הפעל את המתג הוצא משימוש המוזכר לעיל כדי למחוק שגיאה זו.
המאפיין StartScreen
הערה
הנכס StartScreen לא יופיע ברשימת המאפיינים כאשר האפשרות שיצאה משימוש שורת נוסחאות משופרת מופעלת. כדי להשבית את סרגל הנוסחאות המשופר, עבור אל הגדרות>תכונות עתידיות>הוצא משימוש> העבר את המתג סרגל נוסחאות משופר למצב כבוי כאשר ברצונך להשתמש במאפיין StartScreen.
המאפיין StartScreen קובע איזה מסך יוצג ראשון. הוא מוערך פעם אחת כאשר היישום נטען ומחזיר את אובייקט המסך למצב הצגה. כברירת מחדל, מאפיין זה יהיה ריק, והמסך הראשון בתצוגת Studio Tree מוצג ראשון.
StartScreen הוא מאפיין זרימת נתונים שאינו יכול להכיל פונקציות התנהגות. כל פונקציות זרימת הנתונים זמינות, באופן ספציפי השתמש בפונקציות ואותות אלה כדי לקבוע איזה מסך יש להציג ראשון:
- Param פונקציה לקריאת פרמטרים המשמשים להפעלת האפליקציה.
- User פונקציה לקריאת מידע על המשתמש הנוכחי.
- LookUp, מסנן, CountRows, מקסימום, ופונקציות אחרות שקוראות מתוך מקור נתונים.
- כל קריאות ה- API דרך מחבר, אבל שים לב שזה חוזר במהירות.
- אותות כגון חיבור, מצפן, ויישום.
הערה
משתנים ואוספים כלליים, כגון אלה שנוצרו ב- OnStart, אינם זמינים ב- StartScreen. קיימות חלופות הצהרתיות לביצוע פעולה זו שהן בדרך. למשוב שלך על הגבלה זו, עבור אל פורום הקהילה של Power Apps.
אם StartScreen מחזיר שגיאה, המסך הראשון בתצוגת Studio Tree יוצג כפי שהיה קורה לו StartScreen לא היה מוגדר. השתמש בפונקציה IfError כדי לתפוס שגיאות ולנתב מחדש אל מסך שגיאה מתאים.
לאחר שתשנה את StartScreen ב- Studio, בדוק אותו על-ידי ריחוף מעל האובייקט יישום בחלונית תצוגת עץ, בחירת שלוש נקודות (...) ולאחר מכן בחירת נווט אל 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 מוחזר כטקסט. הפורמט של הטקסט עשוי להשתנות עם הזמן ויש להתייחס אליו כמכלול; יש להימנע מחילוץ מנות בודדות.