AsTypeودالات IsType

الوظيفة ينطبق على
AsType تطبيقات Canvas لتطبيقات Copilot Studio المستندة إلى نموذج وظائف Power Platform CLI Dataverse Power Pages
IsType تطبيقات Canvas لتطبيقات Copilot Studio المستندة إلى نموذج Dataverse تعمل Power Pages

التحقق من أن مرجع السجل هو نوع جدول معين (IsType) ويعامل المرجع على أنه هذا النوع (AsType).

إشعار

لا تدعم IsTypeأوامر PAC CLI pac power-fx .

الوصف

AsType يمكن استخدام الدالتين و IsType لتحويل مراجع السجلات (على سبيل المثال عمليات البحث متعددة الأشكال في Dataverse) والقيم الديناميكية إلى قيم مكتوبة يمكن استخدامها مباشرة.

مراجع السجلات

أقرا فهم مراجع السجلات وعمليات البحث متعددة الاشكال للحصول على مقدمة أوسع ومزيد من التفاصيل.

يشير حقل البحث عادة إلى سجلات في جدول معين. نظرًا لأن نوع الجدول محدد بشكل جيد، يمكنك الوصول إلى حقول البحث باستخدام تدوين النقاط البسيط. على سبيل المثال، First( Accounts ).'Primary Contact'.'Full Name' ينتقل من جدول الحسابات إلى سجل جهة الاتصال الرئيسية في جدول جهات الاتصال ويستخرج حقل الاسم الكامل.

كما يدعم Microsoft Dataverse حقول البحث التي قد تشير إلى سجلات من مجموعة من الجداول، كما في هذه الأمثلة.

حقل البحث يمكن الإشارة إلى
المالك المستخدمون أو الفِرق
العميل انتقل إلى الحسابات أو جهات الاتصال
بخصوص الحسابات، جهات الاتصال، مقالات المعرفة وما إلى ذلك.

في صيغ تطبيق اللوحة، استخدم مراجع السجلات للعمل مع عمليات البحث متعددة الأشكال. نظرا لأن مرجع السجل يمكن أن يشير إلى جداول مختلفة، فلا يمكنك معرفة الحقول المتوفرة في وقت التشغيل عند كتابة صيغة. لا تتوفر علامة Record.Field تحتاج هذه الصيغ إلى التكيف مع السجلات التي يواجهها التطبيق عند تشغيله.

تتحقق الدالة IsType من أن مرجع السجل يشير إلى نوع جدول معين. ترجع الدالة قيمة منطقية أو خاطئة.

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

عند استخدام هذه الدالات في سياق سجل، مثل داخل معرض أو تحرير عنصر تحكم النموذج ، قد تحتاج إلى عامل تشغيل إزالة الغموض العمومي للإشارة إلى نوع الجدول. على سبيل المثال، تعمل هذه الصيغة مع معرض يعرض قائمة جهات الاتصال حيث اسم الشركة هو بحث عن عميل :

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. ستكون كافة حقول السجل الفارغ بالقيمة فارغ.

قِيم دينَاميكية

مهم

يجب تحويل القيمة الديناميكية من واجهة برمجة تطبيقات الويب أو [دالة ParseJSON ] إلى قيمة مكتوبة معينة قبل أن تتمكن من استخدامها في Power Fx. وإليك بعض الخيارات:

  1. اكتب الحقل ضمنيا عند النقطة التي تستخدمه فيها. على سبيل المثال، يتم تحويل كائن إلى رقم إذا كنت تستخدمه مع + عامل التشغيل، إذا كان يمكن تحويله إلى رقم. يمكن أن يؤدي هذا الخيار إلى تحويلات غير متوقعة ولا يمكنه تحويل السجلات والجداول ككل.
  2. اكتب كل حقل على حدة بشكل صريح باستخدام الدالات Decimal، وText، وDateTime، وGUID، ودالات إنشاء الأنواع الأخرى. هذا الخيار هو الأكثر توغلا في الصيغ لأنك تحتاج إلى القيام بكل حقل على حدة.
  3. اكتب JSON صراحةً باستخدام الوسيطة الثانية للدالة ‏‎ParseJSON. هذا الخيار سهل ويتجنب الحاجة إلى القيمة الديناميكية .
  4. اكتب قيمة ديناميكية بشكل صريح باستخدام الدالة AsType . يمكنك أيضا التحقق من النوع قبل محاولة التحويل باستخدام الدالة IsType .

