Wcf Windows Workflow 4中的人员活动支持

Wcf Windows Workflow 4中的人员活动支持,wcf,.net-4.0,workflow-foundation-4,appfabric,business-process-management,Wcf,.net 4.0,Workflow Foundation 4,Appfabric,Business Process Management,我正在调查针对.NET4.0的Windows工作流(WF),似乎缺少了一些内容。从一个角度来看,您希望了解工作队列和安全性(用户授权)的概念 例如,假设您在应用服务器(如AppFabric)上运行多个不同工作流的多个长期运行工作流实例。其中几个实例正在活动中等待来自客户端的呼叫(可能是基于内容关联的WCF接收)。客户端需要能够查询服务器,以确定哪些工作流实例(来自任何工作流)正在等待来自它们的输入。这必须在活动级别基于权限(最好使用Active Directory服务) 例如: 工作流程1

我正在调查针对.NET4.0的Windows工作流(WF),似乎缺少了一些内容。从一个角度来看,您希望了解工作队列和安全性(用户授权)的概念

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

例如:

  • 工作流程1
    • 活动A,与orderId相关
      • 权利:艾比,比尔
    • 活动B,与orderId相关
      • 权利:艾比
  • 工作流程2
    • 活动C,与workItemId相关
      • 人权法案
工作流1有3个实例正在运行,两个在活动A(订单123和456)和一个在活动B(订单789)。
工作流2有一个实例在活动C(工作项99)上运行

Bill查询服务器并看到:

Workflow Activity Key 1 A orderId=123 1 A orderId=456 2 C workItemId=99 Workflow Activity Key 1 A orderId=123 1 A orderId=456 1 B orderId=789 工作流活动密钥 1订单ID=123 1订单ID=456 2 C工作项目ID=99 Abby查询服务器并看到:

Workflow Activity Key 1 A orderId=123 1 A orderId=456 2 C workItemId=99 Workflow Activity Key 1 A orderId=123 1 A orderId=456 1 B orderId=789 工作流活动密钥 1订单ID=123 1订单ID=456 1b orderId=789 讨论如何从头开始为WF3.x编写功能(对人工活动的支持)

问题:

  • WF 4中是否有此功能?如果是,它叫什么
  • 如果没有,是否有开源项目将这些功能添加到WF4中
  • 如果没有,是否有比上述文章更多的最新指南来实施它

  • 注意:如果可以避免的话,我不希望将解决方案与SharePoint结合使用。

    好的,让我们从简单的解决方案开始

  • 不,盒子里没有直接的支持
  • 据我所知,没有提供此功能的操作系统项目
  • 我不知道,但我必须承认我也不知道这篇文章
  • 坏消息到此为止

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

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


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

    +1,以及一个可能的答案(我会给其他人一些时间)。我正在考虑按照您的建议使用PersistenceParticipant扩展和Promote以及SqlWorkflowInstanceStore,最好能确认这是合理的。谢谢我现在正在建立这样一个系统,并且已经研究了几个月。这是一个很大的工作-不幸的是,我不能分享,因为这是一个商业风险。我公司也使用MSMQ作为运输工具,因此增加了更多的复杂性。持久的双工、.NET上下文关联等。祝你好运