• activiti工作流使用一般步骤


    activiti工作流使用的一般步骤

    一、在eclipse或Myeclipse中安装activiti插件;

    二、通过activiti连接数据库,有以下两种连接数据库的形式:

    1.通过java代码链接数据库:

    public void createTableByOracle(){
    		ProcessEngineConfiguration configuration = ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
    		configuration.setJdbcUrl("jdbc:oracle:thin:@192.168.1.150:1521:orcl");
    		configuration.setJdbcDriver("oracle.jdbc.OracleDriver");
    		configuration.setJdbcUsername("scott");
    		configuration.setJdbcPassword("oracle");
    		configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
    		ProcessEngine processEngine = configuration.buildProcessEngine();
    		System.out.println("-------------------------------------");
    		System.out.println(processEngine);
    	}

    2.通过配置文件配置链接数据库

    (1)配置文件:

    <?xml version="1.0" encoding="UTF-8"?>
    <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
      xmlns:jee="http://www.springframework.org/schema/jee" xmlns:aop="http://www.springframework.org/schema/aop"
      xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
           http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-3.0.xsd
           http://www.springframework.org/schema/jee http://www.springframework.org/schema/jee/spring-jee-3.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-3.0.xsd">
           
    	<bean id="dataSource"
    		class="org.springframework.jdbc.datasource.SimpleDriverDataSource">
    		<property name="driverClass" value="com.mysql.jdbc.Driver" />
    		<property name="url" value="jdbc:mysql://192.168.1.150:3306/officemanage?characterEncoding=utf8" />
    		<property name="username" value="root" />
    		<property name="password" value="123456" />
    	</bean>
    
    	 <bean id="transactionManager"
    		class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
    		<property name="dataSource" ref="dataSource" />
    	</bean>
    
    	<bean id="processEngineConfiguration" class="org.activiti.spring.SpringProcessEngineConfiguration">
    		<property name="dataSource" ref="dataSource" />
    		<property name="transactionManager" ref="transactionManager" />
    		<property name="databaseSchemaUpdate" value="true" />
    	</bean>
      
    </beans>

    (2)java代码读取配置文件链接数据库:

    public void createTableByXML(){
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    	}

    三、创建工作流的bpmn类型的文件:

    四、部署bpmn和png类型的工作流文件资源:(注意:一个工作流程部署一次即可,以后只需要启动一条流程即可)

    public void deployTest(){
    		System.out.println("开始部署一个审批流程");
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		Deployment deployment = processEngine.getRepositoryService().createDeployment().name("路费报销审批流程").addClasspathResource("choiceProcess.bpmn").addClasspathResource("choiceProcess.png").deploy();
    		System.out.println("部署流程完毕");
    	}

    五、启动一条流程:

    public void StartProcess(){
    		System.out.println("开始启动一个审批流程");
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		ProcessInstance processInstance = processEngine.getRuntimeService().startProcessInstanceByKey("luFeiBaoXiaoShenPi");
    		System.out.println(processInstance.getId()+"--------"+processInstance.getActivityId());
    		System.out.println("启动流程完毕");
    	}

    六、查看某个人要完成的任务列表:

    public void queryProcess(){
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		String assignee0 = "lsy";
    		List<Task> zhangSanList = processEngine.getTaskService().createTaskQuery().taskAssignee(assignee0).orderByTaskCreateTime().asc().list();
    		System.out.println("****************"+assignee0+"个人任务列表***********************");
    		for (Task task : zhangSanList) {
    			System.out.println("id:"+task.getId()+",名称:"+task.getName()+",创建时间"+task.getCreateTime()+",人物:"+task.getAssignee());
    		}
    	}

    七、某个人完成自己的某个任务:

    1.不带变量:

    public void completeTask(){
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		processEngine.getTaskService().complete("235009");
    		System.out.println("完成任务");
    	}

    2.带变量:

    public void completeTaskByVariables(){
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		Map<String, Object> variables = new HashMap<String,Object>();
    		variables.put("money", 501);
    		processEngine.getTaskService().complete("265004",variables);
    		System.out.println("完成任务");
    	}

    八、某个人查看自己已完成的任务列表:

    public void queryHistoryTask(){
    		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
    		List<HistoricTaskInstance> historicList = processEngine.getHistoryService().createHistoricTaskInstanceQuery().taskAssignee("lsy").list();
    		for (HistoricTaskInstance historicTaskInstance : historicList) {
    			System.out.println(historicTaskInstance.getId()+":"+historicTaskInstance.getProcessDefinitionId()+":"+historicTaskInstance.getAssignee()+":"+historicTaskInstance.getExecutionId()+":"+historicTaskInstance.getStartTime()+":"+historicTaskInstance.getEndTime()+":"+historicTaskInstance.getDurationInMillis());
    		}
    	}
  • 相关阅读:
    Python一直在找动态Cookie,恩!
    python和Ajax在一起了?真的???
    Flask网页session记住用户登录状态
    Rxjs Observable.pipe 传入多个 operators 的执行逻辑分析
    RxJs map operator 工作原理分析
    RxJs fromEvent 工作原理分析
    SAP Spartacus Reference App Structure
    SAP Spartacus RouterModule.forRoot() called twice 的错误消息
    SAP UI5 XML 视图里 label 和 text 控件文本对齐问题
    Angular 使用 Injector API 人工获取依赖注入的实例
  • 原文地址:https://www.cnblogs.com/lsy-blogs/p/7561995.html
Copyright © 2020-2023  润新知