工作流服务,指导客户进行下一步可能的步骤

时间:2012-06-08 18:32:19

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

Workflow Service使用Receive活动消耗用户输入。 Workflow使用Workflow中嵌入的业务逻辑从调用者那里获取数据。除了一个例外,这听起来很棒。调用者如何知道下一个工作流步骤应该是什么?

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

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

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

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

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

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

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

1 个答案:

答案 0 :(得分:1)

以下是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