الدالات SaveData وLoadData وClearData

ينطبق على: تطبيقات اللوحة

حفظ وإعادة تحميل مجموعة من مساحة تخزين مضيف التطبيق.

‏‫ملاحظة‬

يمكن الآن استخدام هذه الوظائف عند تشغيل تطبيق في مستعرض ويب كميزة تجريبية. يتم تعطيل هذه الميزة بشكل افتراضي. ولتمكينها، انتقل إلى الإعدادات>الميزات التجريبية>تجريبية>تم تمكين SaveData، وLoadData، وClearData على مشغل ويب." وشغّل المفتاح. لإرسال التعليقات المتعلقة بهذه الميزة التجريبية، انتقل إلى منتدى مجتمع Power Apps.

الوصف

تخزن وظيفة SaveData مجموعة لاستخدامها لاحقًا تحت اسم.

تقوم وظيفة LoadData بإعادة تحميل مجموعة بالاسم الذي تم حفظه سابقًا باستخدام SaveData. لا يمكنك استخدام هذه الوظيفة لتحميل مجموعة من مصدر آخر.

تمسح وظيفة ClearData التخزين باسم محدد أو يمسح كل مساحة التخزين المرتبطة بالتطبيق إذا لم يتم تقديم اسم.

‏‫ملاحظة‬

  • الاسم المشترك بين SaveData وLoadData وClearData هو مفتاح وليس اسم ملف. لا يلزم أن تكون معقدة لأن الأسماء فريدة لكل تطبيق ولا يوجد خطر من تضارب الأسماء. يجب ألا يحتوي الاسم على أي من هذه الأحرف: *".?:\<>|/.
  • إن SaveData محدد بـ 1 ميغابايت من البيانات لـ Power Apps الذي يتم تشغيله في Teams وفي مستعرض ويب. لا يوجد حد ثابت في Power Apps التي يتم تشغيلها في مشغّل محمول، ولكن توجد حدود عملية تمت مناقشتها أدناه
  • لا تستخدم SaveData لتخزين البيانات الحساسة على الويب حيث سيتم تخزينها في نص عادي.

استخدم هذه الوظائف لتحسين أداء بدء تشغيل التطبيق من خلال:

  • تخزين البيانات مؤقتًا في صيغة App.OnStart في أول تشغيل.
  • إعادة تحميل ذاكرة التخزين المؤقت المحلية في مرات التشغيل التالية.

يمكنك أيضًا استخدام هذه الوظائف لإضافة قدرات بسيطة دون اتصال إلى تطبيقك.

لا يمكنك استخدام هذه الوظائف داخل المتصفح عندما:

  • تأليف التطبيق في Power Apps Studio.

لاختبار التطبيق الخاص بك، قم بتشغيله في Power Apps Mobile على جهاز iPhone أو Android.

هذه الوظائف محدودة بكمية ذاكرة التطبيق المتاحة لأنها تعمل على مجموعة في الذاكرة. يمكن أن تختلف الذاكرة المتاحة بناءً على عوامل مثل:

  • الجهاز ونظام التشغيل.
  • الذاكرة التي يستخدمها مشغل Power Apps.
  • تعقيد التطبيق مع الشاشات وعناصر التحكم.

اختبر تطبيقك باستخدام السيناريوهات المتوقعة على نوع الأجهزة التي تتوقع تشغيلها عند تخزين البيانات الكبيرة. توقع أن يكون لديك ما بين 30 ميجابايت و70 ميجابايت من الذاكرة المتاحة بشكل عام.

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

سيتم إلحاق البيانات المحملة بالمجموعة. استخدم وظيفة Clear قبل الاتصال بوظيفة LoadData إذا كنت ترغب في البدء بمجموعة فارغة.

أمان البيانات

يمكنك عزل البيانات المخزنة مع SaveData وتشفيرها بتأنٍ وتحديد ما إذا كان ذلك مناسبًا لاحتياجاتك، خاصة إذا كانت الأجهزة مشتركة بين مستخدمين متعددين.

