您的位置:首页 > 其它

activiti工作流引擎使用

2016-08-14 19:40 295 查看

java项目开发工作流
        如果学习activiti的话,首先要把activiti安装完成(我的博客里有相关的安装指南感兴趣的朋友可以去看一下:activiti安装详解),推荐大家网上去搜下activiti的jar包,以便完成相关开发。这是csnd的jar包链接activiti
jar包,可以从上面完成jar包下载。

简单的例子(不含用spring管理activiti)

一)、简单的用工作流连接数据库。
<span style="font-size:18px;">//创建activiti配置对象的实例
<span style="white-space:pre">	</span>ProcessEngineConfiguration config = ProcessEngineConfiguration
<span style="white-space:pre">			</span>.createStandaloneInMemProcessEngineConfiguration();
<span style="white-space:pre">	</span>//设置数据库连接信息
<span style="white-space:pre">	</span>//设置数据库地址
<span style="white-space:pre">	</span>config.setJdbcUrl("jdbc:mysql://localhost:3306/activiti5.4?useUnicode=true&characterEncoding=utf8");
<span style="white-space:pre">	</span>//数据库驱动
<span style="white-space:pre">	</span>config.setJdbcDriver("com.mysql.jdbc.Driver");
<span style="white-space:pre">	</span>//用户名密码
<span style="white-space:pre">	</span>config.setJdbcUsername("root");
<span style="white-space:pre">	</span>config.setJdbcPassword("1111");
<span style="white-space:pre">	</span>//设置自动创建表的规则,其中有多个属性,DB_SCHEMA_UPDATE_TRUE:表示表格没有就创建,有就不做任何处理
<span style="white-space:pre">	</span>config.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
<span style="white-space:pre">	</span>//得到引擎
<span style="white-space:pre">	</span>engine = config.buildProcessEngine();
<span style="white-space:pre">	</span>//部署流程的service
<span style="white-space:pre">	</span>repositoryService = engine.getRepositoryService();
<span style="white-space:pre">	</span>//开启流程的service
<span style="white-space:pre">	</span>runtimeService = engine.getRuntimeService();
<span style="white-space:pre">	</span>//任务的service
<span style="white-space:pre">	</span>taskService = engine.getTaskService();</span>


二)、画一个简单的流程图(画完流程图之后会生成一个png 结尾的流程图片)


li

流程图画完之后,要在下面properties里配置一下流程定义的KEY,也就是id选项,然后可以给流程起一个名字

三)、部署流程,部署流程时会在数据库里生成一系列表(过程可能稍慢)
<span style="font-size:18px;">Deployment deploy = repositoryService.createDeployment()
.name("请假流程【mashihao】").addClasspathResource("leave.bpmn")
.addClasspathResource("leave.png").deploy();
System.out.println(deploy.getId());
System.out.println(deploy.getName());
System.out.println(deploy.getDeploymentTime());
System.out.println(deploy.getCategory());</span>

四)、开启流程

<span style="fon
92d6
t-size:18px;">ProcessInstance pi = runtimeService.startProcessInstanceByKey("leaveProcess");</span>

五)、查询任务的相关信息

<span style="font-size:18px;">TaskQuery query = taskService.createTaskQuery();
List<Task> list = query.list();
for (Task task : list) {
System.out.println(task.getId());
System.out.println(task.getName());
System.out.println(task.getDueDate());</span>

六)、根据任务id提交任务

taskService.complete("204");


这样一个简单的流程就已经执行完毕了

用spring管理activiti相关配置

我们要更进一步的理解工作流,用spring来管理activiti的一些配置

<span style="font-size:18px;"><bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
<property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activiti5.4?createDatabaseIfNotExist=true&useUnicode=true&characterEncoding=utf8"/>
<property name="jdbcDriver" value="com.mysql.jdbc.Driver"/>
<property name="jdbcUsername" value="root"/>
<property name="jdbcPassword" value="1111"/>
<property name="databaseSchemaUpdate" value="true"/>
</bean>

<bean id="engine" factory-bean="processEngineConfiguration" factory-method="buildProcessEngine" />

<bean id="repositoryService" factory-bean="engine" factory-method="getRepositoryService" />
<bean id="runtimeService" factory-bean="engine" factory-method="getRuntimeService" />
<bean id="taskService" factory-bean="engine" factory-method="getTaskService" />
<bean id="historyService" factory-bean="engine" factory-method="getHistoryService" /></span>
<bean id="identityService" factory-bean="engine" factory-method="getIdentityService" />


<span style="font-size:18px;">private ClassPathXmlApplicationContext factory;

private RepositoryService repositoryService;

private RuntimeService runtimeService;

private TaskService taskService;

private HistoryService historyService;

@Before
public void init() {
factory=new ClassPathXmlApplicationContext("Activiti.cfg.xml");
repositoryService = (RepositoryService) factory.getBean("repositoryService");
runtimeService = (RuntimeService) factory.getBean("runtimeService");
taskService = (TaskService) factory.getBean("taskService");
historyService = (HistoryService) factory.getBean("historyService");
}</span>

用spring把activiti的配置管理起来,好处是显而易见的,大大简便了我们的开发
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: