نقل البيانات بين المجموعات ومصادر البيانات باستخدام Collect

مكتمل

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

استخدام دالة Collect

تضيف دالة Collect السجلات إلى مصدر البيانات. إنه قادر على إضافة قيمة واحدة أو سجل أو جدول إلى مجموعة. يمكن استخدامه لإنشاء مجموعة والكتابة إلى مصدر بيانات، مثل قائمة SharePoint أو جدول Dataverse. يمكّنك من كتابة بيانات مجمعة دون استخدام الدالة ForAll/Patch للتكرار عبر بياناتك.

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

Collect('YourDataSource', {Title: 'First Try', StartDate: Today()})

طالما أن مصدر البيانات الخاص بك يحتوي على أعمدة تسمى 'Title' و'StartDate' (وهما أنواع البيانات والنص والتاريخ، على التوالي)، تنشئ هذه الصيغة سجلاً فِي مصدر البيانات حيث يكون العنوان هو 'First Try' وStartDate هو تاريخ اليوم.

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

يمكنك أيضًا كتابة جدول كامل لمصدر بياناتك عبر عبارة Collect، مرة أخرى، طالما أن بنية البيانات متطابقة.

أخيرًا، يمكنك استخدام إصدار مبسط من الصيغة لكتابة مجموعة كاملة إلى مصدر البيانات الخاص بك عبر بناء جملة مثل هذا:

Collect('YourDataSource', colMyCollection)

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

باختصار، تذكر هذه الشروط الثلاثة عند استخدام Collect للكتابة إلى مصدر البيانات الخاص بك:

  • يجب أن تكون الأعمدة الموجودة فِي مجموعتك موجودة فِي مصدر البيانات. يمكن أن يحتوي مصدر البيانات على أعمدة أخرى (مثل الأعمدة التي ينشئها النظام)، ولكن يجب أن تكون الأعمدة التي تكتب منها فِي مجموعتك موجودة فِي مصدر البيانات الذي تكتب إليه. (إذا كانت مجموعتك تحتوي على عمود نصي يسمى عنصر واجهة المستخدم، فيجب أن يحتوي مصدر بياناتك أيضًا على عمود نص يسمى عنصر واجهة المستخدم).

  • يجب أن يتطابق نوع البيانات (مثل نص أو رقم أو تاريخ) لكل عمود فِي المجموعة مع نوع البيانات الوجهة.

  • يجب أن تتضمن مجموعتك بيانات لأي أعمدة إلزامية فِي مصدر البيانات.

تلميح

إذا لزم الأمر، يمكنك استخدام الوظائف لتحويل مجموعتك لتتوافق مع مصدر البيانات الخاص بك، مثل:

  • AddColumns
  • DropColumns
  • RenameColumns
  • ShowColumns

لمزيد من المعلومات، راجع الدالات AddColumns، وDropColumns، وRenameColumns، وShowColumns فِي Power Apps.

لمزيد من المعلومات حول دالة التجميع والمجموعات، راجع تجميع الوثائق.

Patch‎ وForAll

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

على سبيل المثال، يمكنك إنشاء مجموعة باسم collectColorData تحتوي على ثلاثة أعمدة: Name وFavoriteColor وUpdateSource. يمكن أن يكون العمود تحديث المصدر عموداً منطقياً (صواب أو خطأ). من خلال عملية العمل مع التطبيق، يقوم المستخدم بتحديث القيمة فِي العمود ثم تحديد زر يقولتحديث المصدر. يمكنك تعيين خاصية OnSelect للزر إلى هذه الصيغة:

ForAll(Filter(collectColorData, UpdateSource = true),
Patch(DataSourceName, Defaults(DataSourceName), {NameColumnSource: Name,
FavoriteColorColumnSource: FavoriteColor}))

ستضيف هذه الصيغة سجلات جديدة إلى مصدر البيانات المسمى DataSourceالاسم، وتعيين عمودي الاسمColumnSource وFavoriteColorColumnSource بالقيم من مجموعتك ولكن فقط للسجلات التي تم تعيين UpdateSource فيها إلى true.

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

لمزيد من المعلومات حول ForAll، راجع وثائق ForAll.

لمزيد من المعلومات حول Patch‎، راجع وثائق Patch‎.

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