يتم عزل البيانات المخزنة مع SaveData عن Power Apps الأخرى عن طريق مشغلي Power Apps. يتم تخزين البيانات بالاستناد إلى معرف التطبيق، ما يؤدي تلقائيًا إلى عزل مساحة اسم SaveData بين Power Apps.

يكون نظام التشغيل والمستعرض مسؤولان عن عزل البيانات بين Power Apps والتطبيقات الأخرى على جهاز ومع مواقع ويب. على سبيل المثال ، يتولى نظام التشغيل مسؤولية عزل البيانات المخزنة في Microsoft Outlook عن البيانات المخزنة في Power Apps، وكذلك عن طريق عزل تلك البيانات من مواقع ويب مثل Bing.com أو PowerApps‎.com يتم استخدام نظام التشغيل المضمن في مرافق بيئة الاختبار المعزولة لتخزين SaveData الذي لا يمكن في العادة الوصول إليه أو إخفائه عن المستخدم.

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

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

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

بناء الجملة

SaveData( Collection, Name )
LoadData( Collection, Name [, IgnoreNonexistentFile ])

  • المجموعة - مطلوبة. المجموعة المراد تخزينها أو تحميلها.
  • الاسم - مطلوب. اسم المخزن. يجب أن يكون الاسم متماثلاً لحفظ وتحميل نفس مجموعة البيانات. لا تتم مشاركة مساحة الاسم مع التطبيقات الأخرى. يجب ألا تحتوي الأسماء على أي من هذه الأحرف: *".?:\<>|/.
  • IgnoreNonexistentFile - اختياري. قيمة منطقية تشير إلى ما يجب فعله إذا لم يكن الملف موجودًا بالفعل. استخدم خطأ (الافتراضي) لإرجاع خطأ وصواب لمنع الخطأ.

ClearData( [الاسم] )

  • الاسم - اختياري. اسم مساحة التخزين التي تم حفظها مسبقا باستخدام SaveData. إذا لم يتم توفير اسم، يتم مسح كل مساحة التخزين المرتبطة بالتطبيق.

الأمثلة

الصيغة الوصف النتيجة
SaveData( LocalCache, "MyCache" ) احفظ مجموعة LocalCache إلى جهاز المستخدم تحت اسم "MyCache"، مناسب لـ LoadData ليتم استرداده لاحقًا. يتم حفظ البيانات في مضيف التطبيق تحت اسم "MyC هذا".
LoadData( LocalCache, "MyCache" ) تحميل مجموعة LocalCache من جهاز المستخدم تحت اسم "MyCache"، تم تخزينها مسبقًا مع مكالمة إلى SaveData. يتم تحميل البيانات من مضيف التطبيق تحت اسم "MyCache".
ClearData( "MyCache" ) يتم مسح مساحة التخزين تحت اسم "MyCache". لن تكون أية بيانات مخزنة أسفل هذا الاسم متوفرة بعد الآن من خلال LoadData. يتم إزالة البيانات من مضيف التطبيق تحت اسم "MyCache".
ClearData() مسح كل التخزين المقترن بهذا التطبيق. لا تتأثر البيانات المخزنة بواسطة تطبيقات أخرى. تتم إزالة جميع البيانات من مضيف التطبيق.

مثال بسيط دون اتصال

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

