节点类型总览
8 类 BPM 扩展节点 + RuleGo 原生节点库。节点在 metadata.nodes 中声明,connections 描述流转边。
BPM 扩展节点
| type | 名称 | 核心配置 | 说明 |
|---|---|---|---|
startTask | 发起节点 | — | 流程起点,设计器自动生成(节点 id 固定 gflow_start) |
userTask | 审批任务 | candidateType / candidateConfig、approvalType、approvalRule、selfApprovalType、rejectStrategy | 七种审批方式(单人/或签/会签/依次/票签等,详见审批语义)、候选人(人员/角色/部门/主管)、字段与动作权限 |
ccTask | 抄送 | nodeAssigneeList、selfSelect | 生成抄送记录并回调,不阻塞流程 |
serviceTask | 服务任务 | functionName、param | 调用 Go 函数(经 components.Services.Register 注册) |
automation | 自动化 | targetId | 非阻塞触发 RuleGo 自动化规则链(flow 为旧版别名) |
subProcess | 子流程 | targetId、extend | 启动独立子流程实例,结束后回到主流程 |
aiAgent | AI 智能体 | agentId、inputAssembly、outputRouting、outputMappings | 调用智能体规则链并路由输出,详见 AI 审批 |
httpCall | HTTP 调用 | url、method、body、outputMappings | 同步调外部接口,响应按映射合并进流程变量 |
RuleGo 原生节点(直接可用)
| type | 用途 |
|---|---|
switch | 条件网关:cases 用 EL 表达式(如 msg.days <= 3)自上而下匹配,命中即走对应分支,全不命中走 Default 出边——gflow 设计器「条件分支」的实际产物 |
jsSwitch | 条件网关:对 msg 求值返回分支名数组(脚本更灵活,gflow 设计器不产出) |
fork | 并行分支:多路同时执行 |
join | 汇聚:等待分支全部/部分完成后继续 |
inclusive | 包容分支:按条件激活部分分支(0..n 路) |
delay | 延迟等待:流程挂起指定时长后继续 |
end | 结束节点 |
每条流程 DSL 必须有可达的
end节点,否则实例永不完结。设计器与后端部署都会自动补全 end。
userTask 配置详解
引擎读取的核心字段:
json
{
"id": "node_manager_approval",
"type": "userTask",
"name": "经理审批",
"configuration": {
"candidateType": "user",
"candidateConfig": { "userIds": ["480356539643727872"] },
"approvalType": "single",
"selfApprovalType": "allow",
"rejectStrategy": "rejectToStarter"
},
"additionalInfo": {
"actionPermissions": { "transfer": true, "return": true, "addSign": true, "urge": true },
"formPermissions": { "field1": "r", "field2": "w", "field3": "h" }
}
}candidateType:候选人类型——user指定成员 /role角色 /dept部门 /direct_manager直属主管 /multi_level_manager多级主管 /initiator_select发起人自选 /initiator_self发起人本人candidateConfig:按类型取userIds/roleIds/levels;initiator_select场景下selected支持${msg.xxx}从流程变量解析approvalType+approvalRule:审批方式与会签规则,详见审批语义selfApprovalType:自审(「我是发起人又是审批人」)策略——allow/skip/delegate_to_manager(主管→部门主管→变量兜底)/delegate_to_department_managerrejectStrategy:驳回策略——terminate终止 /rejectToStarter回发起人 /rejectToPrev上一节点 /rejectToNode指定节点(配合rejectTargetNode)- gflow 设计器保存时会同时写入
setType/nodeAssigneeList/examineMode等前端字段,引擎只读上述字段,二者并存互不干扰
连线与分支
json
{ "fromId": "node_s1", "toId": "node_manager_approval", "type": "manager_approval" }switch/jsSwitch之后:type= 命中的分支名- 审批/服务节点之后:
Success/Failure(通过/拒绝两条出路;userTask 拒绝时优先走rejectStrategy,跳转失败才落到Failure出边) - 分支汇合处用
join节点
更多见流程 DSL 规范。