
Andrew Hanna

Andrew Hanna

إدارة الإصدارات عبر مؤسسات المشتركين معناها إنك تعرف في أي لحظة أي إصدار من الحزمة المُدارة بتاعتك شغال عند كل عميل، وتقدر تنقله منه. سيلزفورس بتدي شركات البرمجيات المستقلة المواد الخام للشغلانة دي: تطبيق إدارة التراخيص، ووحدة دعم المشتركين، وترقيات الدفع. اللي مش بتديهولك هو جرد حي ومحدَّث. عشان كده معظم الشركات بتمسك الجرد ده بإيدها في ملف جداول، وبتدفع تمنه ساعات دعم فني.
دي في الحقيقة تلات مهام منفصلة اتلمّت في مصطلح واحد:
معظم الفرق عندها إجابة تقريبية على الأولى، ومفيش إجابة على التانية، وعملية يدوية للتالتة.
لأن كل تذكرة دعم بتبدأ بسؤال التذكرة نفسها مش بتجاوب عليه. قبل ما حد يعيد إنتاج الخطأ، لازم الأول نحدد العميل شغال على أي إصدار، وهل الإصلاح اتشحن فعلاً ولا لأ، وهل السلوك ده عيب حقيقي ولا مجرد فجوة إصدارات. اعمل كده مية مرة في الشهر، وهتلاقيها بقت وظيفة كاملة مش مجرد إزعاج.
التشتت هو اللي بيتراكم. إصدارين شغالين يعني فرع واحد. ستة يعني مصفوفة دعم، وكل إصلاح جديد لازم يتقيّم في مواجهة الستة قبل ما تقدر تِوعد العميل بأي حاجة. تقليل التشتت ده هو أعلى إجراء عائدًا تقدر إدارة الدعم تعمله، وده بالظبط سبب وجود ترقيات الدفع من الأساس.
أربع طرق، كل واحدة ليها قيد:
InstalledSubscriberPackageVersion بقى
مهجورًا ومُقرَّرًا إزالته، فمتبنيش عليه طبقة تقارير.
لاحظ إن مفيش واحدة من دول لوحة معلومات. دي الفجوة، وده سبب وجود ملف الجداول.
مش كسل. البيانات موزعة على تلات أنظمة مش بتكلم بعض: التراخيص في مؤسسة الأعمال الشريكة، وإصدارات الحزم في Dev Hub، وتاريخ الإصدارات الحقيقي في Git وخط الإنتاج بتاعك. ربطهم مشروع تكامل داخلي صغير، وعمره ما بيكسب سبرنت قدام الشغل اللي العميل شايفه. فبيفضل ملف جداول، وحد بيحدّثه بعد كل إصدار، وفي الربع التالت محدش بيثق فيه بالكامل.
خد بالك من اللي مش موجود في القايمة: أي حاجة عملاؤك مضطرين يتعلموها. دي مشكلة تقارير داخلية لابسة عباية مشكلة تغليف.
ترقيات الدفع بتنقل مؤسسات المشتركين لإصدار جديد من غير ما العميل يثبّت أي حاجة، وإنت اللي بتختار أي مؤسسات وأي إصدار وإمتى. القيود اللي لازم تخطط حواليها:
PushUpgradeCustomizationRepository في مؤسسة التغليف 1GP أو Dev Hub بتاع
2GP بيحدد نافذة انتهاء، وبعدها سيلزفورس بتبطل إعادة المحاولة.
الدفع ده نشر في بيئة إنتاج حد تاني. عامله كده: نفس المراجعة، ونفس خطة التراجع، ونفس سجل التغيير.
معظم منصات Salesforce DevOps، زي Copado و Gearset و AutoRABIT و Flosum وغيرهم، مبنية حوالين التسليم من مؤسسة لمؤسسة والمدعوم بـ Git، وبتعمل ده كويس. تسليم الحزم لشركات البرمجيات المستقلة كان تاريخيًا النص الأرفع من الفئة دي. وده النص اللي بنينا Serpent حواليه: مسارات عمل أصلية لـ 1GP و 2GP والحزم المُدارة، وحل الاعتماديات بين الحزم، وإدارة الإصدارات عبر مؤسسات المشتركين، ومسارات إصدار AppExchange، في كل الخطط بما فيها الخطة المجانية.
أقدر أشوف إصدار كل مشترك في مكان واحد افتراضيًا؟
لأ. تطبيق إدارة التراخيص بيحتفظ بسجلات التراخيص وإصدارات الحزم، لكن تحويل ده لجرد حي مربوط بتاريخ إصداراتك شغل لازم تعمله إنت.
ترقيات الدفع آمنة للإصدارات الكبرى؟
مخاطرها أعلى من التصحيحات، لأن الإصدار الكبير ممكن يغيّر سلوك المشترك معتمد عليه. اختبر في مؤسساتك وفي بيئات اختبار العملاء الأول، وانشر على دفعات صغيرة.
كام إصدار شغال المفروض الشركة تدعمهم؟
سيلزفورس مش محددة رقم. اختار أرضية دعم تقدر تغطيها بفريقك فعلاً، واعلنها للعملاء، وقيس التشتت في مواجهتها.
تطبيق إدارة التراخيص بيغطي 1GP و 2GP الاتنين؟
أيوه. كائنات Package و Package Version بتحمل تفاصيل كل حزمة وكل إصدار 1GP أو 2GP منشور عندك على AppExchange.
لسه أقدر أستعلم عن InstalledSubscriberPackageVersion؟
موجود من إصدار الواجهة 41.0، لكن سيلزفورس علّمته كمهجور وناوية تشيله. متخليهوش اعتمادية عندك.
إدارة الإصدارات عبر مؤسسات المشتركين شغلانة بلا بريق، والعميل مش شايفها، وهي اللي بتحدد بهدوء تكلفة الدعم عندك. تستاهل خط إنتاج، مش ملف جداول.
بدون التزام.