استيراد حل إلى بيئة
الهدف
استورد حزمة حل إلى بيئة هدف بحيث يُعاد إنشاء الجداول والنماذج والعروض والقواعد التي بُنيت في مكان آخر داخل تلك البيئة.
المتطلبات المسبقة
- أنت مسجّل الدخول إلى مركز التحكم الإداري بصفة مسؤول المنصة.
- لديك ملف حزمة حل مُصدَّر من بيئة أخرى (راجع تصدير حل).
- البيئة الهدف موجودة وحالتها نشطة (راجع إنشاء بيئة).
الخطوات
- اختر البيئة الهدف من أعلى مركز التحكم الإداري — فالحل يُستورد إلى بيئة، ومن ثمّ يُطبَّق الاستيراد على البيئة المختارة حاليًا أيًّا كانت.
- افتح صفحة الحلول من شريط التنقل العلوي.
- اختر استيراد.
- قدّم حزمة الحل التي صدّرتها.
- إن كانت الحزمة تحمل بيانات عرض توضيحي، تُسأل عنها قبل أي استيراد: ضع علامة على تضمين بيانات العرض التوضيحي لجلب تلك الصفوف، ثم اختر استيراد. الخانة غير محددة ما لم تحددها أنت، ومعطّلة لبيئة Production. صفوف الإعدادات في الحزمة تأتي دائماً، والحزمة التي لا تحمل صفوف عرض توضيحي تتخطى السؤال.
- يُنشر الحل فورًا — تمامًا كما في Power Apps، يُطبَّق الاستيراد مباشرةً على البيئة المختارة. ثم يظهر الحل المستورَد (المُدار) في قائمة الحلول، ويصبح بإمكان المصممين استخدام مكوّناته.
ما الذي يحدث خلف الكواليس
قبل تطبيق أي شيء، تُتحقَّق صحة الحزمة وتُفحَص تبعياتها — إذ يجب أن يشير كل نموذج وعرض وقاعدة إلى جدول موجود إما في الحزمة نفسها أو في البيئة الهدف مسبقًا. بعد ذلك تُنشأ الجداول وبنياتها داخل منطقة البيانات المعزولة الخاصة بالبيئة الهدف، وتُسجَّل فيها النماذج والعروض والقواعد. ولأن كل بيئة تحتفظ ببياناتها المنفصلة، يبدأ الحل المستورَد فارغًا من البيانات في البيئة الهدف.
الاستيراد عملية قابلة للتكرار: إذا كان المكوّن موجودًا في البيئة الهدف مسبقًا — سواء لأنه نموذج أو عرض مدمج ضمن جدول قياسي، أو لأنك تستورد الحل نفسه مرة أخرى — فإنه يُحدَّث في مكانه بدلًا من أن يسب ب خطأ، ومن ثمّ يُستورَد بنجاح حلٌّ يضيف حقلًا إلى جدول قياسي حتى لو كان ذلك الجدول (ونماذجه وعروضه الافتراضية) موجودًا بالفعل.
ويشمل ذلك مجموعات الخيارات. تُحدَّث مجموعة الخيارات الموجودة في البيئة الهدف لتطابق المستورَدة: تُحدَّث التسميات والترتيب، وتُضاف الخيارات الجديدة، وتُحذف الخيارات التي لم تعد المجموعة المستورَدة تحتوي عليها. وتُطابَق الخيارات بالقيمة التي أسندتها المنصة إليها، فيُحدَّث الخيار المعاد تسميته بدلًا من إضافته مرتين، ولا يتغيّر معنى القيمة المخزَّنة في أي سجل من دون علمك. وهناك حالتان توقفان الاستيراد بدلًا من ذلك، لأن أيًّا منهما لا يمكن حلّه من دون فقدان بيانات: مجموعة خيارات تشترك في الاسم مع مجموعة موجودة لكنها تعود إلى ناشر مختلف، وحذف خيار ما زالت السجلات تحمله.
تُطبَّق عمليات الاستيراد فورًا. أما بوابة الموافقة لكل بيئة في المستويات الأعلى (الاختبار والإنتاج) فهي مخططة ضمن خط نشر مستقبلي قائم على التدفقات — وهي ليست جزءًا من الاستيراد المباشر اليوم.
يمكن للحل أن يذكر ما بُني عليه. إن ذكرت حزمته حلولًا تحتاجها، يفحص الاستيراد البيئة أولًا، ويرفض بعبارة «استورد … أولًا» — قبل كتابة أي شيء — إن كان أحدها غائبًا أو قديمًا.
إن فشل الاستيراد في منتصفه فلا يبقى شيء. حين يكون هذا أول استيراد لهذا الإصدار من الحل هنا، يُزال كل ما أنشأه حتى تلك اللحظة — الجداول والنماذج والأدوار والتطبيقات — ويُعلَّم الاستيراد فاشلًا مع السبب. أصلح السبب واستورد مجددًا. (إعادة استيراد إصدار مثبّت أصلًا لا يُتراجع عنها، لأن ذلك سيزيل النسخة العاملة أيضًا.)
استيراد إصدار أحدث: ترقية
عندما تحتوي البيئة بالفعل على إصدار أقدم من الحل، فإن استيراد إصدار أحدث يحل محله. يخرج الإصدار الأقدم من قائمة الحلول، وتصبح البيئة كما كان سيتركها تثبيت جديد للإصدار الجديد:
- يبقى كل ما لا يزال الإصدار الجديد يحمله، بما في ذلك السجلات، ويصبح تابعًا للإصدار الجديد.
- يُزال ما لم يعد الإصدار الجديد يحمله، كما كان إلغاء التثبيت سيزيله. ويُسحب الدور الذي تخلّى عنه من الأشخاص الذين كانوا يحملونه.
إذا تعذّر سحب الإصدار الأقدم، ينجح الاستيراد مع ذلك، ويبقى الإصدار الأقدم في القائمة، وتذكر ذلك الرسال ة التي تظهر بعد الاستيراد. استورد الإصدار الجديد مرة أخرى لإعادة المحاولة. لا تُلغِ تثبيت الإصدار الأقدم: لا تزال أجزاء من الإصدار الجديد تابعة له.
حين يضيف الحل إلى جدول موجود لديك
بعض الحلول تضيف حقولاً إلى جدول أُنشئت البيئة به، مثل رمز وحالة على الوحدات. يضيف الاستيراد تلك الحقول ويترك باقي الجدول كما كان، فتبقى حقول الجدول وسجلاته والمخطط التنظيمي في مكانها. ويظل الجدول ملكاً للبيئة، لا للحل.
إلغاء تثبيت ذلك الحل يزيل ما أضافه فقط. يبقى الجدول بحقوله وسجلاته.
يمكن للحل أن يوجّه حقل بحث موجوداً إلى جدول آخر. مثلاً قد يشير مدير الوحدة إلى منصب بدلاً من شخص. القيم التي كانت تشير إلى الجدول السابق تُمسح، لأنها لا تعني شيئاً للجدول الجديد. وإلغاء التثبيت يعيد حقل البحث إلى ما كان عليه ويمسح قيمه.
لا يستطيع الحل تغيير نوع بيانات حقل، مثل تحويل حقل نصي إلى حقل بحث. يتوقف الاستيراد برسالة تذكر اسم الحقل، ولا يتغير شيء. وعلى مؤلف الحل أن يضيف حقلاً جديداً بدلاً من ذلك.
حين يحتاج حلٌّ إلى حلٍّ آخر
يمكن أن يُبنى حلٌّ على حلِّ ناشر آخر: مثلاً جدول Badge يبحث عموده Visitor في الجدول الذي يجلبه حل Visitors. يمكن تثبيت الاثنين جنباً إلى جنب في بيئة واحدة، كلٌّ تحت ناشره، لكن الحل الذي يُبنى عليه الآخر يجب أن يكون موجوداً أولاً.
لذلك يتحقق الاستيراد من كل عمود بحث. العمود الذي يبحث في جدول لا تحمله الحزمة ولا تحتويه البيئة يوقف الاستيراد قبل كتابة أي شيء، وتذكر الرسالة العمود والجدول. استورد الحل الذي يجلب الجدول، ثم استورد هذا الحل مرة أخرى.
لا تسجّل عمليات التصدير بعدُ الحلولَ التي بُنيت عليها الحزمة، لذا فهذا التحقق، جدولاً جدولاً، هو ما يكشف استيراداً تم بترتيب خاطئ.
البيانات الأولية: الإعدادات دائماً، والعرض التوضيحي حين يُطلب
البيانات الأولية سجلات تحملها الحزمة معها، وصفوف كل جدول من أحد نوعين:
- إعدادات، صفوف يحتاجها الحل ليعمل، مثل حدود الموافقة. تأتي دائماً، حتى في Production.
- عرض توضيحي، صفوف تعرّف بالحل، مثل عملاء مختلَقين. لا تأتي إلا حين تحدد تضمين بيانات العرض التوضيحي، ولا تذهب أبداً إلى بيئة Production، حيث تقع بين سجلاتك دون ما يميزها وتبقى إذا أُلغي تثبيت الحل.
تذكر الرسالة بعد الاستيراد ما وصل، وكم صفاً توضيحياً تُرك. انظر شحن البيانات الأولية مع حل.
حل المشكلات
- «The solution package is invalid.» — الحزمة لا تطابق التنسيق المتوقّع. أعد تصديرها من البيئة المصدر.
- «field '…' references '…', which is neither in the package nor in this environment.» — عمود في الحزمة يبحث في جدول، أو يأخذ قيمه من مجموعة خيارات، لا تحمله الحزمة ولا تحتويه هذه البيئة. لم يُستورَد شيء. إن كان حلٌّ آخر يجلبه، فاستورد ذلك الحل أولاً. وإن كان ينتمي إلى هذا الحل، فأضفه في البيئة التي صدّرت منها ثم صدّر مرة أخرى.
- «Demonstration data cannot be imported into …, which is a Production environment.» — استورد الحل دونها. صفوف إعداداته تأتي على أي حال.
- وصل الحل لكن سجلاته النموذجية مفقودة. — استُورد دون بيانات العرض التوضيحي. استورده مجدداً، في بيئة ليست Production، مع تحديد تضمين بيانات العرض التوضيحي.
- «Target environment … was not found» / «is not active.» — اختر بيئة موجودة وحالتها نشطة؛ وانتظر اكتمال تهيئة أي بيئة أُنشئت حديثًا.
سيناريوهات ذات صلة
- تصدير حل.
- إنشاء بيئة.