分支
# 1 分支介绍
逻辑流的图元中,除了throws(异常抛出图元)和End(结束图元)节点外,都支持发出一根或多根连线。 当前图元(该连线的发出源图元)正常执行完毕后,如果后面的某个连接线上的条件满足,则该连接线所指向的图元将得到执行。可以在连接线上设置连线条件,当连线上面的条件满足时,逻辑流流程会按照当前连线进行流转。
当一般连线设置为默认线时(连线上没有"*"符号标识的为默认连线),不需要在上面设置简单条件或者复杂条件; 当一般连线设置为非默认线时,需要设置简单条件或者复杂条件;如果两者都未设置,则保存编译会提示错误信息。
说明:
开始图元不能作为连线的目标图元;
结束图元不能再连接到其他图元;
除结束图元、异常图元外,图元后面至少有一根连线;
除结束图元、异常图元外,图元后面有且只能有一条默认连线。
注意:
当一个图元后面的多条连线同时满足条件,目前只能有一条被选择执行,而不是所有满足条件的连线都会被执行。
# 3 分支条件判断
# 3.1 简单表达式
简单条件是判断一个值是否==(关系运算符)另外一个值(后面称为右值),关系运算符共有如下:==、!= 、>=、>、<、<=、ObjNotEqual、ObjEqual、IsNull、NotNull、NullOrEmpty、NotNullAndEmpty。 右值的类型可以是个常量、变量,或一个表达式(一个合法的Java表达式)。 "简单表达式"的设置可参见循环图元。
示例一:如何使用简单表单式设置分支条件?
1.创建逻辑流
创建一个计算客户积分信息的逻辑流,按照下图所示,从选用板选择图元,组装如下的逻辑流:
2.设置逻辑流参数
设置输入参数customer:客户信息SDO数据实体,类型是test.img.customer
;amount: 消费金额属性字段,类型是Float
;
设置返回值score:消费积分属性字段,类型是Float
;
3.设置大客户积分连线条件
在"简单条件"连线"设置的Tab页选中简单表达式,输入左值、右值与比较操作符;(注:左值变量支持XPath,customer是一个实体类型,拥有level属性,可以直接使用customer/level来获取customer实例的level属性值)。
4.执行调试
执行逻辑流,通过断点调试可以看出,满足简单条件分支。
赋值完成后点击确定按钮,关闭弹窗并保存逻辑流,至此完成分支条件简单表达式配置。
# 3.2 复杂表达式
复杂条件为一个值类型为boolean的Java表达式。该表达式必须符合java规范,表达式最后的计算结果必须是一个boolean类型的值。
示例一:如何使用复杂表达式设置分支条件?
1.设置大客户积分连线条件:
此处沿用上面简单表达式所创建的逻辑流,在简单条件连线配置弹窗中,修改条件信息为java表达式,表达式中输入内容customer.get("level").equals("A")
。
2.调试运行:
输入参数customer
与参数amount
的值,通过断点调试可以查看到逻辑流分支走向。