逻辑编排
总览
在某些场景下,表单在提交后会触发一些自定义业务逻辑,平台提供逻辑编排来满足用户对于表单数据的处理、任务处理、生成消息提醒等需求。
逻辑编排是指将多个业务逻辑模块按照一定的顺序组合成一个整体的业务流程,并将其转换为可执行的程序。
逻辑编排的目的是为了将复杂的业务逻辑模块按照一定的顺序组合成一个整体的业务流程,并将其转换为可执行的程序。
逻辑编排的入口
基础事件管理
流程事件管理
计算配置的计算逻辑设置
- 自定义前置/后置/初值逻辑
逻辑编排设计器
在通过上述入口进入逻辑编排设计器后,可以看到如下图所示的页面。
逻辑编排节点
逻辑编排一定包含一个 开始节点
,并且不可删除。
逻辑编排必须有 结束节点
或 异常节点
。当流程执行到 结束节点
或 异常节点
时,流程结束,意味着不可以继续向后追加节点。
在 开始节点
和 结束节点
间,用户可是使用 +
号来添加节点。
这些节点包含了常用的逻辑操作: 通用操作
、 实体操作
、 集合操作
、 关系操作
、 结构体操作
。
通用操作
通用操作包含了逻辑编排中最常用的操作,如 赋值
、 条件判断
、 循环
、 调用
等。
构建参数
构建参数用于构建逻辑编排过程中需要用的变量,也可以称为中间变量。
点击 +
选择 通用操作
->构建参数
即进入构建参数环节面板,这种方式构建的参数方式是手动构建。
点击 新增
按钮,可以新增一个参数面板,一个环节可以同时构建多个参数 。
配置项 | 说明 | 备注 |
---|---|---|
标签 | 当前环节的名称 | |
名称 | 当前参数的名称 | |
数据类型 | 基础 、实体 、结构体 | |
基础类型 | 文本 、数字 、是否 、日期 、字典 、文件 等 | 仅基础类型有效 |
所属实体 | 选择系统所定义的实体 | 仅实体类型有效 |
所属结构 | 选择当前上下文的结构体 | 仅结构类型有效 |
赋值
使用赋值操作可以为参数赋值,参数可以是上述的手动构建的参数,也可以是自动构建的参数(如下文的实体查询等)。
在赋值操作的环节,通过新增项
,可以一次给多个参数赋值。左侧选择要赋值的参数,右侧使用表达式来设置赋值的值。
条件判断
条件判断用于判断某个条件是否成立,如果成立,则执行后续的操作,否则执行其他条件。 点击 +
选择 通用操作
->条件判断
即进入条件判断环节面板。点击满足
标识,然后在右侧可以通过表达式
来设置条件。
点击条件判断节点框,即可继续 追加条件
或 追加否则
,一个条件判断节点可以有多个条件,但是只能有一个否则。
在条件内,点击插入
,可以继续该条件下操作。
条件判断本质上是一个嵌套分支逻辑,所以可以插入其他所有类型的操作。
以下是一个条件判断的例子:
如果楼层大于 5 层,适用水价为 3 元,如果楼层大于 10 层,适用水价为 4 元,否则适用水价为 2.5 元。
循环
循环操作用于对集合数据的遍历,可以对集合中的每一项进行操作。 点击 +
选择 通用操作
->循环
即进入循环环节面板。
主要有 3 种循环类型: 遍历集合
、条件循环
、次数循环
。
遍历集合
需要选择上下文种的集合类型的数据。
下面是一个遍历集合的例子:遍历装修工程下的房间,每次都加上房间的大小,最后赋值为总面积。
条件循环
条件循环可以根据条件来循环执行,条件循环的条件可以是表达式。
下面是一个条件循环的例子:仅遍历装修工程下的卧室
房间,每次都加上房间的大小,最后赋值为卧室总面积。
次数循环
按照指定次数循环执行。次数可以是输入的常量,也可以通过表达式获取某个集合的长度作为次数。
调用
调用是指在操作中调用已经存在的方法,这些方法可以是自定义的计算,自定义的方法,也可以是系统内置的方法。
点击 +
选择 通用操作
->调用
即进入调用环节面板。
调用方法时,会根据方法的设置,自动构建参数,供上下文适用,其中自定义计算和自定义方法也可以手动构建参数。
结束
结束节点用于结束逻辑编排的执行。一个逻辑编排可以有多个结束节点。
异常
异常节点不是处理程序异常,而是对业务异常的设计。如创建报销单时,如果发现已经有关联的报销单时,则弹框提示用户。
提示
结束和异常节点都是编排结束的节点,不能在结束节点后追加异常节点,也不能在异常节点后追加结束节点。
实体操作
实体操作用于对实体进行操作,如查询、保存、删除等。可是是当前上下文相关的实体,也可是其他实体。比如我想在购物车界面查询我的优惠券。
查询实体
通过选择目标实体,以及设置的查询条件,查询相关实体,并将结果赋值给参数。供后续操作使用。
保存实体
对于当前上下文的实体,对实体进行赋值后,可以使用保存实体,将实体数据持久化保存。
删除实体
对于当前上下文的实体,执行删除操作。如当删除装修实例的时候,需要将该实例下的所有房间都删除。
状态转移
当实体配置了状态字段,可以通过状态转移操作来实现状态的改变。
如下文的例子: 当项目立项后,需要将项目的审核状态由 审核中
转为 已完成
。
集合操作
集合操作是对集合类型的数据进行操作,直接对集合整体进行操作,而非遍历,如直接获取集合中的项、赋值、移除、合并等。
获取项
指获取集合中的某个项,可以通过获取 首项
、尾项
、指定项
等。
如下图的例子:我们有时候需要给装修的不同房间指定不同的负责人,可以通过获取项的方式,获取装修工程的指定房间,下面是将第一个房间的负责人设置成张三。
赋值项
指直接对集合中的某个项进行赋值操作。
如下图的例子:一个商品有多个环节的检验人,我们希望在检验后更新商品,把最后一个检验人赋值为当前用户。
移除项
指直接对集合中的某个项进行移除操作。
如下图的例子:一个商品有多个价格变更记录,我们只希望保存最近 5 次的记录,如果超过 5 次,则移除首项的记录。
合并集合
指将多个集合合并成一个集合,集合项的类型应当一致。
插入位置:表示后项集合并入前向集合的位置,可选为头部
、尾部
、指定项
。
如下图的例子:合并搜索的结果,将多个搜索结果合并成一个集合,供后续操作使用,例如查询华为手机
的结果,我们需要查询华为手机
以及分词华为
、手机
三个词的结果,将三个结果合并成一个集合。
关系操作
平台的关系操作是对有关系的实体进行额外的数据库外键关联操作。
保存关系
为两个实体的关系通过外键关联,并保存到数据库。
删除关系
将两个实体在数据库的外键关联关系删除。
结构体操作
结构体相对于实体,可以看作是实体的组合。结构是多种多样的,如聚合关系形成的聚合结构,组合关系形成的组合结构等。结构体中包含了结构主体,聚合体、组合体等。
结构体操作用于对结构体进行操作,如定位(查询)、保存、删除等。
结构体定位
根据上下文结构关系,找到目标结构体。
保存结构体
将结构体数据保存到数据库。在基础管理的事件中,创建操作和更新操作都会触发结构体的保存操作。
删除结构体
将结构体数据从数据库删除。在基础管理的事件中,删除操作会触发结构体的删除操作。