في الأنظمة التجارية الحديثة، وخاصة أثناء العمل على مشروع في بيئات التجارة بين الشركات، تحتاج الأنظمة إلى التكامل والمزامنة التلقائية للحفاظ على دقة البيانات بين قواعد البيانات المختلفة.
في أودو، يمكن تحقيق ذلك باستخدام واجهات برمجة التطبيقات (واجهة REST) لإرسال واستقبال البيانات، مع استخدام المهام المبرمجة لتنفيذ العمليات الثقيلة في الخلفية دون التأثير على أداء المنصة.
في هذا المقال، سأشرح كيفية بناء نظام مزامنة تلقائية للمنتجات بين قاعدة بيانات مركزية (مثال: maindb.nacer.ma) وقواعد بيانات العملاء (مثلاً client1.nacer.ma وclient2.nacer.ma)، وسنغطي النقاط التالية:
✅ إنشاء نقطة نهاية (واجهة برمجية) في قاعدة العميل لإتاحة المنتجات للمزامنة
✅ بناء وظيفة لجلب البيانات باستخدام رمز التحقق OAuth2 الذي يتم تحديثه تلقائيًا
✅ إدراج المنتجات الجديدة وتحديث المنتجات القديمة عند الحاجة
✅ استخدام المهام المبرمجة لضمان استمرارية عملية المزامنة حتى لو تم إغلاق واجهة المستخدم
✅ تسجيل كل خطوة في السجل لتسهيل تتبع الأخطاء ومعالجتها
🔗 1. إنشاء نقطة اتصال لواجهة برمجة التطبيقات في قاعدة العميل
الخطوة الأولى هي إنشاء واجهة برمجية في قاعدة البيانات الخاصة بالعملاء لإتاحة المنتجات للمزامنة.
هذه الواجهة ستسمح للنظام المركزي (maindb.nacer.ma) بطلب المنتجات التي يجب مزامنتها.
📌 مثال لإعداد نقطة اتصالفي client1.nacer.ma:
(على فكرة ستجد من يسميها “نقطة نهاية” كترجمة حرفية لـ end – point لكنني أفضل استخدام كلمة تدل على المعنى حسب السياق، الغرض منها هنا هو الاتصال، فهذا سبب تسميتي لها “نقطة اتصال”)

هنا تم يتم وبشكل أساسي جلب المنتجات التي تم تحديدها للمزامنة (b2b_sync=True
) ودعم التصفية حسب التاريخ لزيادة كفاءة المزامنة، وكذلك دعم التقسيم إلى صفحات حتى لا يتم تحميل آلاف المنتجات دفعة واحدة.
🔑 2. إعداد وظيفة لجلب المنتجات في القاعدة المركزية (maindb.nacer.ma)
أهم ما نقوم به هنا هو جلب المنتجات من كل قاعدة بيانات عميل عبر طلب الواجهة البرمجية أعلاه باستخدام OAuth2 للتحقق من الهوية.


⚡ 3. تشغيل المزامنة باستخدام المهام المبرمجة
طبعا لا يجب تنفيذ المزامنة بشكل متزامن بل يجب أن تكون في الخلفية باستخدام المهام المبرمجة. لذلك، نضيفها على النحو التالي مثلا:

الآن، عند النقر على “جلب المنتجات”، سيتم تشغيل العملية في الخلفية، ويمكن متابعتها من قائمة المهام المبرمجة.
هادشي ساهل ماهل 🏃♂️، بصحتكم ☕ 😁