הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
חל על: אפליקציות Canvas
המבוססות על מודלים
הערכת נוסחאות מרובות במקביל, זו לצד זו.
תיאור
הפונקציה Concurrent מאפשרת להעריך נוסחאות מרובות שצוינו באותו מאפיין בו-זמנית אם יש קריאות מחבר או Dataverse. בדרך כלל, הערכה של נוסחאות מרובות מתבצעת על-ידי שרשור שלהן יחד עם האופרטור ; (נקודה-פסיק), שמעריך כל נוסחה ברצף. באמצעות הפונקציה Concurrent , האפליקציה תעריך את כל הנוסחאות בתוך מאפיין בו-זמנית גם לאחר השימוש באופרטור ; . התרחשות בו-זמנית זו עוזרת למשתמשים להמתין פחות לאותה תוצאה.
במאפיין OnStart של היישום שלך, השתמש כדי Concurrent לשפר את הביצועים כאשר היישום טוען נתונים. כאשר קריאות נתונים לא מתחילות עד שהקריאות הקודמות מסתיימות, היישום חייב להמתין לסכום של כל זמני הבקשה. אם קריאות נתונים מתחילות במקביל, היישום צריך להמתין רק לזמן הארוך ביותר לבקשה. דפדפני האינטרנט משפרים לעתים קרובות את הביצועים על-ידי ביצוע קריאות רשת במקביל.
לא ניתן לחזות את הסדר שבו נוסחאות בתוך הערכת ההתחלה Concurrent והסיום של הפונקציה. נוסחאות בתוך הפונקציה Concurrent לא אמורות Concurrent להכיל יחסי תלות בנוסחאות אחרות בתוך אותה פונקציה, ו- Power Apps מציג שגיאה אם אתה מנסה. מתוך, באפשרותך לקחת בבטחה יחסי תלות בנוסחאות מחוץ Concurrent לפונקציה מאחר שהן הושלמו לפני הפעלת Concurrent הפונקציה. נוסחאות שלאחר שהפונקציה Concurrent יכולה ליי תלות בבטחה בנוסחאות בתוך: Concurrent הן יושלם לפני שהפונקציה תסיים ותעבור לנוסחה הבאה בשרשרת (אם אתה משתמש באופרטור ; ). היזהר מיחסי תלות עדינים של סדר אם אתה קורא לפונקציות או לפעולות שירות בעלות תופעות לוואי.
באפשרותך ליצור שרשרת של נוסחאות יחד עם האופרטור ; בתוך ארגומנט ל- Concurrent. לדוגמה, Concurrent( Set( a, 1 ); Set( b, a+1 ), Set( x, 2 ); Set( y, x+2 ) ) מחזירSet ( a, 1 ); Set( b, a+1 ) בו-זמנית עם Set( x, 2 ); Set( y, x+2 ). במקרה זה, יחסי התלות בתוך הנוסחאות תקינים: a יוגדר לפני b ו- x יוגדר לפני y.
בהתאם למכשיר או לדפדפן שבו היישום פועל, תתבצע הערכה בו-זמנית של קומץ נוסחאות בלבד. Concurrent משתמש ביכולות הזמינות ולא יסיים עד להערכה של כל הנוסחאות.
אם אתה מאפשר ניהול שגיאות ברמת הנוסחה (בהגדרות מתקדמות), Concurrentהשגיאה הראשונה שהתרחשה בסדר הארגומנטים מוחזרת מ- ; אחרת, מוחזר ריק. אם כל הנוסחאות מצליחות, הערך true מוחזר. אם נוסחה אחת נכשלת, שארית הנוסחה נעצרת, אולם ממשיכה להתבצע הערכה של נוסחאות אחרות.
ניתן להשתמש בנוסחאות Concurrent אופן פעולה בלבד.
תחביר
Concurrent( Formula1, Formula2 [, ...] )
- נוסחאות – חובה. נוסחאות להערכה בו-זמנית. עליך לספק לפחות שתי נוסחאות.
דוגמאות
טעינה מהירה יותר של נתונים
צור יישום והוסף ארבעה מקורות נתונים מ- Microsoft Dataverse, SQL Server, או SharePoint.
בדוגמה זו נעשה שימוש בארבע טבלאות מתוך מסד נתונים לדוגמה של Adventure Works ב- SQL Azure. לאחר יצירת מסד הנתונים, התחבר אליו מ- Power Apps באמצעות שם השרת המלא (לדוגמה, srvname.database.windows.net):
הוסף פקד Button והגדר את מאפיין OnSelect שלו לנוסחה זו:
ClearCollect( Product, '[SalesLT].[Product]' ); ClearCollect( Customer, '[SalesLT].[Customer]' ); ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ); ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' )בתוך Microsoft Edge או Google Chrome, הפעל כלים למפתחים לניטור התעבורה ברשת בזמן שהיישום מופעל.
(אופציונלי) הפעל ויסות ברשת כדי להדגיש את האפקטים של השוואה זו.
תוך כדי לחיצה על מקש Alt, בחר בלחצן ולאחר מכן צפה בתעבורת הרשת.
הכלים מציגים ארבע בקשות המבוצעות בסדרות, בדומה לדוגמה זו. הזמנים בפועל הוסרו מכיוון שהם משתנים באופן כללי. הגרף מראה שכל קריאה מתחילה לאחר שהאחרונה הסתיימה:
שמור, סגור ופתח מחדש את היישום.
Power Apps מאחסן נתונים במטמון, כך שבחירה חוזרת של הלחצן לא תגרום בהכרח לארבע בקשות חדשות. בכל פעם שתרצה לבדוק ביצועים, סגור את היישום ופתח אותו מחדש. אם הפעלת ויסות ברשת, מומלץ לכבות אותו עד שתהיה מוכן לבדיקה נוספת.
הוסף פקד Button שני והגדר את מאפיין OnSelect שלו לנוסחה זו:
Concurrent( ClearCollect( Product, '[SalesLT].[Product]' ), ClearCollect( Customer, '[SalesLT].[Customer]' ), ClearCollect( SalesOrderDetail, '[SalesLT].[SalesOrderDetail]' ), ClearCollect( SalesOrderHeader, '[SalesLT].[SalesOrderHeader]' ) )שים לב שהוספת את אותן שיחות ClearCollect ללחצן הראשון, Concurrent אך הן גולשות בפונקציה והן מופרדות באמצעות פסיקים הפעם.
נקה את צג הרשת בדפדפן.
אם השתמשת בויסות ברשת בעבר, הפעל אותו שוב.
תוך כדי לחיצה על מקש Alt, בחר בלחצן השני ולאחר מכן צפה בתעבורת הרשת.
הכלים מציגים ארבע בקשות המבוצעות בו-זמנית, בדומה לדוגמה זו. שוב, הזמנים בפועל הוסרו כפי שהם משתנים באופן פראי. הגרף מראה שכל השיחות מתחילות בערך באותו הזמן, ואל תמתין לסיום השיחות הקודמות:
גרפים אלה מבוססים על אותו קנה מידה. על-ידי Concurrentשימוש ב- , חצאת את משך הזמן הכולל שלקח לפעולות אלה להסתיים.
שמור, סגור ופתח מחדש את היישום.
תנאי Race
הוסף חיבור לשירות Microsoft Translator ליישום שלך.
הוסף פקד Text input ושנה את שמו ל- TextInput1 אם יש לו שם אחר.
הוסף פקד Button והגדר את מאפיין OnSelect שלו לנוסחה זו:
Set( StartTime, Value( Now() ) ); Concurrent( Set( FRTrans, MicrosoftTranslator.Translate( TextInput1.Text, "fr" ) ); Set( FRTransTime, Value( Now() ) ), Set( DETrans, MicrosoftTranslator.Translate( TextInput1.Text, "de" ) ); Set( DETransTime, Value( Now() ) ) ); Collect( Results, { Input: TextInput1.Text, French: FRTrans, FrenchTime: FRTransTime - StartTime, German: DETrans, GermanTime: DETransTime - StartTime, FrenchFaster: FRTransTime < DETransTime } )הוסף פקד Data table והגדר את מאפיין Items שלו לתוצאות.
בכרטיסיה מאפיינים של החלונית השמאלית, בחר ערוך שדות כדי לפתוח את החלונית שדות.
ברשימת השדות, בחר בתיבת הסימון של כל שדה כדי להציג את כולם בטבלת הנתונים.
(אופציונלי) גרור את השדה קלט לראש הרשימה וגרור את השדה FrenchFaster לתחתית הרשימה.
בפקד Text input, הקלד או הדבק צירוף מילים לתרגום.
תוך כדי לחיצה על מקש Alt, בחר את הלחצן מספר פעמים למילוי הטבלה.
הזמנים מוצגים באלפיות השנייה.
בחלק מהמקרים, התרגום לצרפתית מהיר יותר מהתרגום לגרמנית, ולהיפך. שניהם מתחילים בו-זמנית, אך אחד חוזר לפני השני מסיבות שונות, כולל זמן השהיה ברשת העיבוד בצד השרת.
תנאי Race יתרחש אם היישום היה תלוי בכך שתרגום אחד יסתיים ראשון. למרבה המזל, Power Apps מסמן את רוב יחסי התלות של התזמון שהוא יכול לזהות.