Skip to content

引擎 API

JeeflowEngine

工作流引擎的核心接口,所有流程操作都通过它完成。

配置

java
JeeflowEngine engine = new JeeflowEngineImpl();
engine.configure(new Configuration());

方法

startProcessInstanceById

启动一个流程实例。

java
ProcessInstance startProcessInstanceById(
    Long defineId,           // 流程定义 ID
    String operator,          // 发起人
    FlowData args             // 启动参数(业务编号、表单数据等)
);

// 子流程版本
ProcessInstance startProcessInstanceById(
    Long defineId,
    String operator,
    FlowData args,
    Long parentId,            // 父流程实例 ID
    String parentNodeName     // 父流程节点名称
);

示例:

java
FlowData args = FlowData.create()
    .set(FlowConst.BUSINESS_NO, "BIZ-001")
    .set("amount", 5000)           // 表单字段
    .set(FlowConst.CC_ACTORS_START, "user5,user6");  // 启动时抄送

ProcessInstance pi = engine.startProcessInstanceById(1L, "user1", args);
System.out.println("实例 ID: " + pi.getInstanceId());

executeProcessTask

执行(审批)一个待办任务。

java
List<ProcessTask> executeProcessTask(
    Long processTaskId,      // 任务 ID
    String operator,          // 操作人
    FlowData args             // 提交参数
);

示例:

java
FlowData args = FlowData.create()
    .set(FlowConst.SUBMIT_TYPE, ProcessSubmitTypeEnum.AGREE.getCode())  // 1=同意
    .set(FlowConst.APPROVAL_COMMENT, "同意报销");

List<ProcessTask> next = engine.executeProcessTask(taskId, "leader", args);

executeAndJumpTask

执行任务并跳转到指定节点。

java
List<ProcessTask> executeAndJumpTask(
    Long processTaskId,
    String operator,
    FlowData args,
    String nodeName           // 目标节点名称,null=退回上一步
);

executeAndJumpToEnd

执行任务并跳转到结束节点(拒绝)。

java
List<ProcessTask> executeAndJumpToEnd(
    Long processTaskId,
    String operator,
    FlowData args
);

executeAndJumpToFirstTaskNode

执行任务并跳转到第一个任务节点(退回发起人)。

java
List<ProcessTask> executeAndJumpToFirstTaskNode(
    Long processTaskId,
    String operator,
    FlowData args
);

FlowData

流程数据载体,替代 Hutool Dict。

java
FlowData args = FlowData.create()
    .set("name", "张三")
    .set("age", 30)
    .set("active", true);

String name = args.getStr("name");       // "张三"
Integer age = args.getInt("age");        // 30
Boolean active = args.getBool("active"); // true

FlowData copy = args.copy();  // 深拷贝

FlowConst

常用常量。

常量说明
BUSINESS_NO"BUSINESS_NO"业务编号
SUBMIT_TYPE"submitType"提交类型
APPROVAL_COMMENT"tf_approvalComment"审批意见
NEXT_NODE_OPERATOR"tf_nextNodeOperator"下一节点执行人
FORM_DATA_PREFIX"f_"表单数据前缀
PROCESS_DEFINE_ID_KEY"processDefineId"流程定义 ID
PROCESS_TASK_ID_KEY"processTaskId"流程任务 ID

ProcessSubmitTypeEnum

枚举说明
APPLY0发起申请
AGREE1同意
REJECT2拒绝
ROLLBACK3退回上一步
JUMP4跳转
ROLLBACK_TO_OPERATOR6退回发起人
COUNTERSIGN_DISAGREE20会签不同意

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