WCF工作流服务可以将工作流类型作为参数吗?

时间:2012-02-08 12:06:38

标签: wcf workflow workflow-foundation

我正在调查Workflow Foundation,希望得到一些澄清。

单个工作流类型是否仍然绑定到单个WorkFlow服务,就像WF3中的情况一样?

或者,可以在将工作流类型作为参数的工作流服务之前使用工作流主机/工作流主机工厂(或类似的东西)吗?

我的情况是,我们会为每个客户提供不同的工作流程。每个工作流程都会相同,但通过从客户端选择客户,可以调用不同的工作流程。我不希望为每个新客户硬编码调用多个工作流服务,而是希望将新工作流活动添加到类库并将工作流名称添加到数据库中的客户记录这么简单。 (这不会是这么简单,但我认为这解释了这个概念)。

干杯

1 个答案:

答案 0 :(得分:1)

在WF 4.0中,Workflow Service是工作流定义,它通过WCF公开服务合同。所以,是的,工作流服务仍然直接耦合到工作流类型。

在您的情况下,我可能会定义一个{<3}}服务合同,其中单个操作直接映射到工作流实施的业务流程。该请求将包含唯一标识应为其启动进程的客户的令牌。然后,服务实现在逻辑上会做一个两件事:

  1. 启动请求客户的工作流程
  2. 启动编排工作流程,传递客户标识令牌。然后,此工作流将在适当时分支到客户特定的工作流程。
  3. 如果部分业务流程在客户中相同,那么2)方法会很有意义。此外,没有什么可以阻止您将客户特定的XAML工作流定义存储在数据库中,并且facade来自编排工作流。