إدارة الحالة 101: المتغيرات والمجموعات في Power Fx
By Mirko Peters ·
مرحباً بعودتكم إلى المدونة المرافقة للبودكاست! مع تقدّمكم في رحلتكم في تطوير التطبيقات منخفضة التعليمات البرمجية ضمن نظام Microsoft البيئي، ستدركون سريعاً أن الشاشات البسيطة والثابتة ليست سوى البداية. فتطبيقات الأعمال الحقيقية تحتاج إلى ذاكرة. فهي بحاجة إلى تذكّر اختيارات المستخدمين، وحفظ العناصر مؤقتاً في سلة التسوق، وتتبّع تقدّم النماذج متعددة الخطوات، ومعالجة مجموعات من السجلات قبل إعادة حفظها
Automatically translated with AI from the original post. Read the English original

مرحباً بعودتكم إلى المدونة المرافقة للبودكاست! مع تقدّمكم في رحلتكم في تطوير التطبيقات منخفضة التعليمات البرمجية ضمن نظام Microsoft البيئي، ستدركون سريعاً أن الشاشات البسيطة والثابتة ليست سوى البداية. فتطبيقات الأعمال الحقيقية تحتاج إلى ذاكرة. فهي بحاجة إلى تذكّر اختيارات المستخدمين، وحفظ العناصر مؤقتاً في سلة التسوق، وتتبّع تقدّم النماذج متعددة الخطوات، ومعالجة مجموعات من السجلات قبل إعادة حفظها في مصدر بيانات مثل Microsoft Dataverse أو SharePoint. يقودنا هذا المتطلب مباشرةً إلى مفهوم إدارة الحالة.
في حلقتنا الأخيرة من البودكاست، Microsoft Power Fx - Simply Explained، تناولنا كيف تسدّ لغة المعادلات القوية هذه الفجوة بين الإلمام بجداول البيانات وتطوير تطبيقات الأعمال واسعة النطاق. ناقشنا كيف يقود Power Fx الواجهات الديناميكية، ويتولى اتصالات البيانات، ويمكّن المطوّرين من عامة المستخدمين ومحترفي تقنية المعلومات على حد سواء. إذا لم تستمعوا إلى تلك الحلقة بعد، فلا تفوّتوا الاطلاع عليها لتكوين أساس شامل حول كيفية تغيير Power Fx لمشهد التطوير منخفض التعليمات البرمجية. واليوم، سنتوسّع في أحد المواضيع الجوهرية التي تطرقنا إليها في تلك الحلقة: إدارة الحالة عبر المتغيرات والمجموعات.
مقدمة في إدارة الحالة في Power Fx
قد يبدو مصطلح إدارة الحالة مصطلحاً ثقيلاً من علوم الحاسب، لكنه في جوهره يعني ببساطة تتبّع الوضع الحالي لتطبيقك. فعندما يفتح المستخدم تطبيقاً، أو ينقر على زر، أو يصفّي معرضاً، أو يدخل نصاً في نموذج، ينتقل التطبيق إلى حالات مختلفة. ومن دون إدارة الحالة، ستُعاد تهيئة كل شاشة بمجرد انتقال المستخدم بعيداً عنها، وسيعاني تطبيقك من فقدان الذاكرة قصير المدى.
في البرمجة التقليدية، قد تتضمن إدارة الحالة بنى بيانات معقدة، وتخصيص الذاكرة، وتصحيح تسرّبات الذاكرة. أما Power Fx فيُبقي الأمور في متناول الجميع بالاعتماد على طبيعته التصريحية، مع توفيره في الوقت ذاته وظائف إجرائية عندما تحتاجون إلى تخزين قيم مؤقتة. إن فهم كيفية إدارة هذه الحالة بفعالية هو ما يميّز النموذج الأولي البسيط عن تطبيق مؤسسي متين وجاهز للإنتاج. وسواء كنتم تبنون أداة داخلية بسيطة أو لوحة معلومات مؤسسية واسعة، فإن معرفة متى وكيف تخزّنون المعلومات مؤقتاً مهارة أساسية لكل صانع في Power Apps.
فهم المتغيرات: تخزين المعلومات مؤقتاً
المتغيرات هي اللبنات الأساسية لإدارة الحالة. تخيّلوا المتغير كحاوية مُعنونة أو كملاحظة لاصقة تدوّنون فيها معلومة ما للرجوع إليها لاحقاً. في Power Fx، تأتي المتغيرات بعدة أنواع، ولكل منها نطاق وعمر محدد داخل تطبيقكم.
النوع الأول والأكثر شيوعاً هو متغير السياق، ويُنشأ باستخدام الدالة UpdateContext. تقتصر متغيرات السياق على شاشة واحدة فقط. وهي مثالية لتتبّع حالات الواجهة، مثل ما إذا كانت لوحة المعلومات التفصيلية مفتوحة أو مغلقة، أو التبويب الذي يعرضه المستخدم حالياً، أو قيمة معرّف مؤقتة لازمة لتخطيط تلك الشاشة تحديداً. ولأنها محلية على الشاشة، فإنها تُمسح تلقائياً عندما ينتقل المستخدم بعيداً، مما يساعد على إبقاء ذاكرة تطبيقكم نظيفة ومنظمة.
النوع الثاني هو المتغير العام، ويُنشأ باستخدام الدالة Set. المتغيرات العامة متاحة من أي مكان في تطبيقكم بالكامل. فإذا احتجتم إلى تخزين معلومات عن المستخدم الحالي المسجّل الدخول، أو إعدادات التهيئة العامة، أو التفضيلات على مستوى المؤسسة التي تحتاج إليها كل شاشة، فالمتغيرات العامة هي أداتكم المفضلة. غير أن القوة الكبيرة تقترن بمسؤولية كبيرة؛ فالإفراط في استخدام المتغيرات العامة قد يجعل تصحيح أخطاء تطبيقكم صعباً، لأن أي شاشة يمكنها تغيير قيمها في أي وقت. وكممارسة فضلى، احتفظوا بالمتغيرات العامة للبيانات العامة فعلاً، واعتمدوا على متغيرات السياق الخاصة بالشاشة كلما أمكن ذلك.
إتقان المجموعات: إدارة مجموعات من السجلات
بينما تُعدّ المتغيرات رائعة لتخزين قطع فردية من المعلومات، كرقم أو نص أو قيمة منطقية صحيح/خطأ أو سجل واحد، ماذا لو احتجتم إلى إدارة قائمة كاملة من العناصر؟ هنا تأتي المجموعات إلى الواجهة.
المجموعة (Collection) في جوهرها مجموعة بيانات محلية على شكل جدول، مخزّنة في ذاكرة جهاز المستخدم. وهي تستخدم البنية الجدولية نفسها الموجودة في مصادر البيانات مثل Dataverse وSharePoint وSQL Server. يمكنك إنشاء المجموعة وملؤها باستخدام الدالة Collect، وإضافة عناصر باستخدام Collect أو Patch، وإزالة العناصر باستخدام Remove أو RemoveIf، ومسح المحتويات بالكامل باستخدام Clear.
المجموعات لا غنى عنها في سيناريوهات العمل دون اتصال، ووظائف سلة التسوق، ونماذج إدخال البيانات متعددة العناصر حيث يضيف المستخدمون عدة صفوف قبل حفظ كل شيء دفعة واحدة، وتخزين البيانات المرجعية مؤقتاً لتحسين أداء التطبيق. ولأن المجموعات تُحفظ محلياً في الذاكرة، فإن الاستعلام عنها وتعديلها يتمان فورياً دون الحاجة إلى الذهاب والعودة إلى الخادم أو مصدر البيانات السحابي. وهذا يجعل تطبيقك سريع الاستجابة، حتى عند التعامل مع مجموعات معقدة من البيانات التي يُدخلها المستخدمون.
المتغيرات مقابل المجموعات: متى تستخدم كلاً منهما
من أكثر الأسئلة شيوعاً التي يطرحها مطورو Power Apps الجدد: «متى أستخدم المتغير، ومتى أستخدم المجموعة؟» تكمن الإجابة في طبيعة البيانات التي تتعامل معها وحجمها.
استخدم المتغير عندما تتعامل مع قيم مفردة أو كائن منفصل واحد. إذا كنت بحاجة إلى تخزين اسم المستخدم، أو قيمة محددة من قائمة منسدلة، أو حالة مفتاح التبديل، أو سجل واحد يمثل العنصر المحدد في المعرض، فإن المتغير هو الخيار الصحيح. المتغيرات خفيفة الوزن ومصممة لتتبع القيم المفردة.
استخدم المجموعة عندما تتعامل مع عدة صفوف وأعمدة من البيانات. إذا كان المستخدم يُعدّ قائمة من العناصر لإرسالها، أو يحدد عدة خانات اختيار عبر معرض لإجراء تحديث جماعي، أو يسحب جدول بحث لتصفيته محلياً، فإن المجموعة ضرورية. فكّر في المتغيرات كملاحظات لاصقة فردية على مكتبك، وفي المجموعات كملفات كاملة تحتوي على عدة مستندات.
أفضل الممارسات لحلول قابلة للتوسع وسهلة الصيانة
مع تزايد تعقيد تطبيقات Power Apps، قد تتحول المتغيرات والمجموعات سيئة الإدارة إلى شبكة متشابكة من المنطق يصعب تتبعها. للحفاظ على قابلية تطبيقاتك للتوسع والصيانة، اعتمد عدداً من أفضل الممارسات المعتمدة في الصناعة:
- قلّل المتغيرات العامة: اقصر استخدام Set() على إعدادات مستوى التطبيق وبيانات المستخدم الوصفية. واستخدم UpdateContext() لحالات واجهة المستخدم الخاصة بكل شاشة، لتجنب الآثار الجانبية غير المقصودة عبر الشاشات المختلفة.
- امسح المجموعات وأعد تهيئتها بوعي: تأكد دائماً من مسح المجموعات أو تهيئتها بشكل صحيح عندما يبدأ المستخدم سير عمل جديداً. فترك بيانات قديمة في مجموعة من جلسة سابقة قد يسبب أخطاءً غريبة وإرسالاً غير صحيح للنماذج.
- وثّق الحالة الخاصة بتطبيقك: استخدم التعليقات داخل صيغ Power Fx، نعم، فـ Power Fx يدعم التعليقات باستخدام شرطتين مائلتين للأمام (//)! فتوثيق مكان تهيئة المتغيرات وتعديلها سيوفر عليك ساعات طويلة أثناء استكشاف الأخطاء وإصلاحها.
- استفد من الصيغ المسماة (App.Formulas): استفد من ميزات Power Fx الحديثة مثل الصيغ المسماة في كائن App. فهي تعمل كمتغيرات تُعاد حسابها تلقائياً، ويمكن أن تبسط بنية تطبيقك بدرجة كبيرة مقارنةً بالمتغيرات الإجرائية التقليدية.
الخلاصة والخطوات التالية في رحلتك مع Power Apps
إتقان المتغيرات والمجموعات نقطة تحوّل كبيرة في رحلتك في التطوير منخفض الشيفرة. فهو ينقلك من بناء واجهات ثابتة وجامدة إلى إنشاء تطبيقات أعمال ديناميكية وذكية تتكيف بسلاسة مع إدخال المستخدم وتدفقات العمل المؤسسية المعقدة. وبفهم كيفية تخزين القيم المفردة مؤقتاً وإدارة مجموعات كاملة من السجلات في الذاكرة، تفتح الإمكانات الحقيقية لـ Microsoft Power Apps.
لتعمق أكثر في كيفية تشغيل Power Fx لهذه التجارب، واستمع إلى المزيد من الرؤى العملية حول التطوير منخفض الشيفرة، تأكد من الاستماع إلى الحلقة الكاملة من البودكاست، Microsoft Power Fx - Simply Explained. ابدأ بتجربة المتغيرات في تطبيقك القادم، وأنشئ مجموعتك الأولى، وشاهد ثقتك كصانع تطبيقات تحلّق!