【问题标题】:Resume a State Machine Workflow hosted within a Workflow Service恢复托管在工作流服务中的状态机工作流
【发布时间】:2012-10-09 03:48:04
【问题描述】:

我正在尝试创建托管在 IIS 中的状态机工作流的原型。客户端是一个 Web 表单应用程序。

我想要实现的是一个长期运行的“向导”风格的进程,它会持续存在于数据库中。状态机工作流基本上根据工作流的状态控制当前的 Web 表单页面。

我想知道如何找到当前状态名称以“恢复”工作流实例。想象一下,有人正在完成向导过程的一半,然后决定停止并稍后再回来完成它。

我找到了一种解决方案,即根据与工作流实例相关的字段将当前状态名称存储在数据库中;但是,这对我来说并不是一个优雅的解决方案。肯定有一种简单的方法可以使用 Workflow Services 确定工作流实例的当前状态吗?

谢谢大家,非常感谢您的帮助!

【问题讨论】:

    标签: workflow-foundation-4 workflow-foundation


    【解决方案1】:

    没有这样做的标准方法。基本方法是使用TrackingParticipant 并跟踪事件。请参阅this example 了解起点。

    【讨论】:

    • 您好莫里斯,非常感谢您的帮助。我已经从您提供的链接中实现了状态机跟踪器。这会将状态添加到 XML 格式的 InstancePromotedPropertiesTable。我想编写一个类似于上面的 TrackingParticipant,它只将 CurrentState 名称写入我选择的表中。你知道我有什么办法可以做到这一点吗?我尝试过创建自己的 TrackingParticipant;但是,我无法从 TrackingRecord 对象中找到状态机数据。我尝试过强制转换为各种派生类,但没有成功。感谢您的宝贵时间。
    • 你可以在这里找到源代码:symbolsource.org/Public/Metadata/NuGet/Project/…
    • 非常感谢您抽出宝贵时间 Maurice,您真的帮我解决了我的问题!非常感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-01-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-13
    相关资源
    最近更新 更多