Andrew Hanna

Andrew Hanna

التراجع عن Click Deploy: إزاي تلغي نشر Salesforce

التراجع عن Click Deploy: إزاي تلغي نشر Salesforce

الخلاصة: الـ click deploy في Salesforce مفيهوش زرار تراجع أصلي. الـ Metadata API بيرجع أي نشر بيفشل، لكن لما النشر ينجح، الرجوع معناه إنك تنشر النسخة القديمة تاني، وتمسح اللي اتضاف، وترجع أي بيانات بإيدك. خد snapshot قبل ما تدوس، أو استخدم أداة بتاخدها بدالك.

ما هو click deploy في Salesforce؟

الـ click deploy بينقل الميتاداتا بين الـ orgs من خلال واجهة: بتقارن مصدر وهدف، وتعلّم على المكونات اللي اتغيرت، وتعمل validate وتنشر، من غير change set ومن غير سطر أوامر. المصطلح جاي من ClickDeploy، اللي Copado بتبيعها دلوقتي باسم Copado Essentials؛ شرحنا الأداة وأسعارها في إزاي ClickDeploy بتشتغل وبكام. أغلب الأدلة بتقف عند النشر. الدليل ده عن اللي بيحصل لما تحتاج ترجع فيه.

إيه اللي بيحصل لما click deploy يفشل؟

في الإنتاج مفيش حاجة بتتغير. Salesforce مبتقبلش هناك غير نشر all-or-none (خيار rollbackOnError لازم يكون true)، فالـ Metadata API بيرجع العملية كلها لو حصل خطأ والـ org بتفضل زي ما هي. الـ Salesforce CLI بيرجع تلقائيًا وبيسمحلك تتخطى ده بـ --ignore-errors، لكن المرجع بتاعه بيقول متستخدمهوش أبدًا مع الإنتاج، لأن المكونات اللي فيها أخطاء بتتساب والـ org ممكن تبقى في حالة مش متسقة. لو النشر فشل، صلّح السبب وشغله تاني؛ دليلنا عن أخطاء click deploy بيعدي على الأسباب المعتادة.

ينفع تلغي click deploy نجح؟

مش بشكل أصلي. زي ما Gearset بتقول، الـ change sets متقدرش ترجع نشر، ولا DevOps Center كمان، والـ change sets كمان متقدرش تعمل تغييرات حذف. النشر الناجح ببساطة هو الحالة الجديدة للـ org. علشان ترجع، بتشغل نشر تاني بيرجع الحالة القديمة، وده بيشتغل بس لو كنت محتفظ بنسخة منها.

علشان كده الـ backup، مش التراجع، هو الخطوة المهمة. لو محدش سجل مكونات الهدف قبل الضغطة، هتبنيها من الذاكرة.

إزاي ترجع في click deploy خطوة بخطوة؟

  1. قرر: ترجع ولا تصلح لقدام. لو السبب واضح والتصليح صغير، نشر التصليح بيحافظ على باقي الإصدار. ارجع لو التشخيص هياخد وقت طويل أو التغيير بيعمل ضرر فعلي.
  2. لاقي النسخة اللي قبل النشر. استخدم الـ snapshot اللي أداتك خدتها، أو آخر commit في Git مطابق للإنتاج. لو مفيش الاتنين، اسحب اللي تقدر عليه من sandbox متعملهاش refresh من ساعتها.
  3. جهز حزمة التراجع. المكونات اللي النشر عدّلها ترجع بنسختها القديمة. والمكونات اللي النشر ضافها تتحط في manifest اسمه destructiveChangesPost.xml علشان تتمسح بعد ما الاسترجاع ينجح.
  4. اعمل validate الأول. شغلها كنشر check-only (--dry-run في الـ CLI) بنفس مستوى اختبارات Apex اللي بتستخدمه لأي إصدار إنتاج.
  5. انشر واتأكد. انشر، وبعدين اختبر الصفحات والـ flows والتكاملات اللي اتأثرت. سجل إيه اللي اترجع وليه.
  6. راجع البيانات. التراجع عن الميتاداتا مبيرجعش السجلات. اتعامل مع البيانات لوحدها، زي ما هو موضح تحت.

