من أكتر الأسئلة اللي بتتكرر أثناء تطوير الـ Plugins في Dynamics 365 CRM: أستخدم Synchronous ولا Asynchronous؟ 🤔
الإجابة تعتمد على طبيعة العملية اللي هتنفذها.
- 🔹 Synchronous Plugin (Sync): الـ Plugin بيشتغل في نفس لحظة تنفيذ العملية، والمستخدم بيستنى لحد ما الـ Plugin يخلص.
يستخدم في: Validation قبل الحفظ، تعديل البيانات قبل أو بعد الحفظ، منع إنشاء أو تحديث سجل إذا كان في شرط معين، أي عملية لازم تتم قبل ما المستخدم يكمل.
مثال: عند إنشاء Contact: تتأكد إن رقم الهوية الإماراتية (Emirates ID) غير مكرر. لو الرقم موجود بالفعل، تمنع إنشاء السجل وتعرض رسالة للمستخدم. في الحالة دي لازم تستخدم Synchronous Plugin لأن المستخدم لازم يعرف الخطأ فورًا.
- 🔹 Asynchronous Plugin (Async): الـ Plugin بيشتغل في الخلفية (Background) بعد انتهاء العملية، وبالتالي المستخدم مش بيستنى.
يستخدم في: إرسال Email، استدعاء API خارجي، التكامل مع أنظمة أخرى، إنشاء ملفات أو تقارير، أي عملية ممكن تستغرق وقتًا.
مثال: بعد إنشاء Case: ترسل بيانات الـ Case إلى نظام خارجي (ERP أو VMS أو SSP).
الخلاصة: استخدم Synchronous عندما تكون العملية Validation أو تحتاج نتيجة فورية أو لا تحتمل بيانات خارجية، استخدم Asynchronous عندما تكون العملية طويلة أو تكامل خارجي أو لا تحتاج إيقاف المستخدم. اختيار النوع المناسب يساعد في تحسين Performance وUser Experience وSystem Stability.