c# - 在 Windows Workflow 4 中,当我尝试仅使用条件数据触发器时,为什么我的状态会自行重新进入

标签 c# workflow-foundation-4 state-machine

我有一个 Windows 工作流状态机(添加了 Sharepoint 模块的 VS2017),其中有许多状态一直运行良好,直到我引入了一个具有纯数据驱动转换的附加状态。

尝试解释:我有一个称为“新建”的入口状态,在新状态的入口内,我建立了一个 bool 值事实并在状态机内部设置了一个变量。

然后我从新状态转换到另一个状态,让我们简单地将目标状态称为"is",并且此转换只有一个数据条件,即我的 bool 事实是否为真。转换的“触发”部分留空。我相信这是受支持的?

[Transition] New->Yes condition: "MyFact == true"

如果我删除上述条件,则工作流将自动进入"is"状态。如果我把条件放回去,那么工作流似乎会转变,然后自己进入某种永久循环。有没有人对如何解决这个问题有任何建议?如果我在触发器中放置一个空序列,我可以在该序列上放置一个断点,然后看到它一次又一次地被击中。 "is"目标状态使用另一个书签事件转换回其自身。所以我不明白循环到了哪里。

我认为最重要的问题是:条件数据表达式是否支持空白触发器?如果是这样,我做错了什么?

最佳答案

您不必在过渡的触发部分中包含任何内容,这在 Windows Windows 工作流中受支持,不确定您为什么要进入永久循环,如果您编辑问题并添加一些图像可能会更好状态图。

这是一个触发器为空的示例,我只对状态图中定义的变量有一个条件,如果它通过,它将进入状态 2

enter image description here

关于c# - 在 Windows Workflow 4 中,当我尝试仅使用条件数据触发器时,为什么我的状态会自行重新进入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47816177/

相关文章:

c# - WCF 错误处理程序异常日志记录

c# - 编码安装程序

c# - C# 中的 FileReader 类

c# - 如何获取服务引用以使用基于第 3 方 WSDL 的消息契约(Contract)正确生成,或者在 WF 服务项目中强制不使用消息契约(Contract)

.net - 无法将自定义事件添加到 VS 2012 工作流

java - 有限状态机中的返回语句

c# - 如何在 C# 中修饰枚举

workflow-foundation-4 - 访问数据库、重用和状态的自定义 Windows 工作流事件

c - 一维状态转移表

c++ - 如何实现 QStateMachine 状态转换 Action ? Q信号映射器?