الخطوتين 2 و3 هما اللي أغلب عمليات التراجع بتقع فيهم، علشان كده قائمة مراجعة click deploy بتخلي الـ backup جزء من التحضير، مش حاجة بعدين.

أنهي أدوات click deploy فيها تراجع؟

  • Copado Essentials: اختار Deploy with backup وهيظهر زرار Rollback على سجل النشر، حسب مركز المساعدة. التراجع في CI jobs محتاج Git repository كمصدر.
  • Gearset: بتحفظ snapshot لميتاداتا الـ org الهدف قبل كل نشر، وبتدعم تراجع كامل أو جزئي، حسب التوثيق.
  • AutoRABIT: التراجع بيشتغل بس لو خيار Take Backup كان مفعّل في النشر الأصلي، زي ما قاعدة المعرفة بتوضح، وبيسمحلك تستبعد مكونات.

اسأل Salto وFlosum وBlue Canvas وأي أداة تانية في قائمتك نفس السؤالين: هل الـ backup تلقائي ولا لازم تفعله، وتقدر ترجع مكون واحد من غير ما ترجع الإصدار كله؟

إيه اللي التراجع ميقدرش يلغيه؟

  • البيانات. التراجع عن النشر بيخص الميتاداتا بس. السجلات اللي flow أو trigger جديد غيّرها بتفضل متغيرة.
  • الحقول الممسوحة، بشكل نضيف. Salesforce بتحتفظ بالـ custom field الممسوح 15 يوم، لكن Salesforce Ben بيعدد اللي لازم تعيده بإيدك بعد الـ undelete، زي إعدادات required وunique وتتبع تاريخ الحقل.
  • الـ purge. المسح بـ --purge-on-delete بيتخطى سلة المحذوفات، فمفيش حاجة ترجعها.

الحل الأضمن هو تاريخ تقدر تعيد تشغيله. النشر من branch معناه إن كل إصدار اتعمله commit قبل ما يطلع، زي ما هو موضح في click deploy من Git.

إزاي Tekunda بتتعامل مع التراجع؟

Tekunda هي شركة الاستشارات والمنتجات في Salesforce اللي ورا Serpent، منصة DevOps اللي بتستخدمها كمان في تسليم مشاريع عملائها. Serpent بتحافظ على طريقة الاختيار بالضغط، وتحتها Git والـ pull requests شغالين، فكل إصدار ليه نسخة ترجعلها. التراجع بضغطة واحدة، لمكون واحد أو لإصدار كامل. الفرق اللي على Copado تقدر تتبع مسار الانتقال بتاعنا، والخطط موجودة في صفحة الأسعار، وأدلة أكتر في مكتبة SF Guides.

FAQ

هل Salesforce فيها زرار تراجع للنشر؟

لأ. الـ change sets وDevOps Center ميقدروش يرجعوا نشر. بتنشر النسخة القديمة تاني أو بتستخدم أداة بتاخد snapshot للـ org الأول.

هل click deploy الفاشل بيغير حاجة؟

مش في الإنتاج، لأن Salesforce بتفرض هناك نشر all-or-none. والـ Salesforce CLI كمان بيرجع لو حصل خطأ، إلا لو استخدمت --ignore-errors.

أقدر أرجع البيانات بالتراجع عن النشر؟

لأ. التراجع بيرجع الميتاداتا بس، والسجلات محتاجة backup واسترجاع بيانات لوحدهم.

لحد إمتى أقدر أرجع custom field ممسوح؟

لمدة 15 يوم، إلا لو اتمسح نهائيًا أو اتعمله purge. وبعدها في خصائص لازم ترجعها بإيدك.

مقالات ذات صلة

هل تريد معرفة كيف يمكنكم الشحن أسرع قبل البدء؟ لنتحدث

بدون التزام.