【问题标题】:Load Workflow Instance with external ID使用外部 ID 加载工作流实例
【发布时间】:2015-10-07 19:42:16
【问题描述】:

我有一个 WorkflowApplication 来执行工作流。它支持在延迟活动上持久化工作流,并恢复它。为了恢复它,我使用了工作流实例 ID:

public void ResumeWorkflow(Guid instanceId) 
{
    var instance = WorkflowApplication.GetInstance(instanceId, this.instanceStore);

    var wfApplication = new WorkflowApplication(
        (Activity)businessProcess, 
        instance.DefinitionIdentity);

    wfApplication.Load(instance);
}

这很好用,但我想根据 instanceId 以外的一些其他数据开始恢复工作流。例如,假设我的工作流程是一个短信聊天机器人,我可能想使用手机号码来恢复工作流程。

实际上,我想将手机号码用作关联句柄,但这些似乎仅在您的工作流中托管 WCF 服务时使用,这不是我们使用它们的方式。

最后,我应该补充一下,我们正在使用 SqlWorkflowInstanceStore,如果这样可以让事情变得更容易(也许我们可以查询实例存储以从电话号码或其他东西中找出实例 id?)

有什么想法可以解决这个问题吗?

【问题讨论】:

    标签: workflow-foundation-4


    【解决方案1】:

    我认为最好的办法是查看 InstancePromotedProperties 的使用情况。这些应该允许您扩展空闲实例的持久性以包含其他信息。最终,您查看 Store Extensibility this 链接为您提供了一个可行的示例。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-05-23
      相关资源
      最近更新 更多