【发布时间】:2013-10-26 07:38:50
【问题描述】:
我已成功保存状态机,并在多次加载后将书签应用到状态机。
但是当它们到达最终状态时会发生什么?
为什么在完成后它们会从持久性数据存储 ([System.Activities.DurableInstancing].[InstancesTable]) 中删除?
这是正常的还是我在持久化完成的状态机时犯了一个错误?
【问题讨论】:
-
你为什么需要那个?
-
@Will :我想知道这是正常行为还是我错过了什么。为什么没有人在书籍或互联网文章中提到“完成的工作流将从持久性数据库中删除”?
-
他们为什么不这样做?他们执行完毕。存储完成的工作流程有什么价值?与作用域完成后收集的变量相同。
-
@Will 好的,我明白了。但是在批准系统中,我们必须知道到目前为止批准该文件的人是谁。所以实现审批系统的最佳方式是我们将触发的书签保留到现在并且不保留工作流,并且每当我们想知道该文档现在在我们的审批系统中的什么位置时,创建一个新的工作流实例并应用到目前为止的书签并了解我们处于哪个状态。
-
工作流就是代码。如果 any 方法确定批准/拒绝,则不会存储该方法的代码,而是存储批准者、拒绝者和最终状态。因此,您不应该存储工作流的代码,而是存储结果。我将使用扩展 NativeActivity 的自定义活动,并在有人批准/拒绝时使用工作流扩展与外部通信。工作流程完成后,我也会记录该结果。
标签: workflow-foundation-4 state-machine