# 编排概述
低代码平台整合了开源引擎Serverless Workflow (opens new window) 实现后端业务逻辑的编排,以前通过 java 代码来实现业务逻辑,现在可以通过可视化编排的方式进行,通过将大程序分割成一系列小步骤的函数操作,实现逻辑的自由组装。每个函数负责简单的功能,平台内置了基础节点,实体操作,数据库操作,流程操作等常用节点。同时,允许开发人员扩展函数逻辑节点。
# 核心概念
每一个逻辑编排都是一个独立的逻辑单元,可以被其他逻辑单元调用。每个编排必须包含一个开始节点和一个结束节点。开始节点是编排的入口,结束节点是编排的出口。同时也建议为每个编排定义输入参数和输出参数。 在往下阅读之前,建议先了解 jq 表达式 (opens new window)。它是一种用于处理 JSON 数据的轻量级查询语言,用于从 JSON 数据中提取数据。整个函数编排的过程中,大量使用了 jq 表达式。
- 函数节点:具有特殊功能的后端逻辑块,每个节点有相关的
运行参数; - 函数入参:节点的输入参数,可以是固定值,也可以是其他节点的输出值;
- 输入过滤器:对输入参数进行过滤,可以对输入参数进行校验,转换等操作;
- 保留结果:是否保留节点的输出结果,如果保留结果,可以在后续节点中使用;
- 结果过滤器:对输出结果进行过滤,可以对输出结果进行校验,转换等操作;
- 结果位置:将当前节点的输出结果,指定放到整个编排数据的哪个位置;
- 输出结果过滤器:对整个编排最后输出的数据进行过滤,这部分数据会流转到下个节点;
函数节点: IDE 内置了 20+ 常用节点。
函数节点配置:选中某个节点,即可配置节点的参数。
# 应用场景
目前可用于以下几个应用场景:
- 实体事件:在实体的创建、更新、删除等操作前后执行函数逻辑。
- 接口调用:在接口调用前后执行函数逻辑。
- 流程事件中调用:在流程结束后执行函数逻辑。
# 1.实体事件
在【实体】中选择一个实体,进入【事件】设置实体的创建/更新/删除等操作的前后事件函数:

根据上面的案例,实体在创建后,将会触发【发起流程】这个函数,当前实体的完整数据将会以传入该函数。在函数的逻辑中,可以通过.entity获取到当前实体的完整数据。例如获取当前实体的 id,可以通过.entity.id获取。
⚠️⚠️⚠️ 对于实体创建/更新前事件,函数接收到的 .entity 可能不是完整的。例如实体创建前事件,.entity 只包含了实体的部分字段,而实体创建后事件,.entity 才会包含了实体的所有字段。实体更新前事件同理(只更新部分字段)。
# 2.接口调用
创建接口的时候,选择从编排新建接口:
接下来开发者需要自定义请求参数,请求体,响应体等信息。这些信息将会在函数逻辑中使用。对于接口传入的参数,通常有如下几种类型:
- URL参数:来自query/path,直接使用
.参数名获取; - 请求体参数: 建议使用 application/json 格式参数,使用
.requestBody获取,如请求体是{"name":"zhangsan"},获取 name 的值则用.requestBody.name;
# 3.流程事件中调用
coming soon...