需求分析:
在现有的Crm项目中,集成Activiti工作流框架,实现一个“客户报备”流程管理。
为了确保录入的客户信息都是有效的,防止市场人员作假。对于录入的客户信息需要进行报备审批,也就是需要通过部门经理审批。
具体流程如下:
【Activiti】从入门到放弃——项目实战之框架集成-LMLPHP
在crm系统中集成客户报备的流程,包括两个节点:报备申请,经理审批.
步骤分析:
1、准备一个现有的(可以正常运行的)CRM项目。
导入项目Activiti-CRM.rar
创建数据库activiti-crm
导入sql脚本itsource_crm.sql
部署crm到tomcat
确保CRM中,需要加入流程管理的业务模块(客户管理)能够正常运行
2、把Activiti集成到Crm项目中
3、流程定义(规则)管理
虽然当前分析出来只有一个客户报备流程,但是后面可能会集成其他流程(报销流程等),所以需要一个管理各种流程规则的模块.具体需要的流程如下:
1) 部署新流程
2) 查看(列表)流程
3) 删除流程
4) 查看规则流程图
4、流程实例和流程任务管理(运行时管理)
1)启动流程
2)查看任务
3)办理任务
4)使用流程监听器,修改业务对象状态。
集成Activiti框架:
步骤
4.2.1.准备CRM环境
导入项目Activiti-CRM.rar
创建数据库activiti-crm
导入sql脚本itsource_crm.sql
部署crm到tomcat
确保CRM中,需要加入流程管理的业务模块(客户管理)能够正常运行
4.2.2.Activiti集成CRM
框架集成的核心??
Spring框架叫做项目(资源)的管家。
如果待集成项目中,有Spring框架,那么主要就是和“Spring框架”做集成。

把Activiti框架的“核心类”交给Spring管理;-- Activiti的核心类,引擎配置对象,引擎对象,三大服务对象
如果框架有事务,也要把“事务”交给Spring管理。

集成步骤:
1、导入activiti jar包
activiti-5.16.4\wars\activiti-rest\WEB-INF\lib\activiti*.jar
mybatis-3.2.5.jar (尽量使用高版本)
joda-time-2.1.jar

有可能会缺失其他包,ClassNotFound 差什么引入什么?
Maven怎么引入? 到中央仓库,搜索Activiti,拷贝pom的的代码端即可

2、添加Activiti配置文件-applicationContext-activiti.xml-配置核心对象
用户手册中,第5章,前两节。

3、把Activiti配置文件-applicationContext-activiti.xml集成到Spring

4、测试
通过Spring容器,注入Activiti核心服务,检测集成是否成功!!
也可以从数据库也能看到是否集成成功,看表是否创建了

<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
		<property name="dataSource" ref="dataSource" />
		<property name="transactionManager" ref="transactionManager" />
		<property name="databaseSchemaUpdate" value="true" />
	</bean>

	<bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
		<property name="processEngineConfiguration" ref="processEngineConfiguration" />
	</bean>

	<bean id="repositoryService" factory-bean="processEngine"
		factory-method="getRepositoryService" />
	<bean id="runtimeService" factory-bean="processEngine"
		factory-method="getRuntimeService" />
	<bean id="taskService" factory-bean="processEngine"
		factory-method="getTaskService" />
	<bean id="formService" factory-bean="processEngine"
		factory-method="getFormService" />


集成测试:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration("/applicationContext.xml")
public class ActivitiEnvTest {

	@Autowired
	private RepositoryService repositoryService;
	@Test
	public void test() {
		System.out.println(repositoryService);
	}
}
12-02 12:00