【问题标题】:Human activity support in Windows Workflow 4Windows Workflow 4 中的人工活动支持
【发布时间】:2010-11-12 20:31:12
【问题描述】:

我正在研究 .NET 4.0 的 Windows 工作流 (WF),但似乎缺少一些内容。从BPM 的角度来看,您希望拥有工作队列和安全(用户授权)的概念。

例如,假设您有多个长时间运行的工作流实例,这些实例来自在应用服务器(例如 AppFabric)上运行的多个不同工作流。一些实例正在等待来自客户端的调用(可能是具有基于内容的相关性的 WCF 接收)。客户端需要能够查询服务器以确定哪些工作流实例(来自任何工作流)正在等待来自它们的输入。这必须在活动级别基于权限(最好使用 Active Directory 服务)。

例如:

  • 工作流程 1
    • 活动 A,与 orderId 相关
      • 权利:Abby、Bill
    • 活动 B,与 orderId 相关
      • 权利:艾比
  • 工作流程 2
    • 活动 C,与 workItemId 相关
      • 权利:比尔

工作流 1 有 3 个实例正在运行,两个在活动 A(订单 123 和 456),一个在活动 B(订单 789)。
工作流 2 有 1 个实例在活动 C(工作项 99)处运行。

Bill 查询服务器并看到:

工作流活动键 1 个订单Id=123 1 个订单Id=456 2 C workItemId=99

Abby 查询服务器并看到:

工作流活动键 1 个订单Id=123 1 个订单Id=456 1 B 订单ID=789

This article 讨论从头开始为 WF 3.x 编写功能(对人类活动的支持)。

问题:

  1. WF 4 中是否有任何此功能?如果有,它叫什么?
  2. 如果没有,是否有一个开源项目可以将任何此功能添加到 WF 4?
  3. 如果没有,是否有比上述文章更新的实施指南?

注意:如果可以避免,我宁愿不将解决方案与 SharePoint 结合。

【问题讨论】:

  • 我现在正在构建这样一个系统,并且已经研究了几个月。工作量很大 - 不幸的是,我不能分享,因为这是一项商业冒险。我的也使用 MSMQ 作为传输,因此它增加了更多的复杂性。耐用的双工、.NET 上下文相关等。祝你好运!

标签: wcf .net-4.0 workflow-foundation-4 appfabric business-process-management


【解决方案1】:

好的,让我们从简单的遮阳篷开始。

  1. 不,框中没有对此的直接支持
  2. 据我所知,没有提供此功能的操作系统项目。
  3. 我不知道,但我不得不承认我也不知道这篇文章。

到目前为止,坏消息。

假设你想写这样的东西,但是有一些基本的构建块。如果您使用 SqlWorkflowInstanceStore,您将获得一列,其中包含给定工作流的当前书签。这将告诉您当前在给定工作流中哪些接收活动处于活动状态。

SqlWorkflowInstanceStore 中还有属性提升的概念,它允许您提取并查询工作流变量,例如示例中的 orderId。另一件要注册的事情是启动工作流程的人,因为通常某些操作只有发起人才允许。

将这些与包含每个工作流和 WCF 操作的安全规则的自定义表结合起来,我认为您已经顺利实现了这里的基本实现。

【讨论】:

  • +1,以及一个可能的答案(我会给其他人一些时间)。我正在考虑按照您的建议使用 PersistenceParticipant 扩展并与 SqlWorkflowInstanceStore 一起使用,并且很高兴确认这是合理的。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多