Skip to main content

平台接口

平台接口(Platform Interface)是 Chameleon 的可视化编程系统,通过拖拽组件、连线编排的方式实现业务逻辑,无需手写代码即可完成数据读写、流程控制、脚本计算与服务调用等复杂场景。

概述​

平台接口挂在实体对象下,一个接口即一张流程图。流程图由「开始」节点、「结束」节点以及中间的业务组件构成,组件之间通过连线表达执行顺序。开发者在属性面板右侧配置每个组件的参数,保存并发布后即可被表单按钮、视图按钮、触发器、审批流或外部 API 调用。

平台接口的核心要素:

要素说明
流程图由节点(组件)和边(连线)组成的逻辑图,存储在接口的版本记录中
组件流程中的最小功能单元,每个组件对应一项具体操作,如查询数据、写脚本
属性面板选中节点后在右侧展开的配置区,用于填写该组件的参数
开始 / 结束节点引擎固定节点,分别为流程入口与出口,不可删除
输出到最终结果接口场景特有开关,开启后该组件的执行结果会作为接口的返回值
概念说明

本文档是 平台接口 概念文档的功能说明。建议先阅读概念文档了解整体定位,再查阅本模块的组件配置细节。

组件分类​

平台接口画布左侧的组件面板按类别分组,共六类:

分类说明组件
基础组件流程的入口、出口与调试Start、End、Debug
数据操作实体的增删改查、导入导出与数据源DbInsert、DbUpdate、DbBatchUpdateField、DbUpdateField、DbLogicDelete、DbDelete、DbQueryList、DbQuerySingle、DbQueryCount、DbQueryGroup、DbDataSource、DataTranslate、DataExport、DbImport、DataImportParse
流程控制条件分支与多路分支FlowCondition、Switch、SwitchCase、SwitchDefault
高级组件脚本、服务调用、数据权限、消息通知等Async、CSharpScript、JsonScript、ServiceCall、Workflow、Mou、CustomResponse、Notification
审批流节点审批流画布专用节点ApproveStart、ApproveEnd、ApproveNode、ApproveCondition、ApproveAutoHandle
对象触发器触发器画布专用入口TriggerStart

各类组件在接口画布中的分组与顺序由前端 getMetaInterfaceSidebarItemConfig 统一配置。

组件一览​

下表列出全部组件类型、对应的枚举名与文档入口。类型名与代码枚举完全一致,区分大小写。

组件类型(枚举)分类说明
开始Start基础组件流程入口,初始化请求上下文
结束End基础组件流程出口,返回执行结果
调试Debug基础组件输出上下文用于排查问题
同步写入DbInsert数据操作向实体对象插入一条记录
更新数据DbUpdate数据操作按条件更新实体记录
批量字段赋值DbBatchUpdateField数据操作一次配置多条字段赋值
字段赋值DbUpdateField数据操作对单个字段赋值
逻辑删除DbLogicDelete数据操作标记 IsDeleted 的软删除
物理删除DbDelete数据操作从数据库永久删除
查询集合DbQueryList数据操作分页查询记录列表
查询单条DbQuerySingle数据操作查询单条记录
查询数量DbQueryCount数据操作统计记录数量
分组聚合查询DbQueryGroup数据操作分组的聚合统计
数据源DbDataSource数据操作生成下拉选项等数据源
数据翻译DataTranslate数据操作对多语言字段做翻译/还原
数据导出DataExport数据操作导出 Excel 文件
数据导入DbImport数据操作按模板导入数据
导入数据解析DataImportParse数据操作解析导入文件
条件分支FlowCondition流程控制条件判断与分支
多路分支Switch流程控制基于脚本结果的多路分支
匹配分支SwitchCase流程控制多路分支中的匹配项
默认分支SwitchDefault流程控制多路分支的兜底分支
异步任务Async高级组件后台异步执行
C# 脚本CSharpScript高级组件执行 C# 代码
JSON 脚本JsonScript高级组件配置 JSON 响应
服务 API 调用ServiceCall高级组件调用内网微服务
发起审批流Workflow高级组件发起指定审批流
MOU 数据权限Mou高级组件开启后续查询的数据权限过滤
自定义响应CustomResponse高级组件自定义返回码与提示
消息通知Notification高级组件发送站内消息
审批流开始ApproveStart审批流节点审批流入口
审批流结束ApproveEnd审批流节点审批流出口
审批节点ApproveNode审批流节点人工审批节点
审批条件ApproveCondition审批流节点审批分支条件
自动审批ApproveAutoHandle审批流节点自动执行审批动作
触发器开始TriggerStart对象触发器触发器流程入口

