您的位置:首页 > 其它

activiti使用的准备工作和启流程启动发布查看

2015-11-27 10:19 183 查看
我们在使用activiti的时候,首先要把插件装好(插件的安装请看我上一个博客), 当你插件安装好了,就是一些配置问题了。

activiti的文件配置

1,我们使用activiti一般是和spring mvc一起使用的,我们要在spring.xml中配置spring-activiti.xml



2.在spring-activiti.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"> <description>spring activiti 配置文件</description>

<!--流程引擎配置-->
<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration" >
<!--数据源配置-->
<property name="dataSource" ref="dataSource" />
<!-- (databaseType 不用修改,即使连接其他类型数据库)  act引擎会自动替换成相应的type,这里加上是因为act不识别hsqldb类型,故直接映射成H2-->
<property name="databaseType" value="oracle" />
<!--事务-->
<property name="transactionManager" ref="transactionManager" />
<!--数据库自动升级-->
<property name="databaseSchemaUpdate" value="true" />
<!--不创建identity表-->
<property name="dbIdentityUsed" value="false" />
<!--作业执行器-->
<property name="jobExecutorActivate" value="false" />
<!--历史级别-->
<property name="history" value="audit" />
<!--默认情况下,并不限制在此缓存。要限制进程定义缓存-->
<!-- <property name="processDefinitionCacheLimit" value="10" />-->

<!-- 生成流程图的字体 -->
<property name="activityFontName" value="宋体"/>
<property name="labelFontName" value="宋体"/>
<property name="idGenerator">
<bean class="cn.haosoo.cloud.activiti.utils.ActivitiIdWorkerGenerator" />
</property>
<!-- 自定义用户 -->
<property name="customSessionFactories">
<list>
<bean class="cn.haosoo.cloud.activiti.persistence.entity.CustomGroupManagerFactory">
<property name="groupEntityManager">
<bean class="cn.haosoo.cloud.activiti.persistence.entity.CustomGroupManager" />
</property>
</bean>
<bean class="cn.haosoo.cloud.activiti.persistence.entity.CustomUserManagerFactory">
<property name="userEntityManager">
<bean class="cn.haosoo.cloud.activiti.persistence.entity.CustomUserManager" />
</property>
</bean>
</list>
</property>

</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="historyService"     factory-bean="processEngine" factory-method="getHistoryService" />
<bean id="managementService"  factory-bean="processEngine" factory-method="getManagementService" />
<bean id="formService" factory-bean="processEngine" factory-method="getFormService" />
<!-- <bean id="dynamicBpmnService" factory-bean="processEngine" factory-method="getDynamicBpmnService" /> -->
<bean id="identityService" factory-bean="processEngine" factory-method="getIdentityService" />
<!-- <bean id="activitiRule" class="org.activiti.engine.test.ActivitiRule">
<property name="processEngine" ref="processEngine" />
</bean>-->

</beans>
3.当你把信息配置好了,就可以画流程了 、



这就是简单的流程图

当我们流程图画好了。就可以测试了,

package cn.haosoo.cloud.admin;

import java.util.List;

import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.RepositoryService;
import org.activiti.engine.RuntimeService;
import org.activiti.engine.TaskService;
import org.activiti.engine.repository.DeploymentBuilder;
import org.activiti.engine.task.Task;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;

/**
* Created by Administrator on 2015/8/6.
*/
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(value = {"classpath:spring.xml"})
public class BonmTestJunit2 {
@Autowired
private RepositoryService repositoryService;

@Autowired
private RuntimeService runtimeService;

@Autowired
private TaskService taskService;
@Autowired
private ProcessEngine processEngine;

//1.发布流程
@Test
public void deployProcess(){
//创建核心对象
processEngine=ProcessEngines.getDefaultProcessEngine();

repositoryService =processEngine.getRepositoryService();
DeploymentBuilder builder=repositoryService.createDeployment();//创建发布对象
builder.addClasspathResource("Test.bpmn").
addClasspathResource("Test.png");<span style="color:#cc0000;">//关于这个文件目录的问题,我的配置文件是在classpath下的 所以这个写的路径,如果你的不是,请自己修改!!!</span>
builder.deploy();

}

//启动流程
@Test
public void startProcess(){
runtimeService =processEngine.getRuntimeService();
runtimeService.startProcessInstanceByKey("Test");

}
//查看任务
public void lookTask(){
taskService=processEngine.getTaskService();
String assignee="user";

List<Task> tasks=taskService.createTaskQuery().taskAssignee(assignee).list();

for(Task task : tasks){

System.out.println("taskId:" +task.getId()+"name:" + task.getName()+"assignee"+task.getAssignee());

}
}

}


这个就是简单的使用,怎么设置流程变量和业务对象怎么和流程联系起来请关注我以后的更新!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: