流程引擎API
流程引擎作为所有服务的入口,提供获取服务的方法,同时也提供最常用的api。
org.snaker.engine.SnakerEngine
获取定义服务
获取实例服务
获取任务服务
获取查询服务
获取管理服务
启动流程
执行任务
驳回、任意跳转任务
创建自由任务
获取定义服务
engine.process();
获取实例服务
engine.order();
获取任务服务
engine.task();
获取查询服务
engine.query();
获取管理服务
engine.manager();
启动流程
流程实例由引擎API的startInstance......
方法完成,方法的参数一般为流程定义的id或者是name、version。
根据流程定义id启动实例
engine.startInstanceById(String id);
engine.startInstanceById(String id, String operator);
engine.startInstanceById(String id, String operator, Map<String, Object> args);
根据流程定义name、version启动实例
engine.startInstanceByName(String name);
engine.startInstanceByName(String name, Integer version);
engine.startInstanceByName(String name, Integer version, String operator);
engine.startInstanceByName(String name, Integer version, String operator, Map<String, Object> args);
启动实例方法会返回一个Order对象,并且能够根据模型创建相应的任务Task
执行任务
执行任务由引擎API的executeTask......
方法完成,方法的参数一般为任务的id,操作人operator,变量数据args。
engine.executeTask(String taskId);
engine.executeTask(String taskId, String operator);
engine.executeTask(String taskId, String operator, Map<String, Object> args);
执行任务方法会返回一个Task集合,并且能够根据模型创建下一步任务Task
驳回、任意跳转任务
任务驳回有两种场景:驳回至上一步;驳回至任意节点。
engine.executeAndJumpTask(String taskId, String operator, Map<String, Object> args, String nodeName);
方法的参数nodeName决定驳回的方式:
nodeName
为空时,则驳回至上一步,不需要传递参与者数据nodeName
不为空,则表示任意跳转,此时需要传递参与者数据。
创建自由任务
engine.createFreeTask(String orderId, String operator, Map<String, Object> args, TaskModel model);
创建自由任务时,需要新建任务模型对象TaskModel,再根据此模型创建对应的任务数据。