แชร์ผ่าน


ฟังก์ชัน AsType และ IsType

ใช้กับ: แอปพื้นที่ทำงาน แอปแบบจำลอง Power Platform CLI

ตรวจสอบการอ้างอิงเรกคอร์ดสำหรับประเภทตารางเฉพาะ (IsType) และถือว่าการอ้างอิงเป็นชนิดเฉพาะ (AsType)

หมายเหตุ

คำสั่ง PAC CLI pac power-fx ไม่สนับสนุน IsType

Description

อ่าน ทำความเข้าใจการอ้างอิงเรกคอร์ดและการค้นหา polymorphic สำหรับการแนะนำที่กว้างขึ้นและรายละเอียดเพิ่มเติม

ฟิลด์การค้นหามักจะอ้างอิงถึงเรกคอร์ดในตารางใดตารางหนึ่ง เนื่องจากชนิดของตารางมีการกำหนดไว้อย่างดี คุณจึงสามารถเข้าถึงฟิลด์ของการค้นหาได้โดยใช้เครื่องหมายจุดอย่างง่าย ตัวอย่างเช่น First( Accounts ).'Primary Contact'.'Full Name' เริ่มจากตาราง บัญชีลูกค้าองค์กร ไปที่เรกคอร์ด ผู้ติดต่อหลัก ในตาราง ผู้ติดต่อ และแยกฟิลด์ ชื่อเต็ม

Microsoft Dataverse ยังสนับสนุนฟิลด์การค้นหาแบบ polymorphic ซึ่งสามารถอ้างถึงเรกคอร์ดจากชุดของตารางได้ดังในตัวอย่างเหล่านี้

ฟิลด์การค้นหา สามารถอ้างอิงไปยัง
เจ้าของ ผู้ใช้ หรือ Teams
ลูกค้า บัญชี หรือ ผู้ติดต่อ
เกี่ยวกับ บัญชีผู้ติดต่อบทความความรู้ ฯลฯ

ในสูตรพื้นที่ทำงาน ให้ใช้การอ้างอิงเรกคอร์ดเพื่อทำงานกับการค้นหาแบบหลายรูปแบบ เนื่องจากการอ้างอิงเรกคอร์ดสามารถอ้างอิงถึงตารางต่างๆ คุณจึงไม่ทราบว่าฟิลด์ใดจะพร้อมใช้งานเมื่อคุณเขียนสูตร เครื่องหมาย Record.Field ไม่สามารถใช้ได้ สูตรเหล่านั้นจะต้องปรับให้เข้ากับเรกคอร์โที่แอปพบเมื่อทำงาน

ฟังก์ชัน IsType จะทดสอบว่าการอ้างอิงฟังก์ชันอ้างอิงถึงชนิดตารางเฉพาะหรือไม่ ฟังก์ชันส่งคืน Boolean 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 โดยไม่มี isType หรือ AsType:

Filter( Accounts, Owner = First( Users ) )

ในทำนองเดียวกัน คุณสามารถใช้การอ้างอิงเรกคอร์ดด้วยฟังก์ชัน Patch:

Patch( Accounts, First( Accounts ), { Owner: First( Teams ) } )

หากใช้ในบริบทเรกคอร์ด เช่น ภายในคัวควบคุม Gallery หรือ Edit form คุณอาจต้องใช้ ตัวดำเนินการแก้ความกำกวมส่วนกลาง เพื่ออ้างอิงชนิดตาราง ตัวอย่างเช่น สูตรนี้จะมีผลบังคับใช้กับแกลเลอรีที่แสดงรายการผู้ติดต่อที่ ชื่อบริษัท เป็นการค้นหา ลูกค้า:

If( IsType( ThisItem.'Company Name', Accounts ),
    AsType( ThisItem.'Company Name', Accounts ).'Account Name',
    AsType( ThisItem.'Company Name', Contacts ).'Full Name'
)

