# 流程配置数据库表(ext_act_process 系列) 流程除了 BPMN XML 外,还需要在 4 张配置表中存储流程属性、节点配置、表单绑定和字段权限。 ## 1. ext_act_process — 流程主表 | 字段 | 说明 | 取值 | |------|------|------| | `id` | 流程ID(主键) | 新建时返回 | | `process_key` | 流程定义Key | `process_{timestamp}` | | `process_name` | 流程名称 | 用户定义 | | `process_type` | 流程分类 | 字典 `bpm_process_type` 的值,如 `oa`、`test` | | `process_status` | 发布状态 | 0=未发布, 1=已发布 | | `process_xml` | BPMN XML(longblob) | 完整 XML 内容 | | `start_type` | 发起方式 | 见下表 | | `urge_status` | 允许催办 | `0`=关, `1`=开 | | `back_status` | 允许撤回 | `0`=关, `1`=开 | | `graphic_status` | 显示流程图 | `0`=关, `1`=开 | | `auto_submit_status` | 自动提交 | `0`=关, `1`=开 | | `notify_way` | 通知方式 | 系统消息/邮件/钉钉/企微 | | `open_status` | 启用状态 | 0=关, 1=开 | | `run_concurrent_mode` | 并发模式 | 控制同一数据多次发起 | | `iz_supervise` | 督办标记 | 0=否, 1=是 | **start_type 发起方式:** | 值 | 说明 | |----|------| | `manual` | 手工发起流程(默认) | | `tableEvent` | 工作表触发(数据新增/修改时自动发起) | | `buttonEvent` | 按钮事件触发(自定义按钮触发) | | `timerEvent` | 定时触发 | | `dateFieldEvent` | 根据表日期字段触发 | | `userEvent` | 人员事件触发(如员工离职) | | `subEvent` | 子流程触发 | ## 2. ext_act_process_form — 流程表单绑定 将流程与业务表单关联: | 字段 | 说明 | 取值 | |------|------|------| | `relation_code` | 关联编码(唯一) | `onl_{表名}` / `desform_{表名}` / `dev_{表名}_001` | | `biz_name` | 业务名称 | 可选 | | `process_id` | 关联流程ID | 外键 | | `form_table_name` | 表单表名 | 业务表名 | | `form_type` | 表单类型 | 见下表 | | `title_exp` | 标题表达式 | 如 `请假申请【${name}】` | | `form_deal_style` | 表单处理风格 | `default` | | `flow_status_col` | 流程状态字段 | 通常为 `bpm_status` | | `trigger_action` | 触发动作 | `add`/`update`/`add\|update`(tableEvent 时用) | | `report_print_url` | 打印模板URL | 可选 | **form_type 表单类型:** | 值 | 说明 | relation_code 格式 | |----|------|-------------------| | `1` | Online表单(低代码表单) | `onl_{tableName}` | | `2` | 表单设计器(DesForm) | `desform_{formCode}` | | `3` | 自定义开发表单 | `dev_{code}_001` | **title_exp 标题表达式语法:** 使用 `${变量名}` 引用表单字段值,如 `请假【${name}】提交于${create_time}`。 ## 3. ext_act_process_node — 节点配置 控制每个审批节点的行为: | 字段 | 说明 | 取值 | |------|------|------| | `process_id` | 关联流程ID | 外键 | | `process_node_code` | 节点ID(对应 XML 中的 userTask id) | 如 `task_apply` | | `process_node_name` | 节点名称 | 如 `部门经理审批` | | `model_and_view` | PC端表单路径 | 如 `super/bpm/process/components/OnlineFormOpt` | | `model_and_view_mobile` | 移动端表单路径 | 可选 | | `node_timeout` | 超时提醒(小时) | 0=不提醒 | | `form_edit_status` | 表单是否可编辑 | `0`=只读, `1`=可编辑 | | `cc_status` | 允许抄送 | `0`=关, `1`=开 | | `selnext_user_status` | 允许选择下一步处理人 | `0`=关, `1`=开 | | `msg_status` | 消息通知 | `0`=关, `1`=开 | | `transfer_status` | 允许转办 | `0`=关, `1`=开 | | `add_sign_status` | 允许加签 | `0`=关, `1`=开 | | `smart_back_status` | 允许智能回退 | `0`=关, `1`=开 | | `reject_status` | 允许驳回 | `0`=关, `1`=开 | | `allow_counter_sign_add_user` | 会签允许加人 | `0`=关, `1`=开 | | `node_config_json` | 节点扩展配置(JSON) | 包含通知设置、审批人配置等 | ## 4. ext_act_process_node_auth — 字段权限配置 控制每个节点上表单字段的可见性和可编辑性: | 字段 | 说明 | 取值 | |------|------|------| | `process_id` | 关联流程ID | 外键 | | `process_node_code` | 节点ID | 如 `task_apply` | | `rule_code` | 字段编码 | 表单字段名 | | `rule_name` | 字段名称 | 显示名称 | | `rule_type` | 策略类型 | `1`=显示, `2`=禁用 | | `status` | 效果模式 | `1`=正向有效, `0`=反向有效 | | `required` | 是否必填 | `0`=否, `1`=是 | | `form_type` | 表单类型 | `1`/`2`/`3` 同上 | | `form_biz_code` | 表单业务编码 | 表名或表单编码 | | `desform_com_key` | DesForm 组件Key | DesForm 专用 | **rule_type + status 组合效果:** | rule_type | status | 效果 | |-----------|--------|------| | `1`(显示) | `1`(正向) | 字段**可见** | | `1`(显示) | `0`(反向) | 字段**隐藏** | | `2`(禁用) | `1`(正向) | 字段**禁用**(只读) | | `2`(禁用) | `0`(反向) | 字段**可编辑** | ## 5. node_config_json 完整结构 节点扩展配置 JSON 包含以下关键字段(来自生产数据分析): ```json { // 审批人配置 "approverGroups": { "approverType": "candidateUser", "assigneeType": "assigneeByName|assigneeByExp", "approverIds": ["admin", "jeecg"], "approverNames": ["管理员", "jeecg"], "roleIds": [], "roleNames": [], "deptIds": [], "deptNames": [], "postIds": [], "postNames": [], "expressionsIds": ["${applyUserId}"], "expressionsNames": ["获取发起人"], "formTableType": "", "levelMode": "1", "variableContent": "", "variableTitle": "[]" }, // 审批行为 "sameMode": 0, // 相同处理人: 0=不跳过, 1=跳过, 2=草稿 "skipApproval": 0, // 0=不跳过, 1=跳过审批 "assigneeIsEmpty": 0, // 审批人为空时: 0=不跳过 "approvalEnabled": true, // 启用审批 "approvalMethod": "1", // 审批方式 // 节点功能开关 "formEditStatus": false, // 表单可编辑 "ccStatus": true, // 抄送 "selnextUserStatus": true, // 选择下一步处理人 "msgStatus": false, // 消息通知 "transferStatus": true, // 转办 "rejectStatus": true, // 驳回 "allowAddSign": true, // 加签 "allowCountersignAddUser": false, // 会签加人 // 会签配置 "isSequential": false, // 顺序/并行 "collection": "${flowUtil.stringToList(assigneeUserIdList)}", "elementVariable": "assigneeUserId", // 分支相关 "approveResultBranch": false, // 审批结果分支 "hasResultBranch": false, // 发起人节点标记 "applyUserNode": true, // 是否为发起人节点 // 超时配置 "timeType": "timeDate", "level": "1", // 更新记录(服务节点) "expressionType": "delegateExpression", "expressionValue": "${updateRecordDelegate}", "formTableCode": "table_name", "formTableSourceTaskId": "start", "formTableSourceNodeType": "table", "updateFields": "[...]" } ```