activiti 工作流 第一天

多的废话不多说了,直接上最简单的操作、快速掌握activiti 工作流.........................

首先创建

activiti 的概念 、请自行查阅、、、

1、流程定义如:helloworld.bpmn
                          helloworld.png

2、生成数据库表 手动 jdbc   
@Test
public void createTable(){
// 创建activiti 配置对象的实例
ProcessEngineConfiguration configuration=ProcessEngineConfiguration.createStandaloneProcessEngineConfiguration();
// 设置数据库链接对象
configuration.setJdbcUrl("jdbc:mysql://localhost:3306/itcast0711activiti?useUnicode=true&characterEncoding=utf8");
configuration.setJdbcDriver("com.mysql.jdbc.Driver");
configuration.setJdbcUsername("root");
configuration.setJdbcPassword("root");
/**
* 设置建表策略
*/
configuration.setDatabaseSchemaUpdate(ProcessEngineConfiguration.DB_SCHEMA_UPDATE_TRUE);
ProcessEngine processEngines=configuration.buildProcessEngine();
System.out.println("流程核心对象"+processEngines);
   }
             
    加载 配置文件 activiti.cfg.xml    
@Test
public void loadActivitiXml(){
// 加载classPath 下名为 activiti.cfg.xml 的xml文件,创建核心流程引擎对象 、系统会自动创建数据库表
ProcessEngine processEngine=ProcessEngineConfiguration.createProcessEngineConfigurationFromResource("activiti.cfg.xml")
   .buildProcessEngine();
System.out.println("流程引擎对象创建数据库表:"+processEngine);
}


       


3、流程部署 有三种方式 
                        第一种:addClasspathResource()   
                        Deployment  deployment=proce.getRepositoryService().....
                                               .....
                                               .addClasspathResource("diagrams/xx.bpmn");
                                               .addClasspathResource("diagrams/xx.png")
       .deploy()

第二种:zip 部署   InputStream inputStream=this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.zip");
                                            ZipInputStream zipInputStream=new ZipInputStream(inputStream);
    Deployment  deployment=proce.getRepositoryService().....
                                               .....
                                               .addZipInputStream(zipInputStream);
      .deploy();
                          第三种:
  InputStream bpm=this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.bpmn");
                      InputStream png=this.getClass().getClassLoader().getResourceAsStream("diagrams/helloworld.png");
                                Deployment deployment=processEngine.getRepositoryService()
                  .createDeployment()
                  .name("way")
                  .addInputStream("helloworld.bpmn", bpm)
      .addInputStream("helloworld.png", png)
      .deploy();
System.out.println("部署ID"+deployment.getId());
System.out.println("部署名称"+deployment.getName());


4、启动流程实例
               4.1 获取 流程实例的可以 如:String procsskey="helloworld"; 使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动
               ProcessInstance processInstance=processEngine.getRuntimeService()   //与正在执行的流程实例和执行对象相关的service
                       .startProcessInstanceByKey(processKey);//使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动

System.out.println("流程实例ID:"+processInstance.getId());  // 101
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());  // helloworld:1:4


5、查询当前人的个人任务
                 5.1 获取 办理人的 String assigne="小唐";
List<Task> list=processEngine.getTaskService()
       .createTaskQuery()
       .taskAssignee(assignee)
       .list();
if(list!=null && list.size()>0){
for (Task task : list) {
System.out.println("任务ID:"+task.getId());
System.out.println("任务名称:"+task.getName());
System.out.println("任务创建时间:"+task.getCreateTime());
System.out.println("任务经的办理人:"+task.getAssignee());
System.out.println("流程实例ID"+task.getProcessInstanceId());
System.out.println("流程执行对象ID:"+task.getExecutionId());
System.out.println("流程定义Id"+task.getProcessDefinitionId());
System.out.println("-------------------------------------------------------");
}
}


6、查询当前人完成的任务
         6.1 首先获取任务Id 如:String taskId="104" ;
@Test
public void completeMyPersonalTask(){
// 任务id 104
String taskId="104";
processEngine.getTaskService().complete(taskId);

System.out.println("完成任务:任务Id:"+taskId);
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值