بناء الجملة

AsType( RecordReference, TableType )

  • RecordReference - مطلوب. مرجع سجل، غالبا ما يكون حقل بحث يشير إلى سجل في أي من الجداول المتعددة.
  • TableType - مطلوب. الجدول المحدد لإرسال السجل إليه.

AsType( DynamicValue, TypeSpecification )

  • DynamicValue - مطلوب. قيمة ديناميكية من دالة ParseJSON أو استدعاء API.
  • TypeSpecification - مطلوب. اسم النوع أو مواصفات النوع التي تحددها باستخدام الدالة Type.

IsType( RecordReference, TableType )

  • RecordReference - مطلوب. مرجع سجل، وغالبا ما يكون حقل البحث الذي يمكن أن يشير إلى سجل في أي من الجداول المتعددة.
  • TableType - مطلوب. الجدول المحدد الذي يجب اختباره.

IsType( DynamicValue, TypeSpecification )

  • DynamicValue - مطلوب. قيمة ديناميكية من دالة ParseJSON أو استدعاء واجهة برمجة التطبيقات.
  • TypeSpecification - مطلوب. اسم النوع أو مواصفات النوع المحددة باستخدام دالة Type.

الأمثلة

مراجع السجلات

فهم مراجع السجلات وعمليات البحث متعدد الأشكال تحتوي علي أمثلة شاملة.

  1. قم بإنشاء تطبيق لوحة فارغ للأجهزة اللوحية.

  2. في الجزء الأيمن، حدد البيانات>إضافة بيانات، ثم أضف جداول الحسابات وجهات الاتصال .

    تطبيق فارغ بمصدرين للبيانات: الحسابات وجهات الاتصال.

  3. في الجزء الأيمن، حدد + (إدراج) >تخطيط>معرض عمودي فارغ.

    قم بإدراج عنصر تحكم gallery باتجاه عمودي فارغ.

  4. حدد الاتصال بالبيانات، ثم حدد جهات الاتصال كمصدر البيانات.

  5. تعيين تخطيط المعرض إلى العنوان والعنوان الفرعي.

    فتح منتقي التخطيط من جزء الخصائص.

    تعيين تخطيط إلى العنوان والعنوان الفرعي.

  6. في جزء البيانات، افتح القائمة عنوان1، ثم حدد الاسم بالكامل.

    تعيين قيمة العنوان.

  7. حدد عنصر تحكم تسمية عنوان فرعي1.

    تعيين قيمة العنوان الفرعي.

  8. تعيين خاصية Text لـ عنوان فرعي1 لهذه الصيغة:

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

    الشاشة مكتملة الآن وتعرض الحسابات وجهات الاتصال المختلطة في المعرض.

    يعرض العنوان الفرعي في المعرض هذه القيم:

    • "--" إذا كان 'Company Name' بالقيمة blank.
    • "الحساب: " وحقل اسم الحساب من جدول الحسابات إذا كان حقل اسم الشركة يشير إلى حساب.
    • "جهة الاتصال: " وحقل الاسم الكامل من جدول جهات الاتصال إذا كان الحقل اسم الشركة يشير إلى جهة اتصال.

    يمكن أن تختلف نتائجك لأنه يمكن تعديل بيانات العينة لإظهار المزيد من أنواع النتائج.

قِيم دينَاميكية

تظهر الأمثلة التالية سجل JSON بسيط تم تفسيره بطرق مختلفة بواسطة ParseJSON و AsTypeفي IsTypePac 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 مصنف مع الوسيطة الثانية إلى ParseJSON.

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