`
Asen丶
  • 浏览: 40585 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

Activiti工作流(一)之基本操作介绍

 
阅读更多

工作流的概念:

       工作流(Workflow),就是“业务过程的部分或整体在计算机应用环境下的自动化”,它主要解决的是“使在多个参与者之间按照某种预定义的规则传递文档、信息或任务的过程自动进行,从而实现某个预期的业务目标,或者促使此目标的实现”。通俗的说,流程就是多个人在一起合作完成某件事情的步骤,把步骤变成计算机能理解的形式就是工作流。

常见的工作流引擎有:OSWorkFlow、jbpm、activiti(对jbpm的升级)

 

如果在一个项目中我们需要引入工作流的话,首先需要引入相关jar包,然后获得一个工作流引擎,而获得这个工作流引擎的方式有三种:

       1、通过代码方式获得:

        @Test
	public void getProcessEngine1(){
		ProcessEngineConfiguration engineConfiguratoin = ProcessEngineConfiguration
				.createStandaloneProcessEngineConfiguration();
		
		engineConfiguration.setJdbcDriver("com.mysql.jdbc.Driver");
		engineConfiguration
		.setJdbcUrl("jdbc:mysql://10.10.10.30:3306/activitiDB?createDatabaseIfNotExist=true"
				+ "&useUnicode=true&characterEncoding=utf8");
		engineConfiguration.setJdbcUsername("root");
		engineConfiguration.setJdbcPassword("aaaaaaaaa");
		
		engineConfiguration.setDatabaseSchemaUpdate("true");
		ProcessEngine buildProcessEngine = engineConfiguration.buildProcessEngine();
	}

       2、通过加载指定的xml文件获取:

 

<beans xmlns="http://www.springframework.org/schema/beans"
	xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
	<property name="jdbcDriver" value="com.mysql.jdbc.Driver"></property>
	<property name="jdbcUrl" value="jdbc:mysql://10.10.10.30:3306/activitiDB?createDatabaseIfNotExist=true&amp;useUnicode=true&amp;characterEncoding=utf8"></property>
	<property name="jdbcUsername" value="root"></property>
	<property name="jdbcPassword" value="aaaaaaaa"></property>
	
	<property name="databaseSchemaUpdate" value="true"></property>
</bean>

</beans>

 

        @Test
	public void getProcessEngine2(){
		ProcessEngineConfiguration engineConfiguration = 
				ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml");
		
		ProcessEngine processEngine = engineConfiguration.buildProcessEngine();
	}

        3、通过加载默认的xml文件获取,默认xml文件名称为activiti.cfg.xml

 

 

        @Test
	public void getProcessengine3(){
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
	}

 当获得了工作流引擎之后,会创建一个数据库,数据库中有默认的23张表

资源库流程规则表
1)	act_re_deployment 	部署信息表
2)	act_re_model  		流程设计模型部署表
3)	act_re_procdef  	流程定义数据表
运行时数据库表
1)	act_ru_execution	运行时流程执行实例表
2)	act_ru_identitylink	运行时流程人员表,主要存储任务节点与参与者的相关信息
3)	act_ru_task		运行时任务节点表
4)	act_ru_variable		运行时流程变量数据表
历史数据库表
1)	act_hi_actinst 		历史节点表
2)	act_hi_attachment	历史附件表
3)	act_hi_comment		历史意见表
4)	act_hi_identitylink	历史流程人员表
5)	act_hi_detail		历史详情表,提供历史变量的查询
6)	act_hi_procinst		历史流程实例表
7)	act_hi_taskinst		历史任务实例表
8)	act_hi_varinst		历史变量表
组织机构表
1)	act_id_group		用户组信息表
2)	act_id_info		用户扩展信息表
3)	act_id_membership	用户与用户组对应信息表
4)	act_id_user		用户信息表
这四张表很常见,基本的组织机构管理,关于用户认证方面建议还是自己开发一套,组件自带的功能太简单,使用中有很多需求难以满足 
通用数据表
1)	act_ge_bytearray	二进制数据表
2)	act_ge_property		属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录
还有两张表不怎么常用
1)      act_ru_event_subscr
2)      act_ru_job

 

 接下来就是activiti的核心API部分

 

 这些service可以由ProcessEngine获得,且这些service都有着各自的任务

RepositoryService 管理流程定义
RuntimeService 执行管理,包括启动、推进、删除流程实例等操作
TaskService 任务管理
HistoryService 历史管理(执行完的数据的管理)
IdentityService 组织机构管理
FormService 一个可选服务,任务表单管理
ManagerService  

接下来是完成一个工作流程的基本操作步骤,首先我们需要安装Activiti插件,然后我们构建一个流程实例并部署上去

 

 

        @Test
	public void deploy(){
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		
		RepositoryService service = processEngine.getRepositoryService();
		Deployment deploy = service.createDeployment()
		.addClasspathResource("diagrams/LeaveProcess.bpmn")
		.addClasspathResource("diagrams/LeaveProcess.png")
		.name("请假流程")
		.deploy();
	}

 部署流程还有一种方法也可以:加载压缩文件(zip格式)

        @Test
	public void deployProcess2(){
		
		InputStream in = getClass().getClassLoader().getResourceAsStream("Leave.zip");
		
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		Deployment deploy = processEngine.getRepositoryService()
				.createDeployment()
				.name("请假流程")
				.addZipInputStream(new ZipInputStream(in))
				.deploy();
	}

 

 

 接下来就是启动流程

        @Test
	public void test(){
		String instanceKey = "myProcess";
		
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		RuntimeService service = processEngine.getRuntimeService();
		ProcessInstance instance = service.startProcessInstanceByKey(instanceKey);
	}

 

 

 在流程启动的过程中,我们可以查询流程的进度

        @Test
	public void query(){
		String assignee = "Meixi";
		
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		TaskService service = processEngine.getTaskService();
		TaskQuery taskQuery = service.createTaskQuery();
		List<Task> list = taskQuery.taskAssignee(assignee).list();
		
		for (Task task : list){
			System.out.println(task);
		}
	}

 接下来就是完成每一个流程

@Test
	public void complete(){
		String taskID = "104";
		
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		TaskService service = processEngine.getTaskService();
		service.complete(taskID);
	}

 

 

  • 大小: 29.2 KB
  • 大小: 7.8 KB
  • 大小: 3.7 KB
  • 大小: 5.9 KB
  • 大小: 6 KB
  • 大小: 6 KB
0
1
分享到:
评论

相关推荐

    activiti工作流PPT

    Activiti作为一个工作流引擎,允许开发者通过编程或使用图形化工具定义、执行和管理这些流程。 在Activiti中,流程定义是用BPMN 2.0(Business Process Model and Notation)语言编写的,这是一种国际标准,用于...

    activiti工作流项目

    【标题】"activiti工作流项目"是一个基于Java技术栈实现的工作流管理系统示例,它集成了SpringMVC、Hibernate和Activiti等关键组件。这个项目旨在演示如何在实际应用中利用Activiti来构建动态表单和处理各种流程审批...

    Activiti工作流数据库表结构.pdf

    文档《Activiti工作流数据库表结构.pdf》详细描述了Activiti工作流引擎在数据库中使用的一系列表以及这些表的作用和结构。 下面详细说明在Activiti引擎中常见的数据库表及其功能: 1. ACT_GE_* 表:这类表用于存储...

    activiti工作流测试

    Activiti工作流测试是针对Activiti这一开源工作流引擎进行的一种实践操作,旨在帮助开发者理解和掌握如何在实际项目中运用Activiti。Activiti是一个轻量级、高效且灵活的业务流程管理(BPM)系统,它能够处理业务...

    activiti工作流案例

    Activiti工作流是一个开源的业务流程管理(BPM)和工作流引擎,它为企业提供了一种灵活、可扩展的方式来管理其业务流程。这个压缩包文件包含的“activiti工作流案例”是帮助初学者快速理解和实践Activiti工作流的一...

    Activiti工作流示例Activiti Demo(带完整源码)非常实用

    这个"Activiti工作流示例Activiti Demo"提供了完整的源代码,帮助开发者深入理解并实际操作Activiti,从而更好地在自己的项目中应用。 在描述中提到的"Canvas动画"是指Activiti提供的可视化建模工具,它允许开发者...

    Activiti工作流课程

    在学习Activiti工作流课程时,理解这些基本概念和数据库结构至关重要。通过掌握BPMN和Activiti的使用,开发者可以构建出符合业务需求的流程模型,实现自动化工作流,提高企业的效率和协同能力。在实际操作中,还需要...

    Activiti工作流HelloWorld入门

    通过以上步骤,你将完成一个基本的Activiti工作流HelloWorld实例。这个过程中涉及的概念和操作都是构建复杂业务流程的基础。随着对Activiti的进一步学习,你将能够创建更符合企业需求的自动化流程,提升工作效率,...

    Activiti6.0工作流使用说明文档v1.0.pdf

    Activiti 6.0 是一个流行的开源工作流引擎,旨在帮助用户设计、执行和监控业务流程。本文档旨在为用户提供 Activiti 6.0 工作流的使用说明,帮助用户更好地理解和使用 Activiti 6.0 工作流引擎。 模型设计器 在 ...

    Activiti 工作流取回的示例

    总结来说,这个"Activiti 工作流取回的示例"涵盖了Activiti工作流引擎的关键操作,尤其是关于任务的取回和撤销。通过对这些示例的分析和实践,开发者能够增强对Activiti的理解,提升在企业级应用中实现高效工作流程...

    activiti工作流

    Activiti工作流是一款开源的工作流程管理系统,主要用于企业的业务流程自动化。它是基于模型驱动的应用开发(MDA)理念,采用Java语言编写,与Spring框架高度集成,适用于构建企业级的业务流程应用。Activiti的设计...

    java工程中使用Activiti工作流技术

    在Java工程中使用Activiti工作流技术,我们可以实现复杂的业务流程自动化,从而提高效率和管理水平。首先,我们需要理解工作流的...因此,掌握在Java工程中使用Activiti工作流技术对于IT专业人士来说是一项重要的技能。

    activiti入门教程-基于Activiti5工作流实战企业协同OA办公系统.pdf

    教程可能会涉及一些实际的代码示例、配置文件、流程图和步骤说明等,让读者能够通过实例加深对Activiti工作流引擎的理解和应用。 此外,链接指向了一个商品页面,说明这份教程可能是作为商品销售的。然而,由于链接...

    activiti工作流demo

    这个"activiti工作流demo"是针对初学者或者开发者的一个入门示例,通过它,我们可以了解Activiti的基本用法和功能。 首先,让我们深入了解Activiti的核心概念: 1. **流程定义(Process Definition)**:流程定义...

    activiti 工作流详细文档教程+eclipse安装activiti插件

    通过本教程,开发者不仅可以了解Activiti工作流的基本概念,还能学会在Eclipse环境中使用Activiti Designer进行流程设计,从而提升业务流程的开发效率和质量。文档《Activiti工作流课程.doc》应该详细讲解了这些内容...

    Activiti工作流实战.rar

    《Activiti工作流实战》是一本深入探讨工作流技术和Activiti框架的专业参考资料。该书以实战为导向,旨在帮助读者理解并掌握如何在实际项目中应用Activiti,提升业务流程自动化的能力。 工作流(Workflow)是一种...

    Spring结合Activiti工作流

    本文将深入探讨这一主题,介绍如何利用Spring框架集成Activiti工作流引擎,以及如何通过源码示例进行实践。 首先,让我们了解什么是Activiti。Activiti是一款开源的工作流和业务流程管理(BPM)系统,它基于模型...

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

    《疯狂Workflow讲义》是一本深入探讨基于Activiti工作流应用开发的专业书籍,其配套源码为学习者提供了丰富的实践素材。Activiti是一款强大的、开源的企业级工作流引擎,广泛应用于业务流程自动化和管理工作流。在...

    activiti工作流学习总结

    ### Activiti工作流学习总结 #### 一、Activiti学习资源汇总 - **官方网站**: 提供了Activiti的最新版本信息、文档和技术支持等。地址为:[http://www.activiti.org/](http://www.activiti.org/) - **下载页面**: ...

    疯狂activiti工作流讲义

    这个"疯狂activiti工作流讲义"很可能是针对学习和掌握Activiti工作流框架的一份详细教程,旨在帮助开发者深入理解并有效地利用这一工具进行开发。 1. **工作流基础**:工作流是描述业务流程的模型,它定义了任务...

Global site tag (gtag.js) - Google Analytics