Skip to content

节点类型总览

8 类 BPM 扩展节点 + RuleGo 原生节点库。节点在 metadata.nodes 中声明,connections 描述流转边。

BPM 扩展节点

type名称核心配置说明
startTask发起节点流程起点,设计器自动生成(节点 id 固定 gflow_start
userTask审批任务candidateType / candidateConfigapprovalTypeapprovalRuleselfApprovalTyperejectStrategy七种审批方式(单人/或签/会签/依次/票签等,详见审批语义)、候选人(人员/角色/部门/主管)、字段与动作权限
ccTask抄送nodeAssigneeListselfSelect生成抄送记录并回调,不阻塞流程
serviceTask服务任务functionNameparam调用 Go 函数(经 components.Services.Register 注册)
automation自动化targetId非阻塞触发 RuleGo 自动化规则链(flow 为旧版别名)
subProcess子流程targetIdextend启动独立子流程实例,结束后回到主流程
aiAgentAI 智能体agentIdinputAssemblyoutputRoutingoutputMappings调用智能体规则链并路由输出,详见 AI 审批
httpCallHTTP 调用urlmethodbodyoutputMappings同步调外部接口,响应按映射合并进流程变量

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 / levelsinitiator_select 场景下 selected 支持 ${msg.xxx} 从流程变量解析
  • approvalType + approvalRule:审批方式与会签规则,详见审批语义
  • selfApprovalType:自审(「我是发起人又是审批人」)策略——allow / skip / delegate_to_manager(主管→部门主管→变量兜底)/ delegate_to_department_manager
  • rejectStrategy:驳回策略——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 规范

rulego-bpm 基于 Apache-2.0 许可开源 · gflow 商业授权