表单、远程数据源与连接器
工作流表单用于收集流程变量、渲染审批详情和驱动分支/审批人解析。当前引擎支持三种表单来源,并提供远程数据源与连接器来增强表单选项和外部调用。
表单来源
| 类型 | 数据归属 | 说明 |
|---|---|---|
designer 表单库设计器 | workflow_instances.formData | 通过「表单库」维护可复用表单,流程定义绑定 formId |
custom 自定义业务表单 | workflow_instances.formData | 通过 React 组件承载复杂交互,提交值仍进入流程实例 |
external 业务系统主导 | 业务模块自己的表 | 流程只保存 bizType + bizId 和路由变量,审批详情由业务查看组件渲染 |
表单库
表单库页面支持表单分页列表、启停、创建、编辑、复制和删除。流程设计器选择表单后,发起工作台、审批页和实例详情都使用同一套内置渲染器。
字段类型
| 分组 | 字段 |
|---|---|
| 基础控件 | 单行文本、多行文本、数字、金额、日期、日期区间、时间 |
| 选择控件 | 下拉单选、下拉多选、自动完成、单选框组、复选框组、开关、滑块、标签、颜色 |
| 格式化控件 | 手机号、邮箱、身份证、网址、密码、验证码、评分、公式 |
| 系统组件 | 人员选择、部门选择、字典选择、关联审批单 |
| 高级控件 | 附件、图片、省市区、手写签名、富文本、明细 |
| 布局控件 | 说明文字、流水号、分栏、分割线、分组、标签页、分步 |
字段可配置必填、默认值、占位提示、帮助文本、长度、正则、数值范围、日期限制、文件限制、选项颜色、动态可见、动态必填、动态只读、字段比较、明细列唯一和公式表达式。
公式字段
公式字段使用 {字段key} 引用字段值,使用 {明细key.列key} 引用明细列聚合。支持数学、逻辑、文本、日期函数,例如:
IF({days}>3, {amount}*0.9, {amount})
SUM({items.amount})
DATEDIF({start}, {end}, "d")字段在流程中的作用
| 场景 | 说明 |
|---|---|
| 条件分支 | 使用表单字段和聚合值计算分支命中 |
| 审批人解析 | formUser 读取人员字段,formDepartment 读取部门字段并解析负责人 |
| 表单权限 | 节点按字段设置只读、可编辑、隐藏 |
| 子流程映射 | 父流程字段映射到子流程,子流程输出回填父流程 |
| 触发器模板 | {{form.field}} 占位符渲染请求体、更新字段或回调参数 |
自定义业务表单
custom 表单适合表单库控件无法覆盖的交互。流程定义保存组件路径和变量声明,运行时通过 BusinessFormHost 加载。
| 配置 | 说明 |
|---|---|
| 创建 / 填写组件 | 相对 packages/web/src/pages 的组件路径 |
| 查看组件 | 可选;为空时复用创建组件并以只读模式渲染 |
| 图标 | 用于业务表单入口展示 |
| 变量 | 声明可被条件分支和审批人解析读取的字段 |
业务组件接收 mode、container、definitionId、instanceId、value、readOnly、variables 和 getFormApi。在发起和审批可编辑场景中,组件需通过 getFormApi 暴露 validate() 与 getValues()。
业务系统主导表单
external 表单用于已有业务实体接入审批。业务数据保留在业务表中,工作流实例只保存业务键和少量路由变量。完整接入方式见 业务模块接入工作流。
远程数据源
远程数据源用于让表单选项从外部 HTTP 接口拉取,主要服务于下拉、自动完成等字段。
| 配置 | 说明 |
|---|---|
| 名称 | 数据源显示名 |
| 方法 | GET / POST |
| URL | 以 http:// 或 https:// 开头 |
| 请求头 | 静态 Header(AES-256-GCM 加密存储,回显时值脱敏为 ******,更新时传 ****** 沿用旧值) |
| 列表路径 | 从响应 JSON 中提取数组的路径 |
| 值字段 / 显示字段 | 映射为表单选项的 value 和 label |
| 关键词参数 | 搜索时传给远程接口的参数名 |
| 状态 | 启用 / 禁用 |
页面入口为 工作流引擎 → 远程数据源。列表支持测试拉取选项,表单字段配置面板可选择已启用的数据源。
连接器
连接器集中管理外呼的基础地址、鉴权凭据、超时、重试、限流、熔断和调用记录。触发器、外部审批和事件订阅都可以引用连接器。
| 能力 | 说明 |
|---|---|
| 类型 | http、webhook、email、sms、wecom、dingtalk、feishu、mq、database |
| 凭据 | Token、用户名密码、API Key 等凭据加密落库,列表不回传明文 |
| 超时 / 重试 | timeoutMs 和 retryMax 控制单次调用与重试 |
| 熔断 | 连续失败达到阈值后进入冷却期 |
| 限流 | 按窗口秒数和最大次数控制调用频率 |
| 测试调用 | 页面可发起一次探测请求并查看响应 |
| 调用监控 | 查看近 N 天统计和最近调用记录 |
连接器页面入口为 工作流引擎 → 连接器。当节点或订阅选择连接器后,配置中的 URL 可退化为相对路径,由连接器提供基础地址和鉴权。