工作流的整体步骤:
(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工作流引擎的深入认识,包括流程的生命周期管理、任务的执行和跟踪,以及数据分析能力。熟悉这些API的使用不仅有助于解决实际开发问题,还能提高你在团队中的价值...
**标题:“Activiti工作流之管理流程定义”** 在企业级应用中,流程管理是至关重要的,Activiti作为一款开源的工作流引擎,被广泛应用在业务流程自动化中。本主题主要探讨如何利用Activiti来管理流程定义,即创建、...
Activiti工作流框架是一款由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架。它以其灵活性、易用性和强大的扩展能力而闻名,在业务流程管理、工作流和服务协作等多个领域都有着广泛的应用。Activiti基于...
【标题】"Activiti工作流之流程实例、任务的执行" 在企业级应用开发中,工作流管理系统(Workflow Management System, WfMS)扮演着重要角色,它负责自动化业务流程,确保任务按照预定义的规则有序进行。Activiti是...
Activiti工作流引擎是一款强大的、开源的企业级流程自动化平台,被广泛用于构建业务流程管理系统(BPM)。在本文中,我们将深入探讨Activiti的核心概念、如何在IntelliJ IDEA(简称IDEA)环境下进行开发,以及与...
Activiti工作流是一个开源的工作流程管理系统,用于设计、部署和执行业务流程。它基于Java,兼容BPMN 2.0标准,使得企业能够轻松构建动态的、灵活的业务流程。这个"activiti工作流demo"是针对初学者或者开发者的一个...
Activiti 是一个开源的工作流和业务自动化引擎,广泛应用于企业级应用中,提供流程定义、执行、监控等全面的功能。本学习笔记将聚焦于流程执行的历史记录,这是理解流程运行情况、追踪问题以及优化流程的关键。 一...
Spring结合Activiti工作流是企业级应用开发中的一个重要实践,它允许开发者在应用程序中实现复杂的业务流程自动化。本文将深入探讨这一主题,介绍如何利用Spring框架集成Activiti工作流引擎,以及如何通过源码示例...
Activiti工作流引擎是一款强大的开源工作流管理系统,适用于企业级应用。它基于Java技术,提供了丰富的API和图形化设计工具,使得开发者可以轻松地构建和部署业务流程。本教程是针对初学者的入门指南,旨在帮助新手...
实现流程,让任务能够按拟定的流程自动的驱动下去,不再需要我们实现流程的驱动,记录流程的流转情况等等,提供流程生命周期的管理功能,Activiti就是一种工作流引擎。 工作流平台: 如果每一个系统(项目)都有...
总的来说,这份手册是理解和操作Activiti工作流系统的宝贵资源,它不仅提供了丰富的实践操作指导,还深入探讨了Activiti的技术原理,对于提升企业流程管理的效率和智能化水平具有重要意义。无论是开发人员还是流程...
这个“Activiti工作流的快速应用源码”很可能是为了帮助开发者快速理解和应用Activiti到他们的项目中。下面,我们将深入探讨Activiti的核心概念、功能以及如何通过源码学习和使用它。 一、Activiti核心概念 1. 流程...
Activiti 是一个开源的工作流引擎,它基于Java技术,提供了高度可扩展性和灵活性,使得企业级业务流程自动化变得简单易行。这个工作流引擎源码的包包含了 Activiti 的核心功能,供开发者深入理解其内部运行机制和...
Activiti7是一款强大的开源工作流引擎,用于在Java应用程序中实现业务流程自动化。它基于模型驱动的架构,允许开发者通过BPMN 2.0标准来设计、部署和执行流程。这个“Activiti7(流程引擎)简单笔记”很可能是作者在...
综上所述,《疯狂Workflow讲义:基于Activiti的工作流应用开发》是一份详尽的学习资源,适合对工作流技术感兴趣的开发者、系统架构师以及希望提升业务流程自动化水平的企业人员。通过深入学习,可以有效提升工作效率...
这个"Activiti工作流学习demo项目源码"是一个宝贵的资源,它将理论知识与实践相结合,帮助你快速上手Activiti,并掌握流程自动化的核心概念和技术。通过深入研究和实践,你将能够自如地利用Activiti解决企业的业务...
Activiti 是一个开源的工作流引擎,它提供了丰富的 API 和模型定义语言(BPMN 2.0)来设计、部署和执行业务流程。在 Activiti 5.22 版本中,我们可能需要在某些情况下撤销已经启动的流程实例,比如当发现某个任务...
Activiti工作流开发是企业级应用中不可或缺的一部分,它是一个轻量级、高效且灵活的业务流程管理系统。在本文中,我们将深入探讨如何利用Activiti与Spring、Spring MVC和Mybatis进行集成,构建一个功能完备的Web项目...
将Spring与Activiti整合,可以充分利用Spring的强大功能来管理和驱动Activiti工作流,实现灵活、可扩展且易于维护的业务流程解决方案。 1. **Spring框架**:Spring是一个开源的Java平台,提供了全面的企业应用程序...
Activiti 是一个开源的工作流和业务自动化引擎,它支持企业级的业务流程管理(BPM)和业务规则管理(BRM)。在这个主题中,我们主要关注如何在Activiti中进行流程图的部署以及如何操作流程图。 流程图的部署是...