Activiti演示PPT

  • 格式:pptx
  • 大小:597.67 KB
  • 文档页数:84

下载文档原格式

  / 84
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

/**查询当前人的个人任务*/ @Test public void findMyPersonalTask(){ String assignee = “张三"; List<Task> list = processEngine.getTaskService()//与正在执行的任务管理相关的 Service .createTaskQuery()//创建任务查询对象 .taskAssignee(assignee)//指定个人任务查询,指定办理人 .list(); if(list!=null && list.size()>0){ for(Task task:list){ System.out.println("任务ID:"+task.getId()); System.out.println("任务名称:"+task.getName()); System.out.println("任务的创建时间:"+task.getCreateTime()); System.out.println("任务的办理人:"+task.getAssignee()); System.out.println("流程实例ID:"+task.getProcessInstanceId()); System.out.println("执行对象ID:"+task.getExecutionId()); System.out.println("流程定义ID:"+task.getProcessDefinitionId()); System.out.println("############################################"); } } }
第三节 Activiti5 入门篇
在完成开发环境配置工作后,我们可以新建一个JAVA工 程,进行我们关于Activiti的第一个HelloWorld的程序开发。开 发步骤如下: 1、创建工程项目(演示项目采用Maven项目结构) 2、在resources文件夹下,创建activiti.cfg.xml文件,并编 写配置信息;创建用来存放activiti配置文件的diagrams文件夹。 3、新建Activiti Diagram文件,创建以HelloWorld命名的 bpmn文件。以Activiti Diagram Editor格式打开后可进行流程设 置器编辑,在拖放相关组件并配置好相关属性后,进行保存。 会自动生成一个以HelloWorld.png命名的图像文件,打开后可 以发现它保存到就是我们刚才设计的流程的图像。我们每次对 bpmn文件进行修改保存后,该图像文件都会相应的重新生成。 5、创建JAVA文件,进行功能开发
public class HelloWorld { /**获得流程引擎*/ ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**部署流程定义*/ @Test public void deploymentProcessDefinition(){ Deployment deployment = processEngine.getRepositoryService()//与流程定 义和部署对象相关的Service .createDeployment()//创建一个部署对象 .name("helloworld入门程序")//添加部署的名称 .addClasspathResource("diagrams/helloworld.bpmn")//从classpath的资源中 加载,一次只能加载一个文件 .addClasspathResource("diagrams/helloworld.png")//从classpath的资源中加 载,一次只能加载一个文件 .deploy();//完成部署 System.out.println("部署ID:"+deployment.getId());//helloworld System.out.println("部署名称: "+deployment.getName());//helloworldProcess }
引擎的API是调用Activiti最常见的一种方法。我们一开始 最关注的中心是ProcessEngine流程引擎,它可以被多种方式创 建。从这个流程引擎里面,能获得各个包含workflow/BPM方法 的服务。 RepositoryService : 管理和控制发布包和流程定义(包含 了一个流程每个环节的结构和行为)的操作。 RuntimeService :负责启动一个流程定义的新实例,获取和 保存流程变量,查询流程实例和执行。 TaskService :所有与任务有关的功能,查询分配给用户或 组的任务,创建独立运行任务。 IdentityService: 管理(创建,更新,删除,查询...)群 组和用户 FormService: 一个可选服务,这个服务提供了启动表单和 任务表单两个概念
HistoryService: 提供了Activiti引擎的所有历史数据 ManagementService :在使用Activiti的定制环境中基本上 不会用到。 它可以查询数据库的表和表的元数据。另外,它提 供了查询和管理异步操作的功能。
1、 activiti5 支持JDK1.6或者更高版本 2、 activiti5支持的数据库有:H2, MySql, Oracle, Postgres, MSSql, DB2等。在演示中使用MySql数据库,在开发之前,需要 创建activiti相关联的数据表,可选择执行相关的activit.*.sql文 件,或在activiti.cfg.xml配置文件中设置自动创建相关数据表。 3、下载支持activiti5运行的相关jar包。下载地址为: http://activiti.org/download.html 4、开发工具为Eclipse3.7或者以上版本,myeclipse为8.6版 本或以上版本,需要下载activit流程设计器插件。插件地址为: http://activiti.org/designer/update/ 完成以上准备后,即可进行activiti相关工程开发。
Activiti的后台是有数据库的支持,所有的表都以ACT_开 头。 第二部分是表示表的用途的两个字母标识。 用途也和服 务的API对应。 ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流 程定义和流程静态资源 (图片,规则,等等)。 ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流 程实例,任务,变量,异步任务,等运行中的数据。 Activiti只 在流程实例执行过程中保存这些数据, 在流程结束时就会删除 这些记录。 这样运行时表可以一直很小速度很快。 ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如 用户,组等等。 ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如 历史流程实例, 变量,任务等等。 ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文 件。
1、Leabharlann Baidu高系统的柔性,适应业务流程的变化
2、实现更好的业务过程控制,提高顾客服务质量
3、降低系统开发和维护成本
Activiti、JBPM、Shark、OSWorkflow、ActiveBPEL、YAWL
等。在本稿中我们将主要讲解Activiti的功能设计及开发。
第二节 Activiti5 Work Flow 介绍
工作流管理系统(Workflow Management System, WfMS) 是一个软件系统,它完成工作量的定义和管理,并按照在系统 中预先定义好的工作流规则进行工作流实例的执行。工作流管 理系统不是企业的业务系统,而是为企业的业务系统的运行提 供了一个软件的支撑环境。 工作流管理联盟(WfMC,Workflow Management Coalition)给出的关于工作流管理系统的定义是:工作流管理系 统是一个软件系统,它通过执行经过计算的流程定义去支持一 批专门设定的业务流程。工作流管理系统被用来定义、管理、 和执行工作流程。 1、定义工作流:包括具体的活动、规则等。 2、执行工作流:按照流程定义的规则执行,并由多个参与者 进行控制
/**启动流程实例*/ @Test public void startProcessInstance(){ //流程定义的key String processDefinitionKey = "helloworld"; ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执 行对象相关的Service .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例, key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本 的流程定义启动 System.out.println("流程实例ID:"+pi.getId());//流程实例ID 101 System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID helloworld:1:4 }
第一节
什么是 Work Flow
工作流(Workflow),就是“业务过程的部分或整体 在计算机应用环境下的自动化”,它主要解决的是“使在多 个参与者之间按照某种预定义的规则传递文档、信息或任务 的过程自动进行,从而实现某个预期的业务目标,或者促使 此目标的实现” 。 通俗的说,流程就是多个人在一起合作完成某件事情 的步骤,把步骤变成计算机能理解的形式就是工作流。
演示讲稿
主讲:王老师
演示内容列表说明(共5个)
1、什么是Work Flow? 2、Activiti5 Work Flow 介绍及开发环境配置 3、 Activiti5 入门篇-Hello World DEMO演示与说明 4、 Activiti5 基础篇- 流程组件简述及参数传递 5、与Spring 容器整合配置 6、附录: Activiti5数据库表详细说明
/**完成我的任务*/ @Test public void completeMyPersonalTask(){
//任务ID String taskId = "302"; processEngine.getTaskService()//与正在执行的任务管理相关的Service .complete(taskId); System.out.println("完成任务:任务ID:"+taskId);
Activiti5是一个针对企业用户、开发人员、系统管理 员的轻量级工作流业务管理平台,其核心是使用Java开发的 快速、稳定的BPMN2.0流程引擎。Activiti是在ApacheV2许可 下发布的,可以运行在任何类型的Java程序中,例如服务器、 集群、云服务等。Activiti可以完美地与Spring集成。同时, 基于简约思想的设计使得Activiti成为一个非常轻量级框架。 它特色是提供了eclipse插件,开发人员可以通过插件直接绘 画出业务流程图。
}
通过上面流程图绘制和JAVA代码部分,我们可以很清晰的 发现要想开发一个activiti工作流系统,首先要做的是获得它的流 程引擎,然后通过流程引擎来获得它的各种服务API。具体操作过 程如下: 1、获得流程引擎 ProcessEngine。 2、部署流程。通过processEngine来获得流程定义的 RuntimeService ,来创建流程部署对象,并把流程资源文件部署进 入数据库。 3、启动流程。完成流程部署后,我们通过流程实例的Key 值调用RuntimeService.startProcessInstanceByKey(processInstanceKey) 方法来启动流程。 4、查询任务。流程启动后,通过任务服务TaskService可以 根据任务节点的Assignee属性值来查询当前任务的的执行人是谁。
在上面的流程编辑器中,我们设计的工作流程使用了4 种组件,一种是开始事件StartEvent,一种是结束事件 EndEvent,第三种是用户任务UserTask,第4种就是流程线 Sequence Flow。具体的各组件说明,我们将在第四节中提到, 其中重点的组件是UserTask,以及ServiceTask。点击流程图空 白处,可以查看流程图属性,点击流程组件节点,可以查看组 件节点属性。