Activiti工作流(4):编写一个HelloWorld
2015-09-18 15:48
211 查看
1.使用eclipse的activiti插件画流程图
在resource文件夹下新建一个工作流diagram
右键——new——other...——选择activiti diagram
画一个简单的工作流程图
在Event选出一个开始节点startEvent和一个结束节点endEvent
在中间过程用task里面的userTask
如:
![](http://img.blog.csdn.net/20150918154045828)
2.部署流程定义(相当于在页面选择bpmn文件上传部署)
3.启动流程实例(相当于新建一个流程)
4.查询当前人的个人任务(相当于查询代办列表)
5.完成我的任务(相当于提交流程,流程进入下一环节)
第四篇完结。
邮箱:xiaowx@jx.tobacco.gov.cn
在resource文件夹下新建一个工作流diagram
右键——new——other...——选择activiti diagram
画一个简单的工作流程图
在Event选出一个开始节点startEvent和一个结束节点endEvent
在中间过程用task里面的userTask
如:
2.部署流程定义(相当于在页面选择bpmn文件上传部署)
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**部署流程定义*/ @Test public void deploymentProcessDefinition(){ Deployment deployment = processEngine.getRepositoryService()//与流程定义和部署对象相关的Service .createDeployment()//创建一个部署对象 .name("helloworld入门程序")//添加部署的名称 .addClasspathResource("diagrams/helloworld.bpmn")//从classpath的资源中加载,一次只能加载一个文件 .addClasspathResource("diagrams/helloworld.png")//从classpath的资源中加载,一次只能加载一个文件 .deploy();//完成部署 System.out.println("部署ID:"+deployment.getId());//1 System.out.println("部署名称:"+deployment.getName());//helloworld入门程序 }
3.启动流程实例(相当于新建一个流程)
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**启动流程实例*/ @Test public void startProcessInstance(){ //流程定义的key String processDefinitionKey = "helloworld"; ProcessInstance pi = processEngine.getRuntimeService()//与正在执行的流程实例和执行对象相关的Service .startProcessInstanceByKey(processDefinitionKey);//使用流程定义的key启动流程实例,key对应helloworld.bpmn文件中id的属性值,使用key值启动,默认是按照最新版本的流程定义启动 System.out.println("流程实例ID:"+pi.getId());//流程实例ID 101 System.out.println("流程定义ID:"+pi.getProcessDefinitionId());//流程定义ID helloworld:1:4 }
4.查询当前人的个人任务(相当于查询代办列表)
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**查询当前人的个人任务*/ @Test public void findMyPersonalTask(){ String assignee = "王五"; List<Task> list = processEngine.getTaskService()//与正在执行的任务管理相关的Service .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("########################################################"); } } }
5.完成我的任务(相当于提交流程,流程进入下一环节)
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine(); /**完成我的任务*/ @Test public void completeMyPersonalTask(){ //任务ID String taskId = "302"; processEngine.getTaskService()//与正在执行的任务管理相关的Service .complete(taskId); System.out.println("完成任务:任务ID:"+taskId); }
第四篇完结。
邮箱:xiaowx@jx.tobacco.gov.cn
相关文章推荐
- Tween(GreenSock)
- NSMutableString
- NSMutableArray 排序
- R中设置图形参数--函数par()…
- [转载]hive的查询注意事项以及优…
- hive大数据倾斜总结
- SAS中常用选项的含义简介
- 黑马程序员_编写程序,打印1到100之内的整数,但数字中包含7的要跳过,例如:17、27、71、72
- 用gbm包来提升决策树能力
- Python 中的 property 属性
- 随机森林 VS Grad…
- hive array、map、stru…
- R主页上的图的代码
- Python教程:[63]操作目录/路径【2…
- 【转载】Python 基础语法(二)…
- SAS hash 树与多维临时数组的比较
- 获取输入字符串的下一个字典序排列
- MySQL Join算法与调优白皮书(三)
- oracle回顾--视图、PL/SQL、游标
- Hello JSP!——内置对象基础练习题