Maven构造Activiti入门

1.Activiti的Eclipse插件Activiti Designer安装

        Activiti有一个Eclipse插件,Activiti Eclipse Designer,可用于图形化建模、测试、部署 BPMN 2.0的流程。这样就不用我们自己去编写繁琐的流程文件了。

具体安装方法见手册。 
     打开 Help-> Install New Software.在如下面板中 , 点击 Add 按钮, 然后填入下列字段:
     Name: Activiti BPMN 2.0 designer

     Location: http://activiti.org/designer/update/

     然后一步步的安装就可以了。

2.maven构造项目

   添加依赖如下:

		<!-- 测试 -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>3.8.1</version>
			<scope>test</scope>
		</dependency>
		<!-- activiti相关依赖 -->
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-engine</artifactId>
			<version>5.16</version>
			<scope>test</scope>
		</dependency>
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-bpmn-converter</artifactId>
			<version>5.16</version>
		</dependency>
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-bpmn-model</artifactId>
			<version>5.16</version>
		</dependency>
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-bpmn-layout</artifactId>
			<version>5.16</version>
		</dependency>
		<dependency>
			<groupId>joda-time</groupId>
			<artifactId>joda-time</artifactId>
			<version>2.7</version>
		</dependency>

		<!-- 数据库连接 -->
		<dependency>
			<groupId>mysql</groupId>
			<artifactId>mysql-connector-java</artifactId>
			<version>5.1.34</version>
		</dependency>
		<dependency>
			<groupId>com.alibaba</groupId>
			<artifactId>druid</artifactId>
			<version>1.1.6</version>
		</dependency>

		<!-- activiti与spring整合依赖 -->
		<dependency>
			<groupId>org.activiti</groupId>
			<artifactId>activiti-spring</artifactId>
			<version>5.16</version>
		</dependency>


		<!-- log4J日志相关依赖 -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-api</artifactId>
			<version>1.7.21</version>
		</dependency>
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.7.21</version>
		</dependency>

3.资源目录下的activiti.cfg.xml配置引擎

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	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">
	<bean id="processEngineConfiguration"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<!-- <property name="databaseSchemaUpdate" value="drop-create" /> -->
		<property name="databaseSchemaUpdate" value="update" />
		<property name="jdbcUrl"
			value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf-8" />
		<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUsername" value="root" />
		<property name="jdbcPassword" value="admin" />
		<!-- <property name="jobExecutorActivate" value="true" /> -->
	</bean>
	<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration"></property>
	</bean>
</beans>

4.资源目录下log4j.properties打印日志的配置

log4j.rootLogger=DEBUG, CA
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern= %d{hh:mm:ss,SSS} [%t] %-5p %c %x - %m%n

5.获取默认引擎进行测试

         注: 此方式默认文件名字就是activiti.cfg.xml

public class AppTest {
	/**
	 * 获取默认流程引擎,所有配置都是默认的
	 */

	ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

	/**
	 * 布置流程 (操作数据表 act_re_deployment,act_re_procdef,act_ge_bytearray
	 * 
	 */
	@Test
	public void createDeployment() {
		DeploymentBuilder builder = processEngine.getRepositoryService().createDeployment();
		builder.addClasspathResource("MyProcess.bpmn");
		builder.addClasspathResource("MyProcess.png");
		Deployment deploy = builder.deploy();
		System.out.println(deploy.getId());
	}
}

6.手动加载配置文件的方式获取引引擎

   6.1同样是资源目录配置activiti.cfg.xml文件

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
	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">
	<bean id="processEngineConfiguration"
		class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
		<property name="databaseSchemaUpdate" value="drop-create" />
		<property name="jdbcUrl"
			value="jdbc:mysql://localhost:3306/activiti?useUnicode=true&characterEncoding=utf-8" />
		<property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
		<property name="jdbcUsername" value="root" />
		<property name="jdbcPassword" value="admin" />
		<property name="jobExecutorActivate" value="true" />
	</bean>
</beans>

   6.2手动加载方式activiti.cfg.xml

public class App {
	
	@Test
	public void createProcess() {

		// 加载配置文件
		ProcessEngine processEngine = ProcessEngineConfiguration
				.createProcessEngineConfigurationFromResource("activiti.cfg.xml").buildProcessEngine();
		RepositoryService repositoryService = processEngine.getRepositoryService();
		RuntimeService runtimeService = processEngine.getRuntimeService();
		repositoryService.createDeployment().addClasspathResource("MyProcess.bpmn").deploy();
		String processId = runtimeService.startProcessInstanceByKey("myProcess").getId();
		System.out.println("创建表成功,processId=" + processId);
	}
}

7.Activiti创建各表的意义

      Activiti的后台是有数据库的支持,所有的表都以ACT_开头。 第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。

 ACT_RE_*: 'RE'表示repository。 这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。

 ACT_RU_*: 'RU'表示runtime。 这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程     实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。 这样运行时表可以一直很小速度很快。

  ACT_ID_*: 'ID'表示identity。 这些表包含身份信息,比如用户,组等等。
  ACT_HI_*: 'HI'表示history。 这些表包含历史数据,比如历史流程实例, 变量,任务等等
  ACT_GE_*: 通用数据, 用于不同场景下,如存放资源文件。
资源库流程规则表
   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属性数据表存储整个流程引擎级别的数据,初始化表结构时,会默认插入三条记录,
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值