使用外部标识

时间:2015-10-07 19:42:16

标签: workflow-foundation-4

我有一个WorkflowApplication来执行工作流程。它支持在Delay活动上持久化工作流并恢复它。要恢复它,我将使用工作流程实例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?)

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

1 个答案:

答案 0 :(得分:1)

我认为您最好的选择是查看InstancePromotedProperties的使用情况。这些应该允许您扩展空闲实例的持久性以包含其他信息。最终,您查看商店可扩展性this链接会为您提供一个有效的示例。