我有一个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?)
我有什么想法可以解决这个问题吗?
答案 0 :(得分:1)
我认为您最好的选择是查看InstancePromotedProperties的使用情况。这些应该允许您扩展空闲实例的持久性以包含其他信息。最终,您查看商店可扩展性this链接会为您提供一个有效的示例。