我正在WF4中开发一个长时间运行的状态机,我无法找到一种方法来保持状态存在条件(无触发)转换。
如果在状态上只有带触发器的转换(实际上是带有CanInduceIdle的NativeActivity为true),到达该特定状态我创建书签,然后WF进入空闲状态,InstanceStore注意保持状态WF。在不满足条件的情况下进行无触发转换会导致所有转换的重新调度,从而阻止WF进入空闲状态并持续存在。 这是一个例子:
当WF启动时(假设对象OBJ为InArgument),它转到State1,这里有3个转换:
我提出的唯一解决方案是,放置一个先前的状态,没有任何操作来评估条件,并将Trigger转换(可以修改我正在处理的对象)重新连接到BlankState以重新启动 - 评估无触发转换的条件。
有没有办法在无触发转换中评估条件,如果条件为假,让WF进入空闲状态? 我还尝试使用共享环回过渡来拦截错误情况(使用!条件)并将延迟置于空闲状态并保持WF,但在这种情况下,似乎没有保存活动书签。
有什么想法吗?
答案 0 :(得分:3)
我怀疑是否有一种方法可以实现无触发转换,从而导致持续空闲。您可以创建一个评估条件的活动,然后导致空闲。