بدء/إنهاء خدمة سير العمل من اثنين من الإجراءات المختلفة

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

سؤال

علي سير العمل (الصورة المرفقة) مع اثنين من تلقي الإجراءات (البداية والنهاية).كل الإجراءات ربط على WorkflowId المعلمة.لدي أيضا FinishWorkflow (منطقي) معلمة.

أردت أن تبدأ العمل مع بدء العمل ثم ثم انتظر حتى FinishWorkflow التغييرات المعلمة إلى true (باستخدام FinishWorkflow العمل).

أعتقد أنه عندما FinishWorkflow العمل الانتهاء من كل العمل التشطيبات حتى StartWorkflow العمل لا ينتظر وتحقق FinishWorkflow المعلمة.هل تعرف كيفية تغيير FinishWorkflow العمل لذا لن تنتهي كلها سير العمل ?

تيا

enter image description here

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

المحلول

نعم السيناريو الخاص بك هو قليلا من الصعب أن نفهم.لماذا بدء سير العمل داخل تختار ؟ هل تتوقع إلغاء بدء سير العملية ؟

يمكنك بالطبع التخلص يختار تماما و يكون تسلسل مع بدء سير العمل -> فعل بعض الأشياء -> إنهاء سير العمل ولكن أظن أن هذا هو فقط لأن الرسم البياني الخاص بك هو على تبسيط السيناريو الخاص بك.

ربما ما يجب أن تسأله نفسك هو

كيف الشخص/رمز الدعوة بلدي الانتهاء من عملية الحصول على إخطار من أن العملية يمكن أن تنتهي أو (اعتمادا على الطريقة التي تريد تنفيذها) أن الدعوة إلى النهاية فشلت وأنها بحاجة إلى المحاولة مرة أخرى في وقت لاحق ؟ .

إذا كان أي من أعلاه تنطبق لأن تستخدم في اتجاه واحد المراسلة ثم طريقة واحدة لمهاجمة المشكلة هو الحفاظ على FinishWorkflow داخل حلقة في حين مع حالة تعيين إلى "FinishWorkflow = false" ولذلك سوف نضع حلقات حتى آخر المكالمة بعد FinishWorkflow متغير يتم تعيين إلى true.يمكنك بعد ذلك التخلص من الداخلية اختيار ، Branch2 و التأخير.... الخفقط اختيار ما تحتاجه هو بعد بدء وفرع واحد سوف تحتوي على حين الخاص بك مع الانتهاء من داخله و فرع اثنين سوف تحتوي على كل ما الحساب كود لديك, عندما تنتهي من ذلك ، سيتم تعيين إنهاء سير العمل المتغير إلى true.

تذكر أن تتلقى النشاط كتلة الفرع الحالي وانتظر رسالة, لذلك أنت لا تحتاج إلى تأخير للحفاظ على التحقق من القيمة ، في الواقع مع تأخير, يكون النشاط الخاص بك داع الاستيقاظ و تبحث عن الإدخال عندما كان هناك لا شيء.مكلفة جدا وغير قابلة للتطوير.

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