הערה
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות להיכנס או לשנות מדריכי כתובות.
הגישה לדף זה מחייבת הרשאה. באפשרותך לנסות לשנות מדריכי כתובות.
| Function | Applies to |
|---|---|
| AsType |
|
| IsType |
|
בדיקה אם הפניה רשומה היא סוג טבלה מסוים (IsType) ו מתייחסת להפניה כסוג זה (AsType).
Note
פקודות power-fx של PAC CLI אינן תומכות ב- IsType.
Description
הפונקציות AsType והפונקציות IsType יכולות לשמש להמרת הפניות רשומות (לדוגמה בדיקות מידע פולימוריות ב- Dataverse) וערכים דינאמיים לערכים מוקללדים שניתן להשתמש בהם ישירות.
Record References
קרא את הבנת הפניות של רשומות ובדיקות מידע פולימורפיות להיכרות מעמיקה יותר ולקבלת פרטים נוספים.
שדה בדיקת מידע מפנה בדרך כלל לרשומות בטבלה מסוימת. מכיוון שסוג הטבלה ידוע, ניתן לגשת לשדות של בדיקת המידע באמצעות סימון נקודה פשוט. לדוגמה, First( Accounts ).'Primary Contact'.'Full Name' עובר מהטבלה Accounts (תיקי לקוחות) לרשומה Primary Contact (איש קשר ראשי) בטבלה Contacts (אנשי קשר) ומחלץ את השדה Full Name (שם מלא).
Microsoft Dataverse תומך גם בשדות בדיקת מידע פולימורפיים שיכולים להפנות לרשומות מקבוצת טבלאות, כפי שניתן לראות בדוגמאות אלו.
| Lookup field | יכול להפנות אל |
|---|---|
| Owner | משתמשים או צוותים |
| Customer | תיקי לקוחות או אנשי קשר |
| Regarding | תיקי לקוחות, אנשי קשר, מאמרי ידע וכולי |
בנוסחאות של יישום בד ציור, השתמש בהפניות של רשומות כדי לעבוד עם חיפושים פולימורפיים. מאחר שהפניה של רשומה יכולה להפנות לטבלאות שונות, לא ניתן לדעת אילו שדות זמינים בזמן ריצה בעת כתיבת נוסחה. הסימון Record.Field אינו זמין. נוסחאות אלה חייבות להתאים את עצמו לרשומות שבהן היישום נתקל בעת הפעלתן.
הפונקציה IsType בודקת אם הפניה רשומה מפנה לסוג טבלה ספציפי. הפונקציה מחזירה ערך בוליאני מסוג TRUE או FALSE.
הפונקציה AsType מתייחסת להפניית רשומה כסוג טבלה ספציפי, הנקרא גם יציקת רשומות. אתה משתמש בתוצאה כאילו היא רשומה של הטבלה ולהשתמש בסמן Record.Field כדי לגשת לכל השדות של רשומה זו. אם ההפניה אינה מסוג מסוים, תתרחש שגיאה.
השתמש בפונקציות אלה יחד כדי לבדוק תחילה את סוג הטבלה של רשומה ולאחר מכן להתייחס אליה בתור רשומה מסוג זה כך שהשדות יהיו זמינים:
If( IsType( First( Accounts ).Owner, Users ),
AsType( First( Accounts ).Owner, Users ).'Full Name',
AsType( First( Accounts ).Owner, Teams ).'Team Name'
)
פונקציות אלה דרושות לך רק אם אתה ניגש לשדות של הפניה ברשומה. לדוגמה, השתמש בהפניות רשומה בפונקציה Filter ללא או IsTypeAsType:
Filter( Accounts, Owner = First( Users ) )
באופן דומה, ניתן להשתמש בהפניות לרשומה עם הפונקציה Patch:
Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )
בעת שימוש בפונקציות אלה בהקשר רשומה, כגון בתוך פקד גלריה או עריכת טופס, ייתכן שתדרוש אופרטור הבהרה כללי כדי להפנות לסוג הטבלה. לדוגמה, נוסחה זו פועלת עבור גלריה המציגה רשימה של אנשי קשר כאשר Company Name הוא בדיקת מידע של לקוח:
If( IsType( ThisItem.'Company Name', Accounts ),
AsType( ThisItem.'Company Name', Accounts ).'Account Name',
AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)
עבור שתי הפונקציות, ציין את הסוג באמצעות השם של מקור הנתונים המחובר לטבלה. כדי שהנוסחה ת לפעול, הוסף מקור נתונים לאפליקציה עבור כל הסוגים שברצונך לבדוק או לשדר. לדוגמה, הוסף את הטבלה ' משתמשים' IsTypeAsType כמקור נתונים אם ברצונך להשתמש בה, עם בדיקת מידע של בעלים ורשומות מטבלה זו. הוסף רק את מקורות הנתונים שבהם אתה משתמש באפליקציה; אין צורך להוסיף את כל הטבלאות שבדיקת מידע יכולה להפנות אליו.
אם ההפניה של הרשומה ריקה, IsType מחזירה FALSE ומחזירה AsTypeערך ריק. כל השדות של רשומה ריקה יהיו בעלי הערך ריק.
Dynamic values
יש להמיר ערך דינאמי מ- API של אינטרנט או מהפונקציה [ParseJSON ] לערך מסוים לפני שתוכל להשתמש בו ב- Power Fx. הנה כמה אפשרויות:
- הקלד במפורש את השדה בנקודה שבה אתה משתמש בו. לדוגמה, אובייקט מומר למספר אם אתה משתמש בו עם
+האופרטור, אם ניתן להמיר אותו למספר. אפשרות זו עלולה לגרום להמרות בלתי צפויות ולא ניתן להמיר רשומות וטבלאות באופן שלם. - הקלד באופן מפורש כל שדה בנפרד עם הפונקציות עשרוני, טקסט, DateTime, GUID ופונקציות בנאי מסוגים אחרים. אפשרות זו היא הכי פולשנית לנוסחאות שלך מכיוון שעליך לבצע כל שדה בנפרד.
- סוג JSON שמצוין במפורש בארגומנט השני בפונקציה ParseJSON. אפשרות זו קלה ומניעה את הצורך בערך הדינאמי .
- הקלד באופן מפורש ערך דינאמי באמצעות הפונקציה AsType . באפשרותך גם לבדוק את הסוג לפני שתנסה את ההמרה באמצעות הפונקציה IsType .
Syntax
AsType( RecordReference, TableType )
- RecordReference - נדרש. הפניה רשומה, בדרך כלל שדה בדיקת מידע המפנה אל רשומה בכל אחת ממספר טבלאות.
- TableType - נדרש. הטבלה הספציפית לה יש לשדר את הרשומה.
AsType( DynamicValue, TypeSpecification )
- DynamicValue - נדרש. ערך דינאמי מהפונקציה ParseJSON או מהשיחה של API.
- TypeSpecification - נדרש. שם סוג או מפרט סוג שאתה מגדיר באמצעות הפונקציה Type.
IsType( RecordReference, TableType )
- RecordReference - נדרש. הפניה של רשומה, לעתים שדה בדיקת מידע שיכול להפנות לרשומה בטבלאות מרובות כלשהן.
- TableType - נדרש. הטבלה הספציפית לבדיקה.
IsType( DynamicValue, TypeSpecification )
- DynamicValue - נדרש. ערך דינאמי מהפונקציה ParseJSON או קריאה ל- API.
- TypeSpecification - נדרש. שם הסוג או מפרט הסוג שמוגדרים באמצעות הפונקציה Type.
Examples
Record References
הנושא הבנת הפניות של רשומות ובדיקות מידע פולימורפיות מכיל דוגמאות נרחבות.
צור יישום בד ציור ריק עבור מחשבי Tablet.
בחלונית הימנית , בחר נתונים>הוסף נתונים ולאחר מכן הוסף טבלאות של תיקי לקוחות ואנשי קשר.
בחלונית הימנית, בחר (הוסף + ) גלריה >אנכית>ריקה של פריסה.
בחר Connect to data (התחבר לנתונים) ולאחר מכן בחר אנשי קשר כמקור הנתונים.
הגדר את פריסת הגלריה לכותרת ולכותרת משנה.
בחלונית נתונים, פתח את הרשימה Title1 ולאחר מכן בחר שם מלא.
בחר את פקד התווית Subtitle1.
הגדר את המאפיין Text של Subtitle1 לנוסחה זו:
If( IsBlank( ThisItem.'Company Name' ), "--", IsType( ThisItem.'Company Name', Accounts ), "Account: " & AsType( ThisItem.'Company Name', Accounts ).'Account Name', "Contact: " & AsType( ThisItem.'Company Name', Contacts ).'Full Name' )
כותרת המשנה בגלריה מציגה את הערכים הבאים:
- "--" אם 'שם חברה' הוא ריק.
- "חשבון: " ואת השדה 'שם חשבון ' מהטבלה ' חשבונות' אם השדה 'שם חברה' מתייחס לחשבון.
- "איש קשר: " ואת השדה 'שם מלא ' מהטבלה ' אנשי קשר' אם השדה 'שם חברה' מפנה אל איש קשר.
התוצאות שלך עשויות להיות שונות מכיוון שניתן לשנות את הנתונים לדוגמה כדי להציג סוגי תוצאות נוספים.
Dynamic values
הדוגמאות הבאות מציגות רשומת JSON פשוטה המפורשת בדרכים שונות על-ידי ParseJSON, AsTypeוב IsType - Pac CLI Power Fx REPL.
בדוגמה ראשונה זו, לא מסופקים פרטי סוג ל- ParseJSON, ולכן היא מחזירה ערך דינאמי.
>> Set( rec, ParseJSON( "{""a"":1}" ) )
rec: <Dynamic: Use Value, Text, Boolean, or other functions to establish the type>
השדה מומר באופן מרומז למספר כאשר משתמשים בו בהקשר מספרי.
>> 1 + rec.a
2
כחלופה, דוגמה זו ממירה במפורש את הרשומה לרשומה מסווגת ב- Power Fx עם הארגומנט השני ל- arseJSON..
>> ParseJSON( "{""a"":1}", Type( {a: Number} ) )
{a:1}
לחלופין, דוגמה זו ממירה באופן מפורש את הרשומה רשומה מסוג Power Fx שהוקלדה באמצעות AsType.
>> AsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
{a:1}
לבסוף, אם אינך בטוח, דוגמה זו בודקת את הסוג לפני המרתו עם הפונקציה IsType .
>> IsType( ParseJSON( "{""a"":1}" ), Type( {a: Number} ) )
true