一. Activiti入门
工作流主要实现功能
工作流管理系统(WorkflowManagement System, WfMS)是一个软件系统,它完成工作量的定义和管理,并按照在系统中预先定义好的工作流规则进行工作流实例的执行。工作流管理系统不是企业的业务系统,而是为企业的业务系统的运行提供了一个软件的支撑环境。
工作流管理联盟(WfMC,Workflow Management Coalition)给出的关于工作流管理系统的定义是:工作流管理系统是一个软件系统,它通过执行经过计算的流程定义去支持一批专门设定的业务流程。工作流管理系统被用来定义、管理、和执行工作流程。
1、定义工作流:包括具体的活动、规则等。eclipse或者myeclipse安装activiti插件
2、执行工作流:按照流程定义的规则执行,并由多个参与者进行控制。顺序、分支、聚合、并发
工作流系统的优点:
1、提高系统的柔性,适应业务流程的变化
2、实现更好的业务过程控制,提高顾客服务质量
3、降低系统开发和维护成本
Activiti数据库支持:
Activiti的后台是有数据库的支持,所有的表都以ACT_开头。第二部分是表示表的用途的两个字母标识。 用途也和服务的API对应。
ACT_RE_*: 'RE'表示repository。这个前缀的表包含了流程定义和流程静态资源 (图片,规则,等等)。
ACT_RU_*: 'RU'表示runtime。这些运行时的表,包含流程实例,任务,变量,异步任务,等运行中的数据。 Activiti只在流程实例执行过程中保存这些数据, 在流程结束时就会删除这些记录。这样运行时表可以一直很小速度很快。
ACT_ID_*: 'ID'表示identity。这些表包含身份信息,比如用户,组等等。
ACT_HI_*: 'HI'表示history。这些表包含历史数据,比如历史流程实例, 变量,任务等等。
ACT_GE_*: 通用数据,用于不同场景下,如存放资源文件。
表结构解析:http://blog.csdn.net/hj7jay/article/details/51302829
二.准备环境
1、创建java项目
2、添加jar包
3、新建数据库activiti_1110(MySQL数据库)
方法一:使用代码:(不使用配置文件,不建议)
/**
* 使用框架提供的自动建表(不提供配置文件)
*/
@Test
public void test1() {
// 创建一个流程引擎配置对象
ProcessEngineConfiguration conf = ProcessEngineConfiguration
.createStandaloneProcessEngineConfiguration();
// 设置数据源信息
conf.setJdbcDriver("com.mysql.jdbc.Driver");
conf.setJdbcUrl("jdbc:mysql://localhost:3306/activiti_1110");
conf.setJdbcUsername("activiti_1110");
conf.setJdbcPassword("activiti_1110");
// 设置自动建表
conf.setDatabaseSchemaUpdate("true");
// 创建一个流程引擎对象,在创建流程引擎对象过程中会自动建表
ProcessEngine processEngine = conf.buildProcessEngine();
}
方法二:使用配置文件:要求配置文件名称必须为activiti-context.xml或者activiti.cfg.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 name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti_1110" />
<property name="jdbcUsername" value="activiti_1110" />
<property name="jdbcPassword" value="activiti_1110" />
<!-- 建表策略 -->
<property name="databaseSchemaUpdate" value="true" />
</bean>
<!-- 配置一个流程引擎工厂bean,用于创建流程引擎对象 -->
<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
<!-- 通过set方法注入流程引擎配置对象 -->
<property name="processEngineConfiguration" ref="processEngineConfiguration" />
</bean>
</beans>
JAVA代码
/**
* 使用框架提供的自动建表(提供配置文件)---可以从框架提供的例子程序中获取
*/
@Test
public void test2() {
String resource = "activiti-context.xml";// 配置文件名称
String beanName = "processEngineConfiguration";// 配置id值
ProcessEngineConfiguration conf = ProcessEngineConfiguration
.createProcessEngineConfigurationFromResource(resource,
beanName);
ProcessEngine processEngine = conf.buildProcessEngine();
}
方法三:使用框架提供的自动建表(使用配置文件)
/**
* 使用框架提供的自动建表(使用配置文件)
*/
@Test
public void test3() {
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
}
方法四: 使用activiti框架提供的建表语句
activiti-engine.jar包中自带了创建activiti工作流数据库表的SQL语句和自动初始化数据库的方法。SQL语句在org.activiti.db.create包下,初始化方法在org.activiti.engine.impl.db.DbSchemaCreate的main方法之中。
使用MySQL数据库,执行以下选中的3个sql文件运行就可以成功创建23张表。
也可以从网上下载:http://download.csdn.net/detail/qciwyy/9705559