Activiti 完成的第一个请假审批流程

原创 2018年04月17日 17:06:21

这段时间研究了好长时间Activiti终于写出来了第一个简单的DEMO


注意bpmn文件和配置文件XML一定要放到resource中不然会报空指针错误

源码 :



import org.h2.util.Utils;
import org.activiti.engine.ProcessEngine;
import org.activiti.engine.ProcessEngines;
import org.activiti.engine.repository.Deployment;
import org.activiti.engine.runtime.ProcessInstance;
import org.activiti.engine.task.Task;
import org.junit.Test;


import com.sun.xml.internal.bind.v2.schemagen.xmlschema.List;


public class HelloWord {
static ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();

@Test
public void deploymentProcessDefinition(){
// 部署流程定义  
//  这一段代码的目的是为了操作数据库
Deployment deployment =  processEngine.getRepositoryService() //与流程定义和部署相关的service
.createDeployment() //创建一个部署对象
.name("hello activiti")
.addClasspathResource("HelloWorld.bpmn") //从classpath文件中加载且一次只能加载一个文件
.deploy(); //完成部署
System.out.println("部署ID:"+ deployment.getId());
System.out.println("部署名称:"+deployment.getName());
}
@Test
// 启动流程实例
public void startProcessInstance(){
String ProcessDefinitionKey = "hellowordid";
ProcessInstance pl = processEngine.getRuntimeService()//与正在执行的流程实例和部署对象相关的Service
.startProcessInstanceByKey(ProcessDefinitionKey);//使用流程定义的KEY运行流程实例 key对应 HelloWord中的id的属性值
System.out.println("流程实例ID:"+pl.getId());               //使用KEY启动  默认 的是最新版本的流程定义
System.out.println("流程定义ID:"+pl.getProcessDefinitionId());
}
@Test
// 查询当前的个人任务
public void FindPersonTask(){
String assignee = "王五";
java.util.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.getAssignee());
System.out.println("任务的创建时间:"+task.getCreateTime());
System.out.println("流程实例ID:"+task.getProcessDefinitionId());
System.out.println("执行对象ID:"+task.getExecutionId());
System.out.println("流程定义ID:"+task.getProcessDefinitionId());
System.out.println("##########################################################");
}
}
}
@Test
// 完成当前任务
public void CompletePersonTask(){
String taskId = "706";
processEngine.getTaskService()
.complete(taskId);
System.out.println("完成任务ID:"+taskId);
}
/*张三的流程执行完毕 再次执行张三流程就执行不出来  接下来就到了李四执行任务了 。
* 将前面张三执行当前任务的名称改成李四  用李四的任务ID完成任务, 李四的任务结束 接下来流程就到了 王五
* 王五和李四一样操作 李四的任务通过任务ID完成后 整个流程结束*/

}

Apusic Application Server技术白皮书

什么是应用服务器? 所有的企业级应用系统必须构建在一个完整的系统框架中,这个系统框架提供企业级计算所必须的五项关键技术: 交易完整性 可靠性 互用性 安全性 可伸缩性 提供这些底层关键服务的服务器叫应...
  • zdg
  • zdg
  • 2000-12-21 16:52:00
  • 3358

activiti入门列子一个简单的activiti请假流程

整个项目的目录结构:
  • a67474506
  • a67474506
  • 2014-07-29 12:47:53
  • 16927

Activiti工作流样例教程(请假-审批流程并向用户展示工作流实时过程图)

1 配置工作流。 启动activiti-explorer并登录。(用户名:kermit;密码:kermit) 选择 流程->流程设计工作区->新建模型 输入流程名称进入流程设计界面,绘制流程图: ...
  • xx_yTm
  • xx_yTm
  • 2014-12-24 11:34:32
  • 4056

Activiti入门列子一个简单的Activiti请假流程

整个项目的目录结构: pom.xml: [html] view plain copy project xmlns="http://maven.apache....
  • madison__
  • madison__
  • 2017-02-18 22:27:02
  • 1125

17.activiti工作流-请假流程图

图2 图3 老总审批如图2、3还有驳回的情况 通过condition来设置批准还是驳回...
  • qq_31776219
  • qq_31776219
  • 2017-06-06 00:07:03
  • 1608

activiti简单的请假流程java代码

  • 2017年11月06日 16:24
  • 21.86MB
  • 下载

用activiti 工作流 实现简单的请假 附带源码

新建一个 项目结构
  • lvsehuoyan
  • lvsehuoyan
  • 2014-08-06 23:19:00
  • 9350

Activiti Designer申请请假流程

1、实现图形2、实现XML
  • you23hai45
  • you23hai45
  • 2016-07-01 23:25:04
  • 4301

activiti实现请假流程

  • 2016年03月08日 11:08
  • 127KB
  • 下载

activiti快速入门--简单请假例子(1)

activiti流程开发快速入门,简单请假例子
  • u011320740
  • u011320740
  • 2016-11-01 11:38:24
  • 3334
收藏助手
不良信息举报
您举报文章:Activiti 完成的第一个请假审批流程
举报原因:
原因补充:

(最多只允许输入30个字)