Windows工作流程在截止日期后终止

时间:2012-03-23 05:32:29

标签: .net wcf workflow workflow-foundation-4

我正在创建一个Windows工作流(使用WCF),它会无限期地等待,直到用户执行某些操作。 我已经使用了流程图活动,并且在流程图结束时,我再次将其恢复到工作流程的开始,以便工作流程无休止地等待,直到达到用户的预期响应。

问题在于,每个工作流程都有到期日,因此我需要终止已过期的工作流程。我最初认为我会在工作流中公开另一个单独的WCF服务,只有在调用此服务时才会终止工作流。但是当我创建一个单独的WCF服务(SendAndReply Activity)时,当我添加对工作流服务的引用时,它并没有显示为操作契约。

任何人都可以告诉我如果达到截止日期我们如何终止工作流程?那我该如何制作一个终止工作流程的独立流程呢?

2 个答案:

答案 0 :(得分:2)

您应该能够在工作流程中放置计时器。有一个分支控件等待,直到发生两个(或更多)事件之一。使用该控件,其中第一个满足事件是用户操作,第二个满足事件是计时器。

答案 1 :(得分:1)

据我了解您的工作流程,它更适合将其实现为状态机。然后,您可以轻松实现等待用户输入。您可以使用具有延迟活动的触发器来终止(或进入最终状态)您的任务。或者,您可以在触发器中使用send recive活动将其公开为WCF服务。

如果您使用system.activities.extensions,则可以轻松使用DelayUntilDateTime活动。