التعامل مع العلاقات فِي Power Apps

مكتمل

يقدم Power Apps بالفعل مجموعة غنية من الوظائف وعناصر التحكم المصممة خصيصًا لإنشاء العلاقات واستخدامها داخل تطبيقاتك. عادةً ما تجد العلاقات تطبيقين أساسيين فِي معظم التطبيقات.

أولاً، كما تمت مناقشته سابقًا، يتضمن تخزين البيانات عبر جداول متعددة ثم استخدام العلاقات لربط هذه البيانات بسلاسة. ترشدك هذه الوحدة خلال ربط الجداول، مثل العملاء والفواتير، مما يوضح كيفية تكوين ارتباطات ذات معنى فيما بينها.

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

توصيل جدول أصلي وفرعي فِي Power Apps

في هذا المثال، نتعرف على كيفية الإشارة إلى علاقة الأصل والطفل باستخدام عامل التصفية Power Apps ودالة LookUp.

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

المعرّف CustomerName رقم هاتف العميل
1 Contoso 513-555-1212
2 Fabrikam 206-555-1313
3 Tailspin Toys 404-555-1414

يعد جدول الفواتير الجدول الفرعي فِي هذه العلاقة. علي سبيل المثال، اسم مصدر البيانات لهذا الجدول هو "جدول الفواتير". يبدو الجدول كما يلي.

المعرّف InvoiceDate وصف الفاتورة مبلغ الفاتورة معرّف العميل
1 5/16/2020 ‏‫الأجزاء 412.33 1
2 5/1/2020 الخدمة 205.44 3
3 5/6/2020 السفر 132.98 1
4 5/31/2020 ‏‫الأجزاء 75.55 2

في Power Apps، إذا تم إنشاء هذه الجداول كمصادر بيانات، فيمكنك استخدام عنصر تحكم المعرض لعرض محتويات جدول العميل. يمكنك استخدام عنصر تحكم المعرض من خلال الخطوات التالية:

  1. أدرج عنصر تحكم المعرض على لوحتك.

  2. قم بتعيين الخاصية Items إلى CustomerTable.

يعرض المعرض قائمة بجميع سجلات العملاء الموجودة فِي الجدول. هذا هو Gallery1.

لعرض محتويات InvoiceTable الكاملة، اتبع الخطوات الآتية:

  1. أدرج عنصر تحكم المعرض على لوحتك.

  2. يمكنك تعيين الخاصية Items إلى InvoiceTable.

يعرض هذا المعرض قائمة بجميع سجلات الفواتير فِي الجدول. هذا Gallery2.

الآن، لعرض الفواتير الخاصة بالعميل المحدّد فِي Gallery1 فقط، قد تحتاج إلى تعديل الخاصية Items الخاصة بـ Gallery2 بشيء مماثل لما يلي:

Filter(InvoiceTable, CustomerID = Gallery1.Selected.ID)

تقوم المعادلة بما يلي.

وسيطة المعادلة إدخال المعادلة الملاحظات
المصدر InvoiceTable
logical_test CustomerID = Gallery1.Selected.ID CustomerID هو اسم العمود من InvoiceTable. Gallery1.Selected. المعرّف هو قيمة عمود المعرّف للسجل المحدّد فِي المعرض.

تتسبب المعادلة فِي قيام Gallery2 بعرض سجلات الفواتير للعميل المحدّد فِي Gallery1.

البحث عن المعلومات المخزنة فِي السجل الأصلي من السجل الفرعي

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

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

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

لعرض محتويات InvoiceTable الكاملة، يمكنك اتباع الخطوات الآتية:

  1. أدرج عنصر تحكم المعرض على لوحتك.

  2. قم بتعيين الخاصية Items إلى InvoiceTable.

  3. قم بتعيين التخطيط إلى العنوان والعنوان الفرعي والنص الأساسي.

  4. في جزء البيانات، قم بتعيين العنوان إلى InvoiceDate والعنوان الفرعي إلى InvoiceAmount والنص الأساسي إلى CustomerID.

يعرض هذا المعرض قائمة بجميع سجلات الفواتير فِي الجدول. إذا أردت أن تظهر حقول التاريخ مماثلة للصورة أدناه، فيمكنك تعديل حقل العنوان بحيث يُقرأ: Text(ThisItem.InvoiceDate,DateTimeFormat.ShortDate) إنه هو Gallery3.

لقطة شاشة للمعرض مع قائمة تتضمن جميع سجلات الفواتير.

لا يؤدي إظهار قيمة المعرّف لكل عميل إلى توفير الكثير من المعلومات لمستخدم التطبيق. وبالتالي، لعرض اسم العميل، بدلاً من المعرّف، يمكننا القيام بما يلي:

في Gallery3، حدّد تسمية النص الأساسي، وقم بتعيين الخاصية Text إلى:

LookUp(CustomerTable, ID = ThisItem.CustomerID, CustomerName)

تقوم المعادلة بما يلي:

وسيطة المعادلة إدخال المعادلة‏ الملاحظات
المصدر جدول العملاء
logical_test ID = ThisItem.CustomerID المعرّف هو اسم العمود من جدول العملاء. ThisItem.CustomerID هو قيمة عمود CustomerID للسجل الحالي فِي المعرض.
النتيجة CustomerName هذا هو العمود الذي يتم إرجاعه للسجلات المطابقة لـ logical_test.

بعد اجراء هذا التغيير، يوفر الآن Gallery3 اسم المورد.

لقطة شاشة لقائمة المعرض سهلة الاستخدام التي تتضمن سجلات الفواتير.

ملاحظات الأداء

يمكن أن يكون لإجراء عمليات البحث من سجل فرعي إلى سجله الأصل داخل المعرض آثارًا كبيرة على الأداء. في السيناريو الموضح، سيؤدي استخدام الدالة LookUp داخل المعرض إلى تشغيل استعلامات مصدر البيانات عدة مرات - مرة واحدة لكل سجل فِي InvoiceTable.

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

قبل تنفيذ استدعاءات مصدر البيانات، خاصة داخل المعرض حيث تتم معالجة سجلات متعددة، من الضروري تقييم مقايضات الأداء. يعد تحسين هذه الاستعلامات، ربما عن طريق تخزين البيانات مؤقتًا أو إعادة هيكلة المنطق لتقليل المكالمات المتكررة، أمرًا ضروريًا للحفاظ على الأداء الأمثل للتطبيق. ضع فِي اعتبارك دائمًا حجم بياناتك والتأثير المحتمل على الأداء عند تنفيذ مثل هذه العمليات ضمن سياق المعرض.

يستخدم أحد الخيارات الأفضل لهذا السيناريو مجموعة أو وسائل أخرى للاستعلام عن جميع سجلات العملاء وتخزينها، ثم إجراء البحث فِي مقابل المجموعة. لمزيد من المعلومات حول أداء البيانات، راجع منشور المدونة على تقديرات الأداء باستخدام Power Apps.

في الوحدة التالية، ستتعلم كيف يقوم Microsoft Dataverse بإزالة كافة الإصدارات المرتبطة بالبيانات المرتبطة من خلال التنقل لأسفل تلقائيًا من أجلك.