Activiti框架的工作流

一.Activiti的简单使用
        activiti的运转是基于流程引擎ProcessEngine和数据库的,一共操作23张表,常用的有7张表,主要关于流程部署,流程定义,流程实例,任务,资源,用户和流程变量.

准备工作:导入activiti的jar包,安装Eclipse的插件
1.涉及到的核心API
     RespositoryService(操作流程部署):Deployment对象,ProcessDefinition对象,
     RuntimeService(操作流程实例):ProcessInterface对象,Execution对象
     TaskService(处理流程任务):TaskQuery对象,Task对象
2.配置文件activiti.cxf.xml
  
  
  1. <beans xmlns="http://www.springframework.org/schema/beans"
  2. xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
  3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
  5. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
  6. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">
  7. <bean id="processEngineConfiguration" class="org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration">
  8. <property name="jdbcDriver" value="com.mysql.jdbc.Driver" />
  9. <property name="jdbcUrl" value="jdbc:mysql://localhost:3306/activity_db" />
  10. <property name="jdbcUsername" value="root" />
  11. <property name="jdbcPassword" value="admin" />
  12. <property name="databaseSchemaUpdate" value="true"></property>
  13. </bean>
  14. <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
  15. <property name="processEngineConfiguration" ref="processEngineConfiguration" />
  16. </bean>
  17. </beans>
3.绘制流程图
     利用Eclipse绘制流程图bpmn文件,实际上是xml文件,保存后会自动生成一张png图片,将流程图和png放到classpath路径下.
指定流程名称,任务名称,任务办理人(或多人),任务办理组等
4.编写代码,获取流程引擎
   
   
  1. public class ActivitiTest {
  2. //方式一:ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
  3.    //方式二:
  4. public void test1() {
  5. ProcessEngineConfiguration config = ProcessEngineConfiguration
  6. .createProcessEngineConfigurationFromResource(
  7. "activiti-context.xml", "processEngineConfiguration");
  8. ProcessEngine processEngine = config.buildProcessEngine();
  9. }
  10. }
       以上两种方式都可以获得流程引擎,其中方式一必须要求资源文件名为activiti-context.xml或者activiti.cfg.xml,且必须放在classpath路径下,获得流程引擎的同时会自动到配置的数据库中创建和操作表
5.部署流程,开启流程实例,办理任务 
  
  
  1. /**
  2. * 部署流程
  3. */
  4. public void test2() {
  5. RepositoryService repositoryService = processEngine
  6. .getRepositoryService();
  7. DeploymentBuilder deploymentBuilder = repositoryService
  8. .createDeployment();
  9. deploymentBuilder.addClasspathResource("test.bpmn");
  10. deploymentBuilder.addClasspathResource("test.png");
  11. Deployment deployment = deploymentBuilder.deploy();
  12. }
   
   
  1. /**
  2. * 开启流程实例
  3. */
  4. public void test3() {
  5. ProcessInstance processInstance = processEngine.getRuntimeService()
  6. .startProcessInstanceById("test:1:104");
  7. String instanceId = processInstance.getProcessInstanceId();
  8. System.out.println(instanceId);
  9. }
    
    
  1. /**
  2. * 查询和办理任务
  3. */
  4. public void test4() {
  5. //查询任务
  6. TaskQuery taskQuery = processEngine.getTaskService().createTaskQuery();
  7. //添加查询条件
  8. taskQuery.taskAssignee("user");
  9. Task task = taskQuery.singleResult();
  10. //办理任务
  11. processEngine.getTaskService().complete(task.getId());
  12. }
6.Activiti与Spring的整合
       框架与spring整合以后,可同过注解的方式在需要流程引擎的层中注入
  
  
  1. <!-- 整合activity工作流框架 -->
  2. <bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
  3. <property name="dataSource" ref="dataSource"/>
  4. <property name="transactionManager" ref="txManager"/>
  5. <property name="databaseSchemaUpdate" value="true"/>
  6. </bean>
  7. <bean id="processEngine" class="org.activiti.spring.ProcessEngineFactoryBean">
  8. <property name="processEngineConfiguration" ref="processEngineConfiguration" />
  9. </bean>
  10. <bean id="repService" factory-method="getRepositoryService" factory-bean="processEngine"/>






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

hspringh

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值