Activiti工作流(4):编写一个HelloWorld
版权声明:本文为博主原创文章,未经博主允许不得转载。
1.使用eclipse的activiti插件画流程图
在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);
- }

Activiti工作流(4):编写一个HelloWorld的更多相关文章
- PHP扩展开发--编写一个helloWorld扩展
为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多.同样的运算代码,使用C来开发,性能会比PHP要提升数百倍. 另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据 ...
- PHP扩展开发--01.编写一个helloWorld扩展
为什么要用C扩展 C是静态编译的,执行效率比PHP代码高很多.同样的运算代码,使用C来开发,性能会比PHP要提升数百倍. 另外C扩展是在进程启动时加载的,PHP代码只能操作Request生命周期的数据 ...
- 如何自己编写一个easyui插件
本文介绍如何通过参考1.4.2版本的progressbar的源码自己编写一个HelloWorld级别的easyui插件,以及如何拓展插件的功能. 有利于我们理解easyui插件的实现,以及了解如何对e ...
- Viper 微服务框架 编写一个hello world 插件-02
1.Viper是什么? Viper 是.NET平台下的Anno微服务框架的一个示例项目.入门简单.安全.稳定.高可用.全平台可监控.底层通讯可以随意切换thrift grpc. 自带服务发现.调用链追 ...
- 用Spring3编写第一个HelloWorld项目
第一个HelloWorld程序 让我们用Spring来写第一个应用程序吧. 完成这一章要求: 熟悉Java语言 设置好Spring的环境 熟悉简单的Eclipse IDE的操作 如果你还没有设置好环境 ...
- Activiti工作流学习-----基于5.19.0版本(6)
七. BPMN的简介 读者了解到这里,应付一般的工作流开发已经足够了.此处应该有华丽的分割线,在工作流项目中核心开发人员主要是对工作流业务设计以及实现,而初级开发人员是对业务功能的代码实现.以后将主要 ...
- Activiti工作流搭建---初始化数据库
Activiti介绍 Activiti5是由Alfresco软件在2010年5月17日发布的业务流程管理(BPM)框架,它是覆盖了业务流程管理.工作流.服务协作等领域的一个开源的.灵活的.易扩展的可执 ...
- 手把手教你如何玩转Activiti工作流
手把手教你如何玩转Activiti工作流 置顶 2018年01月30日 19:51:36 Cs_hnu_scw 阅读数:24023 版权声明:本文为博主原创文章,未经博主允许不得转载. https ...
- Activiti工作流小序曲
一般涉及到OA.ERP等公司办公系统都必须有一套办公流程,这时候使用activiti工作流框架会大大减轻我们的工作量,提高我们的开发效率. Activiti工作流简单介绍: 工作流(workflow) ...
随机推荐
- 小米净水器与小区过滤价格水对照.xls
总结:要是一天用水量为7升下面.还是用小区的过滤水为好,合算. 假设过滤水需求量大,可能小米的净水器比較好.当然,小区的要天天去接.要求风雨无阻的. 这点小米的随用随接就更好. 注意一点,小米的还要用 ...
- 【DNN 系列】 DNN是什么
DNN平台 这个DNN平台是一个开放的.可扩展的.安全的.可扩展的内容管理系统和ASP.NET.世界各地的数十万商户,从地方小企业到全球1000强企业,取决于DNN平台作为他们网站的编辑环境. 这个网 ...
- Bayes++ Library入门学习之熟悉class-Bayesian_filter_base(1)
在对Bayes++库的名称空间有了一个大概的了解之后,我们开始学习该名称空间下的第一个子类Bayesian_filter::Bayes_filter_base. 该类与其子类的继承关系图如下图所示. ...
- JS中的switch case
function GetDepartmentName(type) { switch (type) { case DepartMentQian: alert($('#DepartMentQian').v ...
- E. Reachability from the Capital(tarjan+dfs)
求联通分量个数,在dfs一次 #include <iostream> #include <algorithm> #include <cstring> #includ ...
- 旧机器安装ArchLinux的各种问题
昨天突然想到家里还有一台很早之前不用的计算机 于是打算安装一个linux,开学再拿到宿舍用来写代码,怎么说台式机显示屏也比笔记本的大 机器安装问题 屏幕机箱擦干净,该连的东西都连上,然后插电源,本以为 ...
- time---统计命令所花费的总时间
time命令用于统计给定命令所花费的总时间. 语法 time(参数) 参数 指令:指定需要运行的额指令及其参数. 实例 当测试一个程序或比较不同算法时,执行时间是非常重要的,一个好的算法应该是用时最短 ...
- 今日SGU 5.25
SGU 194 题意:无源汇有上下界的最大流 收获:https://wenku.baidu.com/view/0f3b691c59eef8c75fbfb35c.html #include<bit ...
- Varnish 缓存加速, Varnish 菜鸟看过来,Varnish实战
Varnish可以有效降低web服务器的负载,提升访问速度.按照HTTP协议的处理过程,web服务器接受请求并且返回处理结果,理想情况下服务器要在不做额外处理的情况下,立即返回结果,但实际情况并非如此 ...
- 二、 HBase核心功能模块。
Hadoop 框架包含两个核心组件: HDFS 和 MapReduce 其中 HDFS 是文件存储系统,负责数据存储: MapReduce 是 ...