# 编排概述

低代码平台整合了开源引擎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...

顶部