第 9 章 约束(constraint)
约束是一个布尔值表达式,在执行包含约束的元素时评估。您可以在流程的不同部分使用限制,比如在分散网关中使用限制。
Red Hat Process Automation Manager 支持两种类型的限制,包括:
代码约束 :在 Java、Javascript、Drools 或 MVEL 中定义的限制。代码约束可以访问工作内存中的数据,包括全局和进程变量。以下代码约束示例包含
人作为进程中的变量:Java 代码约束示例
return person.getAge() > 20;
return person.getAge() > 20;Copy to Clipboard Copied! Toggle word wrap Toggle overflow MVEL 代码约束示例
return person.age > 20;
return person.age > 20;Copy to Clipboard Copied! Toggle word wrap Toggle overflow Javascript 代码约束示例
person.age > 20
person.age > 20Copy to Clipboard Copied! Toggle word wrap Toggle overflow 规则限制 :以 DRL 规则条件的形式定义的限制。规则约束可以访问工作内存中的数据,包括全局变量。但是,规则限制无法直接访问进程中的变量,但使用进程实例。要检索父进程实例的引用,请使用类型 workflow
ProcessInstance 的变量。processInstance注意您可以将进程实例插入到会话中,并根据需要更新它,例如,使用 Java 代码或一个 On-entry、on-exit 或显式操作。
以下示例显示了规则约束,搜索名称与进程中
name的值相同的人。带有进程变量分配的规则约束示例
processInstance : WorkflowProcessInstance() Person( name == ( processInstance.getVariable("name") ) ) # add more constraints here ...processInstance : WorkflowProcessInstance() Person( name == ( processInstance.getVariable("name") ) ) # add more constraints here ...Copy to Clipboard Copied! Toggle word wrap Toggle overflow