工作流服务可指导客户执行后续可能的步骤



工作流服务使用Receive活动使用用户输入。 Workflow使用工作流中嵌入的业务逻辑从调用方获取数据时执行一些工作。这听起来很棒,但有一个例外。调用方如何知道下一个工作流步骤应该是什么?

例如,我们有文档处理Workflow .当文档进入系统时,将创建新的工作流实例。

创建后,文档可以由不同的经理验证,发送附加信息请求,已审阅,已关闭,已取消,合并等。 可能操作的顺序存储在工作流中。操作在工作流外部执行,并通过多个已发布的Receive活动传达给工作流。这些Receive操作的顺序在工作流中(它实际上是工作流)。

逻辑可能因部门而异。因此,我们不想在工作流程之外对其进行硬编码。

现在,文档处理处于以下状态:

  1. 执行了以前的Receive活动
  2. Workflow做了一些工作,现在坚持
  3. 如果用户执行某些操作并调用下一个Receive活动,则可以唤醒工作流

问题是外部代码如何知道该操作是什么以及应该调用Receive端点正在等待什么?

有没有简单的方法可以询问工作流在GUI中使用该信息的后续步骤是什么?

这是 Ron Jacobs 的一篇博客文章,它将引导您扩展 WF 4 的注册 - 这应该为您提供构建所需内容所需的基础。

http://blogs.msdn.com/b/rjacobs/archive/2012/05/06/extending-asp-net-mvc-account-registration-with-workflow-wf4.aspx

经过编辑以更好地解决"了解下一个状态"的问题。

好的,没有办法查询工作流,主要原因是因为工作流服务在 WSH 上运行,当它点击新书签时,它会空闲(你永远不知道它真正在哪里运行)。因此,最好的选择是在空闲之前发布该信息,我建议您通过回复将其发布给调用方,因为这是UX响应的理想时间。

经过编辑以提供一个链接,该链接可能是您正在寻找的"魔术"。

这是@RonJacobs在第9频道的一个视频 - 这个家伙真的很棒,因为他为开发人员非常努力 - 我认为这可能是你正在寻找的魔力。但是,它可能需要您更新正在使用的版本,但可能不需要。您可能还需要获取 Microsoft.Activities.Extensions NuGet 包(如果尚未获取)。我已经使用他的自定义跟踪机制进行单元测试,但不是为此。让我知道你发现了什么!

http://channel9.msdn.com/Shows/Workflow-TV/Workflow-TV-Tracking-StateMachines

最新更新