پرش به مطلب اصلی

وارد کردن یک راه‌حل به یک محیط

هدف​

یک بستهٔ راه‌حل را به محیط مقصد وارد کنید تا جدول‌ها، فرم‌ها، نماها و قواعدی که جای دیگری ساخته شده‌اند در آن محیط بازسازی شوند.

پیش‌نیازها​

  • با نقش مدیر پلتفرم وارد مرکز کنترل مدیریت شده‌اید.
  • یک فایل بستهٔ راه‌حل دارید که از محیطی دیگر خروجی گرفته شده است (به «خروجی گرفتن از یک راه‌حل» مراجعه کنید).
  • محیط مقصد موجود و فعال است (به «ساخت یک محیط» مراجعه کنید).

گام‌ها​

  1. محیط مقصد را در بالای مرکز کنترل مدیریت انتخاب کنید — هر راه‌حل به یک محیط وارد می‌شود، بنابراین وارد کردن روی همان محیطی اعمال می‌شود که در آن لحظه انتخاب شده است.
  2. صفحهٔ راه‌حل‌ها را از ناوبری بالا باز کنید.
  3. گزینهٔ وارد کردن را انتخاب کنید.
  4. بستهٔ راه‌حلی را که خروجی گرفته‌اید ارائه کنید.
  5. اگر بسته داده‌های نمایشی دارد، پیش از درون‌ریزی دربارهٔ آن پرسیده می‌شوید: برای آوردن آن رکوردها همراه با داده‌های نمایشی را تیک بزنید و سپس درون‌ریزی را انتخاب کنید. این کادر تیک نخورده است مگر آنکه خودتان تیکش بزنید، و برای محیط Production غیرفعال است. رکوردهای پیکربندی بسته همیشه می‌آیند، و بسته‌ای بدون رکورد نمایشی این پرسش را ندارد.
  6. راه‌حل بی‌درنگ مستقر می‌شود — درست مانند 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.» — یک محیط موجود و فعال انتخاب کنید؛ برای محیطی که تازه ساخته شده صبر کنید تا آماده‌سازی آن به پایان برسد.

سناریوهای مرتبط​

  • خروجی گرفتن از یک راه‌حل.
  • ساخت یک محیط.