jBPM中的规则6

时间:2014-05-11 18:50:07

标签: drools jbpm

我在jbpm 6中创建了一个进程。有一个Person类,具有属性名称和年龄。在流程表单中,输入人员的姓名和年龄。该过程中的第一个节点是查看详细信息的人工任务。第二个节点是一个XOR网关,其弧上有drools表达式,如Person(年龄> 20)和Person(年龄<20)。 现在当我执行流程实例时,第一个人工任务工作正常,但当它到达网关时,我可以看到这个错误 - &#34; XOR拆分找不到至少一个有效的分离网关&#34;的传出连接。 任何想法都错了。

1 个答案:

答案 0 :(得分:1)

包含drools表达式的网关仅适用于事实,而不适用于流程变量。如果要在网关中使用drools表达式,则需要将流程变量(或整个流程实例)作为事实插入。您可以通过使用脚本节点,在人工任务中执行传出操作来实现此目的。

From documentation

  

规则约束不能直接访问流程中定义的变量。但是,可以通过将流程实例添加到工作内存并匹配规则约束中的流程实例来引用规则约束内的当前流程实例。 .......请注意,您自己有责任将流程实例插入会话中,并可能更新它,例如,使用Java代码或on-entry或退出或显式操作处理。

希望它有所帮助,