هل يجب علي استخدام جهاز حالة أو سير عمل تسلسلي في WF؟

StackOverflow https://stackoverflow.com/questions/72667

سؤال

لدي عملية تجارية قابلة للتكرار أقوم بتنفيذها كل أسبوع كجزء من مسؤوليات إدارة التكوين الخاصة بي.العملية لا تتغير:أقوم بتنزيل تفاصيل التغيير في Excel، وفتح جدول البيانات ونسخ التفاصيل استنادًا إلى الماكرو، وإنشاء مستند Word من قالب جدول الأعمال، وتحديث جدول الأعمال ببيانات Excel، وإنشاء ملفات PDF من مستند Word، وإرسالها بالبريد الإلكتروني.

يتم تمثيل هذه العملية بسهولة في سير عمل متسلسل وهذا هو ما أفعله حتى الآن، مع أتمتة COM للتعامل مع أجزاء Excel وWord تلقائيًا.مفتاح التروس هو أن هناك خطوة بشرية بين "إنشاء جدول الأعمال" و"إرساله"، حيث أقوم بمراجعة تفاصيل التغيير وصياغة الأسئلة حولها، والتي يتم إضافتها إلى جدول الأعمال.لدي حاليًا نشاط تعليق لتعليق سير العمل بينما أقوم يدويًا بهذا الجزء من العملية.

سؤالي هو، هل يجب علي إعادة كتابة سير العمل الخاص بي لجعله آلة حالة لاتباع أفضل الممارسات للتفاعل البشري في عملية الأعمال، أم أن تعليق النشاط يعد حلاً معقولاً؟

هل كانت مفيدة؟

المحلول

لا، لا أعتقد أنه يتعين عليك استخدام آلة الحالة لسير العمل هذا.لكنني أقترح تغيير تعليق النشاط للأسباب التالية:

يتوقف نشاط التعليق مؤقتًا عن تنفيذ سير العمل الحالي.عادة ، يمكنك استخدام نشاط التعليق لتعكس حالة خطأ يتطلب الانتباه من قبل المسؤول.

عند تعليق مثيل سير العمل ، يتم تسجيل خطأ.يمكنك تحديد رسالة سلسلة لمرافقة الخطأ للمساعدة يقوم المسؤول بتشخيص المشكلة مع الخطأ تعليق النشاط مال.سير عمل معلق لا يزال بإمكان المثيل تلقي الرسائل التي يتم وضعها في قائمة الانتظار حتى سير العمل تمت إعادة تشغيله.كل الدولة معلومات لمثيل سير العمل يتم حفظه وإعادته عندما يتم استئناف المثيل (باستخدام استئناف).

مصدر: MSDN

الطريقة النموذجية لإضافة مهمة بشرية في سير العمل (إما التسلسل أو جهاز الحالة) هي تعريف واجهة تبادل البيانات الخارجية واستخدام نشاط HandleExternalEvent (وربما نشاط CallExternalMethod).لمزيد من التفاصيل، يرجى الاطلاع على المقالات التالية:

نصائح أخرى

تحديث:يقدم Panos نقطة جيدة حول تعليق النشاط.أوافق على أن له غرضًا مختلفًا في سير العمل الآلي.

إذا كنت تشعر أنك قلق أكثر بشأن انتقال سير العمل بين الحالات المختلفة، فإن سير عمل آلة الحالة مثالي.خلاف ذلك، التسلسل على ما يرام.

المشكلة الرئيسية التي يجب أن تحاول حلها هي أن سير العمل لا ينبغي أن يربط خيطًا أثناء انتظار التفاعل البشري (خفة حركة الخيط).إذا كان سير العمل خاملاً واستمر خلال تلك الفترة (مثل استخدام SqlWorkflowPersistenceService)، هذه لا يجب أن تكون مشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top