สำหรับทั้งสองฟังก์ชัน คุณต้องระบุชนิดโดยใช้ชื่อของแหล่งข้อมูลที่เชื่อมต่อกับตาราง เพื่อให้สูตรทำงานได้ คุณต้องเพิ่มแหล่งข้อมูลลงในแอปสำหรับประเภทใดๆ ที่คุณต้องการทดสอบหรือคำนวณ ตัวอย่างเช่น คุณต้องเพิ่มตาราง ผู้ใช้ เป็นแหล่งข้อมูล หากคุณต้องการใช้ IsType และ AsType ด้วยการค้นหาและเรกคอร์ด เจ้าของ จากตารางนั้น คุณสามารถเพิ่มได้เฉพาะแหล่งข้อมูลที่คุณใช้จริงในแอปของคุณเท่านั้น คุณไม่จำเป็นต้องเพิ่มตารางทั้งหมดที่การค้นหาสามารถอ้างอิงได้

หากเรกคอร์ดอ้างอิง ว่างเปล่าIsType ส่งคืน FALSE และ AsType ส่งคืน ว่างเปล่า ทุกฟิลด์เรกคอร์ด ว่างเปล่า จะเป็น ว่างเปล่า

ไวยากรณ์

AsType( RecordReference, TableType )

  • RecordReference - จำเป็น การอ้างอิงเรกคอร์ด ซึ่งมักจะเป็นฟิลด์การค้นหาที่สามารถอ้างอิงถึงเรกคอร์ดในตารางใดก็ได้
  • TableType - จำเป็น ตารางเฉพาะที่ควรส่งบันทึก

IsType( RecordReference, TableType )

  • RecordReference - จำเป็น การอ้างอิงเรกคอร์ด ซึ่งมักจะเป็นฟิลด์การค้นหาที่สามารถอ้างอิงถึงเรกคอร์ดในตารางใดก็ได้
  • TableType - จำเป็น ตารางเฉพาะที่จะทดสอบ

ตัวอย่างเช่น

ทำความเข้าใจการอ้างอิงเรกคอร์ดและการค้นหา polymorphic มีตัวอย่างมากมาย

  1. สร้างแอปพื้นที่ทำงานเปล่าสำหรับแท็บเล็ต

  2. บนบานหน้าต่างด้านซ้าย เลือก ข้อมูล>เพิ่มข้อมูล แล้วเพิ่มตาราง บัญชีลูกค้าองค์กร และ ผู้ติดต่อ

    แอปว่างที่มีแหล่งข้อมูลสองแห่ง: บัญชีลูกค้าองค์กรและผู้ติดต่อ

  3. ที่บานหน้าต่างด้านซ้าย เลือก + (แทรก) >เค้าโครง>แกลเลอรีแนวตั้งว่างเปล่า

    แทรกตัวควบคุมแกลเลอรีด้วยเค้าโครงว่างแนวตั้ง

  4. เลือก เชื่อมต่อกับข้อมูล แล้วเลือก ผู้ติดต่อ เป็นแหล่งข้อมูล

  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'
    )
    

    ตอนนี้หน้าจอเสร็จสมบูรณ์แล้ว แสดงบัญชีลูกค้าองค์กรและผู้ติดต่อที่ผสมในแกลเลอรี

    คำบรรยายในแกลเลอรีแสดงค่าเหล่านี้:

    • "-" ถ้าหาก 'ชื่อ บริษัท' เป็น ว่างเปล่า
    • "บัญชี:" แล้วก็ฟิลด์ ชื่อบัญชี จากตาราง บัญชี ถ้าฟิลด์ ชื่อบริษัท หมายถึงบัญชี
    • "ผู้ติดต่อ:" แล้วก็ฟิลด์ ชื่อเต็ม จากตาราง ผู้ติดต่อ ถ้าฟิลด์ ชื่อบริษัท หมายถึงผู้ติดต่อ

    ผลลัพธ์ของคุณอาจแตกต่างจากในหัวข้อนี้ เนื่องจากใช้ข้อมูลตัวอย่างที่ได้รับการแก้ไขเพื่อแสดงผลลัพธ์ประเภทเพิ่มเติม