AsTypeופונקציות IsType

Function Applies to
AsType אפליקציות Canvas אפליקציות Copilot Studio מונחות מודלים אפליקציות Power Platform CLI Dataverse פונקציות Power Pages
IsType אפליקציות Canvas אפליקציות Copilot Studio מונחות מודלים פונקציות Dataverse Power Pages

בדיקה אם הפניה רשומה היא סוג טבלה מסוים (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. הנה כמה אפשרויות:

  1. הקלד במפורש את השדה בנקודה שבה אתה משתמש בו. לדוגמה, אובייקט מומר למספר אם אתה משתמש בו עם + האופרטור, אם ניתן להמיר אותו למספר. אפשרות זו עלולה לגרום להמרות בלתי צפויות ולא ניתן להמיר רשומות וטבלאות באופן שלם.
  2. הקלד באופן מפורש כל שדה בנפרד עם הפונקציות עשרוני, טקסט, DateTime, GUID ופונקציות בנאי מסוגים אחרים. אפשרות זו היא הכי פולשנית לנוסחאות שלך מכיוון שעליך לבצע כל שדה בנפרד.
  3. סוג JSON שמצוין במפורש בארגומנט השני בפונקציה ParseJSON. אפשרות זו קלה ומניעה את הצורך בערך הדינאמי .
  4. הקלד באופן מפורש ערך דינאמי באמצעות הפונקציה AsType . באפשרותך גם לבדוק את הסוג לפני שתנסה את ההמרה באמצעות הפונקציה IsType .

Syntax

AsType( RecordReference, TableType )

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

AsType( DynamicValue, TypeSpecification )

  • DynamicValue - נדרש. ערך דינאמי מהפונקציה ParseJSON או מהשיחה של API.
  • TypeSpecification - נדרש. שם סוג או מפרט סוג שאתה מגדיר באמצעות הפונקציה Type.

IsType( RecordReference, TableType )

  • RecordReference - נדרש. הפניה של רשומה, לעתים שדה בדיקת מידע שיכול להפנות לרשומה בטבלאות מרובות כלשהן.
  • TableType - נדרש. הטבלה הספציפית לבדיקה.

IsType( DynamicValue, TypeSpecification )

Examples

Record References

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

  1. צור יישום בד ציור ריק עבור מחשבי Tablet.

  2. בחלונית הימנית , בחר נתונים>הוסף נתונים ולאחר מכן הוסף טבלאות של תיקי לקוחות ואנשי קשר.

    יישום ריק עם שני מקורות נתונים: תיקי לקוחות ואנשי קשר.

  3. בחלונית הימנית, בחר (הוסף + ) גלריה >אנכית>ריקה של פריסה.

    הוספת פקד gallery בעל פריסה אנכית ריקה.

  4. בחר Connect to data (התחבר לנתונים) ולאחר מכן בחר אנשי קשר כמקור הנתונים.

  5. הגדר את פריסת הגלריה לכותרת ולכותרת משנה.

    פתיחת בורר הפריסות מחלונית המאפיינים.

    הגדרת הפריסה לכותרת וכותרת משנה.

  6. בחלונית נתונים, פתח את הרשימה Title1 ולאחר מכן בחר שם מלא.

    הגדרת ערך כותרת.

  7. בחר את פקד התווית Subtitle1.

    הגדרת ערך כותרת משנה.

  8. הגדר את המאפיין 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