`

activiti工作流的整个生命流程

 
阅读更多

工作流的整体步骤:

(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();

 

(3)部署流程定义

(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工作流面试相关知识

    在面试中,对这些核心服务的理解展示了你对Activiti工作流引擎的深入认识,包括流程的生命周期管理、任务的执行和跟踪,以及数据分析能力。熟悉这些API的使用不仅有助于解决实际开发问题,还能提高你在团队中的价值...

    Activiti工作流之管理流程定义

    **标题:“Activiti工作流之管理流程定义”** 在企业级应用中,流程管理是至关重要的,Activiti作为一款开源的工作流引擎,被广泛应用在业务流程自动化中。本主题主要探讨如何利用Activiti来管理流程定义,即创建、...

    Activiti工作流详细讲解完整教程.pdf

    Activiti工作流框架是一款由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架。它以其灵活性、易用性和强大的扩展能力而闻名,在业务流程管理、工作流和服务协作等多个领域都有着广泛的应用。Activiti基于...

    Activiti工作流之流程实例、任务的执行

    【标题】"Activiti工作流之流程实例、任务的执行" 在企业级应用开发中,工作流管理系统(Workflow Management System, WfMS)扮演着重要角色,它负责自动化业务流程,确保任务按照预定义的规则有序进行。Activiti是...

    activiti工作流引擎

    Activiti工作流引擎是一款强大的、开源的企业级流程自动化平台,被广泛用于构建业务流程管理系统(BPM)。在本文中,我们将深入探讨Activiti的核心概念、如何在IntelliJ IDEA(简称IDEA)环境下进行开发,以及与...

    activiti工作流demo

    Activiti工作流是一个开源的工作流程管理系统,用于设计、部署和执行业务流程。它基于Java,兼容BPMN 2.0标准,使得企业能够轻松构建动态的、灵活的业务流程。这个"activiti工作流demo"是针对初学者或者开发者的一个...

    Activiti 学习笔记六:流程执行历史记录

    Activiti 是一个开源的工作流和业务自动化引擎,广泛应用于企业级应用中,提供流程定义、执行、监控等全面的功能。本学习笔记将聚焦于流程执行的历史记录,这是理解流程运行情况、追踪问题以及优化流程的关键。 一...

    Spring结合Activiti工作流

    Spring结合Activiti工作流是企业级应用开发中的一个重要实践,它允许开发者在应用程序中实现复杂的业务流程自动化。本文将深入探讨这一主题,介绍如何利用Spring框架集成Activiti工作流引擎,以及如何通过源码示例...

    activiti工作流引擎教程入门demo,新手参考.zip_BDJK_DEMO_activiti_工作流_工作流引擎

    Activiti工作流引擎是一款强大的开源工作流管理系统,适用于企业级应用。它基于Java技术,提供了丰富的API和图形化设计工具,使得开发者可以轻松地构建和部署业务流程。本教程是针对初学者的入门指南,旨在帮助新手...

    工作流activiti分享实例

    实现流程,让任务能够按拟定的流程自动的驱动下去,不再需要我们实现流程的驱动,记录流程的流转情况等等,提供流程生命周期的管理功能,Activiti就是一种工作流引擎。 工作流平台: 如果每一个系统(项目)都有...

    Activiti工作流使用手册

    总的来说,这份手册是理解和操作Activiti工作流系统的宝贵资源,它不仅提供了丰富的实践操作指导,还深入探讨了Activiti的技术原理,对于提升企业流程管理的效率和智能化水平具有重要意义。无论是开发人员还是流程...

    Activiti工作流的快速应用源码

    这个“Activiti工作流的快速应用源码”很可能是为了帮助开发者快速理解和应用Activiti到他们的项目中。下面,我们将深入探讨Activiti的核心概念、功能以及如何通过源码学习和使用它。 一、Activiti核心概念 1. 流程...

    activiti 工作流引擎源码

    Activiti 是一个开源的工作流引擎,它基于Java技术,提供了高度可扩展性和灵活性,使得企业级业务流程自动化变得简单易行。这个工作流引擎源码的包包含了 Activiti 的核心功能,供开发者深入理解其内部运行机制和...

    Activiti7(流程引擎)简单笔记,附带作者执行的Demo代码文件

    Activiti7是一款强大的开源工作流引擎,用于在Java应用程序中实现业务流程自动化。它基于模型驱动的架构,允许开发者通过BPMN 2.0标准来设计、部署和执行流程。这个“Activiti7(流程引擎)简单笔记”很可能是作者在...

    疯狂Workflow讲义 基于Activiti的工作流应用开发

    综上所述,《疯狂Workflow讲义:基于Activiti的工作流应用开发》是一份详尽的学习资源,适合对工作流技术感兴趣的开发者、系统架构师以及希望提升业务流程自动化水平的企业人员。通过深入学习,可以有效提升工作效率...

    Activiti工作流学习demo项目源码

    这个"Activiti工作流学习demo项目源码"是一个宝贵的资源,它将理论知识与实践相结合,帮助你快速上手Activiti,并掌握流程自动化的核心概念和技术。通过深入研究和实践,你将能够自如地利用Activiti解决企业的业务...

    activiti5.22 实现撤回操作

    Activiti 是一个开源的工作流引擎,它提供了丰富的 API 和模型定义语言(BPMN 2.0)来设计、部署和执行业务流程。在 Activiti 5.22 版本中,我们可能需要在某些情况下撤销已经启动的流程实例,比如当发现某个任务...

    activiti工作流开发

    Activiti工作流开发是企业级应用中不可或缺的一部分,它是一个轻量级、高效且灵活的业务流程管理系统。在本文中,我们将深入探讨如何利用Activiti与Spring、Spring MVC和Mybatis进行集成,构建一个功能完备的Web项目...

    spring 整合 activiti工作流 相关jar包

    将Spring与Activiti整合,可以充分利用Spring的强大功能来管理和驱动Activiti工作流,实现灵活、可扩展且易于维护的业务流程解决方案。 1. **Spring框架**:Spring是一个开源的Java平台,提供了全面的企业应用程序...

    Activiti流程图部署及流程图部分操作.pdf

    Activiti 是一个开源的工作流和业务自动化引擎,它支持企业级的业务流程管理(BPM)和业务规则管理(BRM)。在这个主题中,我们主要关注如何在Activiti中进行流程图的部署以及如何操作流程图。 流程图的部署是...

Global site tag (gtag.js) - Google Analytics