Activiti5 工作流的Helloworld的感悟(比较详细)

Activiti5,相信做过OA系统的对它不陌生。这次数据库使用的是Mysql和Activiti使用的版本是5.15,具体如何安装请参考:《Activiti5.16用户手册》----12. Eclipse Designer(安装跟版本没有什么大的改变)http://www.mossle.com/docs/activiti/


首先我们在写代码前:

切换到Java的角度,创建一个Java项目(这里叫activiti1)然后打开Java Build Path,参考以下图进行更改:

Activiti5 工作流的Helloworld的感悟(比较详细)_第1张图片

再写代码前:先写一个环境的测试demo(记得要导入需要的jar包):

jar包:

Activiti5 工作流的Helloworld的感悟(比较详细)_第2张图片

Activiti5 工作流的Helloworld的感悟(比较详细)_第3张图片


import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngineConfiguration;
import org.activiti.engine.impl.cfg.StandaloneProcessEngineConfiguration;
import org.junit.Test;

public class TestEnv {

	//搭建环境(创建流程引擎配置对象)
StandaloneProcessEngineConfiguration A;
	@Test
	public void test() {
		// 1.创建流程引擎配置对象
		ProcessEngineConfiguration configuration = ProcessEngineConfiguration
				.createStandaloneProcessEngineConfiguration();

		// 2.完善数据库相关配置
		configuration.setJdbcDriver("com.mysql.jdbc.Driver");
		configuration
				.setJdbcUrl("jdbc:mysql:///activiti1?createDatabaseIfNotExist=true");
		configuration.setJdbcUsername("root");
		configuration.setJdbcPassword("");

		// 设置数据库建表策略,默认为false
		configuration
				.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);

		// 3.使用配置对象创建ProcessEngine
		ProcessEngine processEngine = configuration.buildProcessEngine();
	}
}
----------------------------------------------------------------------------------------------------------------------------------------------------------


现在来写第一个HelloWorld

①上面写的环境测试的数据库相关配置其实可以写到一个配置文件(activiti.cfg.xml)中

activiti.cfg.xml





	

		
		
		
		
		

		
	



②在看流程图前首先要设置让Eclipse保存PNG图片:(如果看不到Activiti麻烦你检查是否成功):

将“Create Process definition image when saving the diagram”勾上

Activiti5 工作流的Helloworld的感悟(比较详细)_第4张图片

③参考图片建立相应的文件:

Activiti5 工作流的Helloworld的感悟(比较详细)_第5张图片

与其相对应的xml文件:

helloWorld.xml:



  
    
    
    
    
    
    
    
  
  
    
      
        
      
      
        
      
      
        
      
      
        
      
      
        
        
      
      
        
        
      
      
        
        
      
    
  
红色圈起来的比较重要,需要人工填写的:
Activiti5 工作流的Helloworld的感悟(比较详细)_第6张图片

④HelloWorld的测试代码:(初次使用可将3.查看任务和4.办理任务注释掉

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;

public class HelloWorld {

	// 1.发布流程规则

	@Test
	public void deployFlow() throws Exception {
		// 创建测试环境(创建核心ProcessEngine,监测环境搭建是否正确)
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

		RepositoryService repositoryService = processEngine
				.getRepositoryService();

		DeploymentBuilder builder = repositoryService.createDeployment();

		builder.addClasspathResource("helloworld.bpmn").addClasspathResource(
				"helloworld.png");
		builder.deploy();
	}

	// 2.启动流程实例
	@Test
	public void startFlow() throws Exception {
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		RuntimeService runtimeService = processEngine.getRuntimeService();
		runtimeService.startProcessInstanceByKey("myProcess");
	}

	// 3.查看任务
	@Test
	public void quertTask() {
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		TaskService taskService = processEngine.getTaskService();

		String userId = "张三";
		List tasks = taskService.createTaskQuery().taskAssignee(userId)
				.list();
		for (Task task : tasks) {
			System.out.println("Id:" + task.getId() + ",name:" + task.getName()
					+ ",assignee:" + task.getAssignee() + ",createTime:"
					+ task.getCreateTime());
		}
	}
	
	//4.办理任务
	@Test
	public void completeTask() throws Exception{
		ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
		TaskService taskService = processEngine.getTaskService();
		String taskId="204";
		taskService.complete(taskId);
	}

}

如果你在创建的数据库(activiti1)中看到如下图的表:证明你已经成功了

Activiti5 工作流的Helloworld的感悟(比较详细)_第7张图片

相关工程的代码下载地址:

http://download.csdn.net/detail/u011487470/7748047

你可能感兴趣的:(【学习笔记】,【工作流】,工作流,activiti5,oa系统,mysql,请假流程)