编排方式​

一张接口流程图按以下顺序执行:

编排要点:

  • 固定节点:Start、End、ApproveStart、ApproveEnd、TriggerStart 由流程引擎固定,不能禁用,也不能插入到边中间(见 FlowCmpFixedTypes)。
  • 节点顺序:组件属性面板中的「排序」值决定同一层级组件的执行顺序。
  • 节点禁用:接口场景支持禁用普通节点(IsDisabled),被禁用的节点在发布后的流程中不执行;固定节点不可禁用。
  • 多结束点:一张流程图可以有多个 End 节点,用于不同分支的收尾。

触发器与接口的关系​

平台接口、审批流、对象触发器三种画布共用同一套流程引擎与节点模型,区别在于场景(Scenario)与可用节点白名单:

场景Scenario 常量入口节点输出到最终结果
平台接口MetaInterfaceStart支持
审批流MetaWorkflowApproveStart不支持
对象触发器MetaTriggerTriggerStart不支持

对象触发器画布只允许白名单节点(如数据操作、条件、消息通知),不允许脚本类组件,服务端也会对画布进行校验。

配置与调试​

操作说明
保存并发布将当前画布保存为一个新版本并发布,发布后保留历史版本
版本切换通过顶部版本选择器查看/切换历史版本
取消发布将接口状态置为未发布(Status = 0)
接口测试通过 api/Biz/{接口ID} 直接传入 URL 参数与 Body 调试接口
授权跳转至应用授权页,为接口配置访问资源

接口列表还支持复制(/api/MetaInterface/Copy)以基于已有接口快速创建新接口。

下一步​

属性明细​

以下内容面向技术实现与 AI 检索,说明接口实体与流程图的存储结构。

接口实体属性​

接口存储在数据表 system_metainterface 中,继承 AppEntityBase:

属性名类型含义取值/存储值
_idstring(GUID)接口主键例:9f1c0b2e-...
AppIdstring(GUID)所属应用应用主键
MetaObjectIdstring(GUID)所属实体对象对象主键
Namestring接口名称显示名称
Tagsstring[]接口标签见下方标签枚举
Descriptionstring接口描述纯文本,可为空
Customizedbool是否被自定义过内置接口被修改后置 true
CustomCreatedbool是否由用户自定义创建用户新建为 true
Versionstring当前发布版本号发布后由引擎写入
StatusPublishStatusEnum发布状态1 已发布、0 未发布

接口标签枚举​

Tags 的可选值来自前端 MetaInterfaceTagConst:

值说明
FieldDs字段数据源
DataCmpDs组件数据源
ChartDs图表数据源
WidgetDs组件(Widget)数据源
Function功能接口(可被审批节点等的叠加接口引用)
MouMOU 数据权限
ApprovalUser审批人数据源

流程图版本存储​

流程图版本存储在数据表 system_metaflowversion 中:

属性名类型含义取值/存储值
_idstring(GUID)版本主键每次保存发布生成
Scenariostring业务场景MetaInterface / MetaWorkflow / MetaTrigger
MainObjectIdstring(GUID)所属主对象 id接口 / 审批流 / 触发器的 _id
LogicGraphicalstring逻辑图(画布序列化数据)JSON 字符串,含节点与边

相关接口​

接口说明
POST /api/MetaInterface/GetList分页获取接口列表
POST /api/MetaInterface/Create新建接口
POST /api/MetaInterface/Edit编辑接口
GET /api/MetaInterface/Get获取接口详情
GET /api/MetaInterface/GetWithVersions获取接口及其全部流程图版本
POST /api/MetaInterface/SaveAndPublish保存并发布画布
POST /api/MetaInterface/Copy复制接口
POST /api/MetaInterface/Cancel取消发布
POST /api/Biz/Test/{versionId}接口在线测试