Skip to content

流程定义 JSON 格式

流程定义使用 LogicFlow 兼容的 JSON 格式(语言无关,四语言引擎共享同一套定义文件)。

顶层结构

json
{
  "name": "leave",
  "displayName": "请假审批",
  "type": "approval",
  "instanceUrl": "/form/leave",
  "nodes": [ ... ],
  "edges": [ ... ]
}
字段必填说明
name唯一编码
displayName显示名称
type流程分类
instanceUrl发起表单地址
nodes节点列表
edges边列表

节点类型

类型说明
snaker:start开始节点(每个流程有且只有一个)
snaker:end结束节点(单一结束)
snaker:task审批节点(普通参与 / 会签)
snaker:decision决策节点(按边表达式路由)
snaker:fork / snaker:join并行分支 / 合并
snaker:custom自定义节点

任务节点属性

属性说明
assignee参与者(逗号分隔);特殊值 "applicant" = 流程发起人
performType0 普通参与 / 1 会签
countersignTypePARALLEL / SEQUENTIAL / RATIO(0.5)
countersignCompletionCondition会签放行表达式(如 #nrOfCompletedInstances>=2
form表单标识
taskType0 主办 / 1 协办

约定:每个流程的第一个任务节点是"发起申请"节点(assignee="applicant"),这是 startAndExecute 契约和"退回发起人"闭环的基础。完整属性表见 规范 02 · 流程定义格式

json
{
  "id": "e3",
  "sourceNodeId": "decision1",
  "targetNodeId": "task2",
  "properties": { "expr": "amount > 1000" },
  "text": { "value": "金额>1000" }
}
  • 决策分支:表达式在 properties.expr,分支标签在 text.value
  • expr 的边为默认分支

Python 加载

python
import json
from jeeflow.model import parse_flow_model

flow = parse_flow_model(json.loads(content))   # 过滤未知字段,生成引擎模型

演示站从 jeeflow-java 仓库的共享流程 JSON(test/resources/flows/,10 个)加载。完整示例与字段说明见通用指南 02 · 流程定义

jeeflow · 轻量级多语言工作流引擎