إن اللحظة الأخطر في ترحيل نظام ERP ليست يوم تحميل البيانات، بل بعد ثلاثة أسابيع، حين يقفل المحاسب الشهر الأول في النظام الجديد فيجد أن ميزان المراجعة لا يطابق النظام القديم. عندها يكون فريق المشروع قد انتقل إلى أعمال أخرى، والنظام القديم صار للقراءة فقط، وكل فارق غير مفسّر ينال من الثقة في أرقام يحتاج الناس إلى الاعتماد عليها يوميا.
لقد تعلمنا أن نتعامل مع الترحيل بوصفه عملية تسوية ومطابقة أولا، وعملية تقنية ثانيا. فنقل السجلات بين قواعد البيانات هو الجزء السهل — إذ يتكفل به إطار الاستيراد في Odoo مع أدوات بمستوى الوحدات البرمجية، مُدارة الإصدارات عبر Git شأنها شأن كل ما نبنيه. أما الجزء الصعب فهو القدرة على الإثبات، يوم الانتقال النهائي، بأن ما خرج يساوي ما دخل.
لذلك، قبل أي ترحيل إلى Odoo، ننفذ قائمة التحقق نفسها. ولا نحمّل بيانات الإنتاج حتى يتم الاتفاق كتابيا على كل بند فيها. وإليكم كيف يبدو ذلك عمليا.
مطابقة الحقول وقواعد التنظيف — تُعتمد قبل نقل أي شيء
يبدأ كل ترحيل بوثيقة مطابقة الحقول: كل حقل في المصدر، ووجهته في Odoo، والتحويل بينهما. قد يبدو هذا إجراء بيروقراطيا إلى أن تصطدم بالحقول التي لا تُطابَق بسهولة — عمود النص الحر الذي هو في الواقع ثلاثة أشياء مختلفة، ورموز فئات العملاء التي لا يتذكر أحد معناها، وإعدادات الضرائب الموروثة التي لا مقابل لها في مخطط الحسابات الجديد. تكشف المطابقة هذه القرارات مبكرا، بينما تكلفة اتخاذها لا تزال زهيدة.
التنظيف هو المرحلة التي تنحرف فيها المشاريع بهدوء. فالبيانات الموروثة ليست نظيفة أبدا: شركاء مكررون، وجهات اتصال بلا بلدان، ومنتجات بوحدات غير متسقة. ويكون الإغراء كبيرا لإصلاح ذلك في صمت أثناء التحميل. لكننا نرفض ذلك. فكل قاعدة تنظيف — دمج المكررات وفق هذه المعايير، وتعيين قيمة افتراضية لهذه القيمة المفقودة، واستبعاد السجلات في هذه الحالة — تُدوَّن وتُعتمد من العميل قبل تشغيل التحميل. العميل يملك بياناته، ونحن نملك الآلية. وحين تغيّر قاعدةٌ ما البيانات، ينبغي أن يكون العميل هو من قرر ذلك، لا من يكتشفه لاحقا.
كم من السجل التاريخي ننقل
نقل كل شيء يبدو آمنا لكنه غالبا خيار خاطئ. فالسجل التاريخي العميق يضخّم قاعدة البيانات، ويبطئ كل تجربة تحميل، ويجرّ سنوات من عدم اتساق البيانات الموروثة إلى نظام سيرفضها عند الاستيراد. أما عدم نقل أي شيء فهو أسوأ. موقفنا الافتراضي بسيط: البنود المفتوحة تُنقل كاملة — كل فاتورة مفتوحة، ودفعة غير مسوّاة، وطلب مفتوح، وعقد ساري، والوضع الحالي للمخزون — لأنها السجلات التي سيتعامل معها الناس منذ اليوم الأول. أما السجل المقفل فيُنقل على شكل أرصدة افتتاحية لكل حساب ولكل شريك، بحيث تتطابق الدفاتر دون إعادة تسجيل كل قيد منذ تأسيس الشركة. ويُؤرشَف السجل العميق نفسه: يبقى النظام القديم متاحا للقراءة فقط ما دام العميل بحاجة إليه، أو نصدّر التفاصيل إلى أرشيف مناسب. وأما البيانات الرئيسية — الشركاء النشطون والمنتجات والموظفون — فتُرحَّل دائما كاملة. والحد الفاصل بين ما هو حي وما هو مؤرشف قرار تجاري، لذا يُدرَج في قائمة الاعتماد إلى جانب قواعد التنظيف.
التحميلات التجريبية وتقرير المطابقة والانتقال النهائي المُتمرَّن عليه
لا نحمّل بيانات الإنتاج مرة واحدة فقط أبدا. فبرامج الترحيل النصية تُشغَّل أولا على قاعدة بيانات تجريبية — عدة مرات عادة — وينتج عن كل تحميل تجريبي تقرير مطابقة. والتقرير إما نجاح أو فشل، لا انطباع عام. وما يجب أن يتطابق هو:
- أعداد السجلات لكل نموذج — الشركاء والمنتجات والفواتير المفتوحة والطلبات — بالمقارنة بين المصدر والوجهة، مع تبرير كل استبعاد بقاعدة معتمدة.
- مجاميع الرقابة المالية — ميزان المراجعة لكل حساب، والذمم المدينة والدائنة لكل شريك، بتطابق مع المصدر حتى آخر سنتيم.
- تفاصيل البنود المفتوحة — كل فاتورة مفتوحة وكل دفعة غير مسوّاة يمكن تتبعها إلى سجلها الأصلي في المصدر.
- كميات المخزون وتقييمه، حيثما كان المخزون ضمن نطاق المشروع.
- فحوصات عشوائية يختارها العميل — حفنة من السجلات التي يعرفها معرفة دقيقة، تُتحقَّق يدويا.
فشل تحميل تجريبي في المطابقة ليس انتكاسة، بل هو قائمة التحقق تؤدي عملها. نصحّح القاعدة أو المطابقة، ثم نعيد التشغيل ونقارن من جديد. ولا نحدد موعد الانتقال النهائي إلا حين يتطابق تحميل تجريبي كامل تطابقا نظيفا — والانتقال نفسه يُتمرَّن عليه مسبقا. نقيس زمن التشغيل، ونكتب تسلسل الخطوات، ونتفق مع العميل على نقطة قرار للمضي أو التوقف. وخلف ذلك كله تقف خطة تراجع: يبقى النظام القديم دون مساس، وتُختبر النسخ الاحتياطية بالاستعادة الفعلية بدل افتراض صلاحيتها، وإذا فشلت المطابقة ليلة الانتقال، نعود إلى الوراء ونعيد الترتيب. فتفتح المؤسسة أبوابها في صباح اليوم التالي على النظام القديم، لا معلقة بين نظامين.
لا شيء من هذا برّاق، وهو يقدّم في بداية المشروع عملا تفضّل بعض المشاريع تأجيله. لكنه أيضا السبب الذي يمكّننا من تقديم سعر ثابت بعد تحديد النطاق بدلا من عدّاد ساعات مفتوح — فقائمة التحقق هي ما يجعل النطاق قابلا للمعرفة، وتقرير المطابقة هو ما يجعل كلمة منجز تعني منجزا فعلا. وإذا كنتم تخططون للانتقال إلى Odoo وتودون معرفة موقع التحميلات التجريبية وتقرير المطابقة والتمرين على الانتقال النهائي ضمن خطة مشروع كاملة، فإن صفحة خدمة الترحيل لدينا تستعرض التسلسل بأكمله.