BPMN 上下文中的 FormalExpression 是什么?

What is FormalExpression in the context of BPMN?

以下是我在流程定义示例中遇到的内容:

<conditionExpression xsi:type="tFormalExpression">${wf_reviewOutcome == 'Approve'}</conditionExpression>

代码的作用很明显,但我想了解有关 FormalExpression 的更多信息,例如它的来源以及除了比较两个值之外还能用它做什么。

FormalExpression 被声明为 BPMN 2.0 规范的一部分。

来自规范:

The FormalExpression class is used to specify an executable Expression using a specified Expression language. 

根据你使用的引擎不同,表达式能达到的效果会有所不同,Activiti的表达式语言是JUEL。

通常表达式主要用于条件网关,因此只需要与 approved/rejected 等字符串进行简单比较,但是您可以使表达式脚本尽可能复杂(请记住可维护性)。

希望这对您有所帮助, 格雷格