activities工作流入门笔记-004-入门API

activities工作流常用api。
一、基本操作

①.流程部署API

//方式一
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 获得一个部署构建器对象,用于加载流程定义文件(test1.bpmn,test.png)完成流程定义的部署
DeploymentBuilder builder = processEngine.getRepositoryService().createDeployment();
// 加载流程定义文件
builder.addClasspathResource("first.bpmn");
builder.addClasspathResource("first.png");
// 部署流程定义
Deployment deployment = builder.deploy();
//方式二
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
// 获得一个部署构建器对象
DeploymentBuilder builder = processEngine.getRepositoryService().createDeployment();
ZipInputStream zipInputStream = 
new ZipInputStream(this.getClass().getClassLoader().getResourceAsStream("process.zip"));
builder.addZipInputStream(zipInputStream);
Deployment deployment = deploymentBuilder.deploy();

②.查询流程定义列表

// 流程定义查询对象,用于查询表act_re_procdef
ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();

//processEngine.getRepositoryService().createDeploymentQuery().list(); 查询部署流程
//processEngine.getRuntimeService().createProcessInstanceQuery().list(); 
//processEngine.getTaskService().createTaskQuery().list();

// 添加过滤条件
query.processDefinitionKey("firstProc");
// 添加排序条件
query.orderByProcessDefinitionVersion().desc();
// 添加分页查询
query.listPage(0, 10);
List<ProcessDefinition> list = query.list();

③.根据流程定义的id启动一个流程实例

String processDefinitionId = "firstProc:4:304"; //流程定义Id
//根据流程定义id启动流程实例
ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceById(processDefinitionId);
//方式二
//根据流程定义的key启动流程--存在多版本时,启动最新版本的流程
//ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("key");
System.out.println(processInstance.getId());

④.查询任务列表

TaskQuery query = processEngine.getTaskService().createTaskQuery();
String assignee = "登陆人"; //查询登陆人的待办列表 
query.taskAssignee(assignee);
List<Task> list = query.list();

⑤.办理任务API

String taskId= "802";
processEngine.getTaskService().complete(taskId);

⑥.删除流程部署信息

String deploymentId = "deploymentId";
// processEngine.getRepositoryService().deleteDeployment(deploymentId);
processEngine.getRepositoryService().deleteDeployment(deploymentId,true);//会删除正在流转的流程信息
⑦.删除流程定义信息(通过删除部署信息达到删除流程定义的目的)
String deploymentId = "deploymentId";
// processEngine.getRepositoryService().deleteDeployment(deploymentId);
processEngine.getRepositoryService().deleteDeployment(deploymentId,true);//会删除正在流转的流程信息
⑧.查询一次部署对应的流程定义文件名称和对应的输入流(bpmn png)
String deploymentId = "101";
List<String> names = processEngine.getRepositoryService().getDeploymentResourceNames(deploymentId);
for (String name : names) {
	InputStream in = processEngine.getRepositoryService().getResourceAsStream(deploymentId, name);
	FileUtils.copyInputStreamToFile(in, new File("e:\\" + name));//需要用common-io.jar包
	in.close();
}

⑨.获取png图片的输入流

String processDefinitionId = "processDefinitionId";//流程定义的id
InputStream pngInputStream = processEngine.getRepositoryService().getProcessDiagram(processDefinitionId);
FileUtils.copyInputStreamToFile(pngInputStream, new File("d:\\name.png"));

⑩.查询流程实例列表,查询act_ru_execution表

ProcessInstanceQuery query = processEngine.getRuntimeService().createProcessInstanceQuery();
List<ProcessInstance> list = query.list();
//getActivityId流程活动的id,即流程当前在那个节点
for (ProcessInstance pi : list) {
	System.out.println(pi.getId() + " " + pi.getActivityId());
}
二、操作深入

①.结束流程实例,操作的表act_ru_execution act_ru_task

String processInstanceId = "101";
processEngine.getRuntimeService().deleteProcessInstance(processInstanceId , "我愿意");

②.办理任务

String taskId = "任务id";
processEngine.getTaskService().complete(taskId);
//直接将流程向下执行一步
//String executionId = "2701";//流程实例id
//processEngine.getRuntimeService().signal(executionId);

③.查询最新版本的流程定义列表

ProcessDefinitionQuery query = processEngine.getRepositoryService().createProcessDefinitionQuery();
query.orderByProcessDefinitionVersion().asc();
List<ProcessDefinition> list = query.list();

三、activities services的对应关系

RepositoryService----操作静态的资源(流程定义,bpmn、png)

RuntimeService-----操作流程实例(启动流程实例、查询流程实例、结束流程实例)

TaskService-----操作任务(查询任务、办理任务)

HistoryService----操作历史数据

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值