‏‫ملاحظة‬

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

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

  2. أضف عنصر تحكم Text input وعنصر تحكم Camera وقم بترتيبهما تقريبًا على هو مبين:

    تمت إضافة عنصر تحكم text input وcamera إلى شاشة فارغة.

  3. أضف عنصر تحكم Button.

  4. انقر نقرًا مزدوجًا فوق عنصر تحكم الزر لتغيير نص الزر إلى إضافة عنصر (أو تعديل خاصية Text).

  5. قم بتعيين خاصية OnSelect الخاص بعنصر تحكم الزر إلى هذه الصيغة التي ستضيف عنصرًا إلى مجموعتنا:

    Collect( MyItems, { Item: TextInput1.Text, Picture: Camera1.Photo } )
    

    إضافة عنصر تحكم زر مع النص

  6. أضف عنصر تحكم Button آخر.

  7. انقر نقرًا مزدوجًا فوق عنصر تحكم الزر لتغيير نص الزر إلى حفظ بيانات (أو تعديل خاصية Text).

  8. قم بتعيين خاصية OnSelect الخاصة بعنصر تحكم الزر إلى هذه الصيغة لحفظ مجموعتنا إلى الجهاز المحلي:

    SaveData( MyItems, "LocalSavedItems" )
    

    إضافة عنصر تحكم زر مع النص

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

  9. أضف عنصر تحكم Button ثالثًا.

  10. انقر نقرًا مزدوجًا فوق عنصر تحكم الزر لتغيير نص الزر إلى تحميل بيانات (أو تعديل خاصية Text).

  11. قم بتعيين خاصية OnSelect الخاصة بعنصر تحكم الزر إلى هذه الصيغة لتحميل مجموعتنا من الجهاز المحلي:

    LoadData( MyItems, "LocalSavedItems" )
    

    إضافة عنصر تحكم زر مع النص

  12. أضف عنصر تحكم Gallery مع تخطيط عمودي يتضمن صورة ومناطق نصية:

    التحديد المتعدد للمعرض، تم تحديد

  13. عند المطالبة، حدد مجموعة MyItems كمصدر بيانات لهذا المعرض. سيؤدي هذا إلى تعيين خاصية Items الخاص بعنصر تحكم Gallery:

    اختيار معرض مصدر البيانات. يجب أن يعين عنصر تحكم الصورة في قالب المعرض القيمة الافتراضية لخاصية Image إلى ThisItem.Picture ويجب أن يعين عنصرا تحكم التسمية القيمة الافتراضية لخصائص Text إلى ThisItem.Item. تحقق من هذه الصيغ إذا لم تشاهد أي شيء في المعرض بعد إضافة العناصر في الخطوات التالية.

  14. ضع عنصر التحكم على يمين عناصر التحكم الأخرى:

    المعرض في الموضع الأيمن من الشاشة.

  15. احفظ تطبيقك. إذا كانت هذه هي المرة الأولى التي يتم فيها حفظها ، فلا حاجة لنشرها. إذا لم تكن هذه هي المرة الأولى ، فقم بنشر التطبيق بعد الحفظ.

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

    تشغيل التطبيق دون إضافة عناصر. بمجرد تنزيل التطبيق، يمكنك قطع الاتصال بالشبكة وتشغيله دون اتصال.

  17. أدخل الاسم والتقط صورة لعنصر.

  18. حدد الزر إضافة عنصر. كرر إضافة عناصر عدة مرات لتحميل مجموعتك.

    تشغيل تطبيق مع إضافة ثلاثة عناصر.

  19. حدد الزر حفظ بيانات. سيؤدي ذلك إلى حفظ البيانات في مجموعتك على جهازك المحلي.

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

  21. قم بتشغيل التطبيق مرة أخرى. ستظهر المجموعة في الذاكرة مرة أخرى على أنها فارغة في المعرض.

    تشغيل التطبيق مرة أخرى مع عدم إضافة أي عناصر.

  22. حدد الزر تحميل بيانات. ستتم إعادة نشر المجموعة من البيانات المخزنة على جهازك وستعود أغراضك إلى المعرض. كانت المجموعة فارغة قبل أن يستدعي هذا الزر وظيفة LoadData؛ لم تكن هناك حاجة إلى استدعاء وظيفة Collect أو ClearCollect قبل تحميل البيانات من المخزن.

    تشغيل تطبيق مع استعادة العناصر الثلاثة بعد استدعاء وظيفة LoadData.

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

    تشغيل تطبيق مع استعادة ستة عناصر بعد استدعاء وظيفة LoadData مرتين.

مثال أكثر تقدمًا دون اتصال بالإنترنت

للحصول على مثال مفصل، راجع مقالة الإمكانات البسيطة دون اتصال.