我正在创建一个Windows工作流(使用WCF),它会无限期地等待,直到用户执行某些操作。 我已经使用了流程图活动,并且在流程图结束时,我再次将其恢复到工作流程的开始,以便工作流程无休止地等待,直到达到用户的预期响应。
问题在于,每个工作流程都有到期日,因此我需要终止已过期的工作流程。我最初认为我会在工作流中公开另一个单独的WCF服务,只有在调用此服务时才会终止工作流。但是当我创建一个单独的WCF服务(SendAndReply Activity)时,当我添加对工作流服务的引用时,它并没有显示为操作契约。
任何人都可以告诉我如果达到截止日期我们如何终止工作流程?那我该如何制作一个终止工作流程的独立流程呢?
答案 0 :(得分:2)
您应该能够在工作流程中放置计时器。有一个分支控件等待,直到发生两个(或更多)事件之一。使用该控件,其中第一个满足事件是用户操作,第二个满足事件是计时器。
答案 1 :(得分:1)
据我了解您的工作流程,它更适合将其实现为状态机。然后,您可以轻松实现等待用户输入。您可以使用具有延迟活动的触发器来终止(或进入最终状态)您的任务。或者,您可以在触发器中使用send recive活动将其公开为WCF服务。
如果您使用system.activities.extensions,则可以轻松使用DelayUntilDateTime活动。