工作流的整体步骤:
(1)创建工作流引擎
(2)获得activiti相关的任务:引擎API是与Activiti交互最常用的方式。主要的出发点是ProcessEngine,由ProcessEngine,可以获取到含有工作流/BPM方法的不同服务。ProcessEngine以及那些服务对象都是线程安全的。
代码:
1
2
3
4
5
6
7
8
|
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); RuntimeService runtimeService = processEngine.getRuntimeService(); RepositoryService repositoryService = processEngine.getRepositoryService(); TaskService taskService = processEngine.getTaskService(); ManagementService managementService = processEngine.getManagementService(); IdentityService identityService = processEngine.getIdentityService(); HistoryService historyService = processEngine.getHistoryService(); FormService formService = processEngine.getFormService(); |
(4)获得与自己相关的某些任务
(5)声明某个任务:
1
|
taskService.claim(task.getId(), "fozzie" );
|
(6)完成某个任务
1
2
3
|
public class TenMinuteTutorial {
public static void main(String[] args) {
|
1
2
3
4
5
|
(创建activiti工作引擎) // Create Activiti process engine
ProcessEngine processEngine = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration()
.buildProcessEngine();
|
1
2
3
4
|
( 2 )获得activiti相关服务
// Get Activiti services
RepositoryService repositoryService = processEngine.getRepositoryService();
RuntimeService runtimeService = processEngine.getRuntimeService();
|
1
2
3
4
5
|
( 3 )部署流程定义
// Deploy the process definition
repositoryService.createDeployment()
.addClasspathResource( "FinancialReportProcess.bpmn20.xml" )
.deploy();
|
1
2
3
|
( 4 )开启一个流程实例
// Start a process instance
String procId = runtimeService.startProcessInstanceByKey( "financialReport" ).getId();
|
1
|
( 5 )获得与自己相关的某些任务
|
1
2
3
4
5
|
// Get the first task TaskService taskService = processEngine.getTaskService();
List<Task> tasks = taskService.createTaskQuery().taskCandidateGroup( "accountancy" ).list();
for (Task task : tasks) {
System.out.println( "Following task is available for accountancy group: " + task.getName());
|
1
2
3
4
5
6
7
8
|
( 6 )声明某个任务 // claim it
taskService.claim(task.getId(), "fozzie" );
}
// Verify Fozzie can now retrieve the task
tasks = taskService.createTaskQuery().taskAssignee( "fozzie" ).list();
for (Task task : tasks) {
System.out.println( "Task for fozzie: " + task.getName());
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
|
( 7 )完成某个任务
// Complete the task
taskService.complete(task.getId());
}
System.out.println( "Number of tasks for fozzie: " + taskService.createTaskQuery().taskAssignee( "fozzie" ).count());
// Retrieve and claim the second task
tasks = taskService.createTaskQuery().taskCandidateGroup( "management" ).list();
for (Task task : tasks) {
System.out.println( "Following task is available for accountancy group: " + task.getName());
taskService.claim(task.getId(), "kermit" );
}
// Completing the second task ends the process
for (Task task : tasks) {
taskService.complete(task.getId());
}
// verify that the process is actually finished
HistoryService historyService = processEngine.getHistoryService();
HistoricProcessInstance historicProcessInstance =
historyService.createHistoricProcessInstanceQuery().processInstanceId(procId).singleResult();
System.out.println( "Process instance end time: " + historicProcessInstance.getEndTime());
}
} |
相关推荐
activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细介绍activiti 工作流23张表详细...
activiti工作流文档,超详细,从0基础开始入门,包括数据库介绍、核心api等介绍,满足日常开发所需
Activiti流程跟踪监控图路径线和节点高亮显示,本实例提供了两种方式,都可以生成png图片。
Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程Activiti工作流课程
Activiti工作流整合Web流程设计器,Activiti工作流整合Web流程设计器
Activiti 工作流面试相关知识 RepositoryService、RuntimeService、TaskService、HistoryService分别表示什么操作
Activiti的Web流程图设计器,BPMN-JS也可在官网下载并配置,这里压缩包是配置好的 1、需要提前下载好Node.js(中文官网连接:http://nodejs.cn/),傻瓜式安装。 2、解压后在bpmnjs目录打开dos命令窗口,输入npm ...
Activiti工作流课程Activiti工作流课程Activiti工作流课程
Activiti工作流使用手册_acticiti工作流操作手册文档V1.1操作教程手册 解决java开发使用Activiti遇到的问题和使用组件的讲解
activiti工作流的 PPT 大致讲了一下activiti的常用API
这个是Activiti开发的请假流程实例,可以作为用Activiti开发工作流的参考;项目采用spring+hibernate+strus2+activity开发,可以运行;数据库采用oracle,其中 QingJia 和 QingJiaHis 是自己的业务表,分别表示 请假...
activiti工作流课程
Activiti工作流示例ActivitiDemo 本示例带有全部源码,详细使用Canvas动画演示了Activiti工作流引擎的使用。非常实用,非常先进和完整。希望您会喜欢。
Activiti工作流示例ActivitiDemo 本示例带有全部源码,详细使用Canvas动画演示了Activiti工作流引擎的使用.
Activiti工作流详细讲解完整教程.pdf
基于前后端分离项目引入activiti工作流引擎,某些配置信息需根据自己项目情况修改
easyui实现的Activiti工作流引擎web版流程设计器 跨浏览器流程设计器 打开文件 processDesigner\wf\designer\index.html
这是一个简单的activiti工作流例子,是你快速学习掌握activiti工作流的使用,不必过多的看太多理论知识
Activiti工作流引擎简介 1.俯瞰Activiti 2.Activiti开发之旅 3.Why Activiti? 4.Activiti的现状与未来
activiti 工作流 activiti演示 流程图 OA系统核心 bpm