package askForLeave;
import java.util.List;
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;
public class AskForLeave {
/** 四个环节 :1、部署流程图 2、启动流程实例 3、查询个人任务 4、完成个人任务 */
//流程引擎是试用activiti的第一步,所有的service都是ProcessEngine创建的。所以定义为全局变量,便于引用。
ProcessEngine processEngine = ProcessEngines.getDefaultProcessEngine();
/**1、部署流程图 */
@Test
public void deploymentProcessDefinition() {
Deployment deployment = processEngine.getRepositoryService() //获取仓库的Service,不难理解,部署就是将流程放到仓库
.createDeployment() //创建一个部署对象
.name("请假流程") //给流程起名字
.addClasspathResource("diagrams/askForLeave.bpmn") //添加流程图的资源
//resource里面的参数是classpath下的url。不能写错
.addClasspathResource("diagrams/askForLeave.png")
.deploy(); //完成部署,会保存在act_re_deployment表中,可以去数据库确认是否多了条数据
/**所有repositoryService操作的表都是以act_re_开头*/
//输出一下,看看部署后的内容
System.out.println("部署ID:"+deployment.getId());
System.out.println("部署名称:"+deployment.getName());
}
/** 2、启动流程实例 */
@Test
public void startProcessInstance() {
//ProcessDefinitionKey就是画流程图时的全局Id
String processDefinitionKey = "askForLeave";
/**使用key启动的好处,默认是按照最新版本的流程定义启动。如果流程版本更新了,也就是说数据库中有多个叫askForLeave的流程,它会用最新的版本*/
ProcessInstance processInstance = processEngine.getRuntimeService()//与正在执行的流程实例和流程对象相关的Service
//使用id和key都能启动流程实例。key对应的是bpmn文件中properties的Id和表act_re_procdef中的KEY_字段
.startProcessInstanceByKey(processDefinitionKey);
System.out.println("流程实例ID:"+processInstance.getId());//流程实例ID
System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());//流程定义ID
}
/**3、查询个人任务 */
@Test
public void findMyPersenalTask() {
String assignee = "张三";
//这个Task是org.activiti.engine.task
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("##########################################");
}
}
}
/**4 完成我的任务。流程走完之后就变成历史,存放在history表中*/
@Test
public void completeMyPersonalTask() {
/*任务ID是act_ru_task的DESCRIPTION_字段*/
String taskId = "2504";
processEngine.getTaskService()//与正在执行的任务管理相关的Service
.complete(taskId);
System.out.println("完成任务,任务ID:"+taskId);
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
收起资源包目录
activitiTeach.rar (66个子文件)
activitiTeach
.project 438B
src
test
resources
java
activitiTeach
TestActiviti.java 1KB
main
resources
diagrams
askForLeave.bpmn 3KB
askForLeave.png 5KB
activiti.cfg.xml 5KB
log4j.properties 235B
java
askForLeave
AskForLeave.java 3KB
lib
activiti-json-converter-5.22.0.jar 98KB
commons-email-1.4.jar 50KB
spring-tx-4.1.5.RELEASE.jar 247KB
activiti-engine-5.22.0.jar 1.76MB
h2-1.3.176.jar 1.58MB
activiti-process-validation-5.22.0.jar 55KB
activiti-image-generator-5.22.0.jar 68KB
mysql-connector-java-5.1.10-bin.jar 707KB
activiti-rest-5.22.0.jar 327KB
spring-security-core-3.2.3.RELEASE.jar 351KB
slf4j-log4j12-1.7.6.jar 9KB
commons-lang3-3.3.2.jar 403KB
joda-time-2.6.jar 574KB
commons-dbcp-1.4.jar 157KB
javaGeom-0.11.1.jar 354KB
spring-jdbc-4.1.5.RELEASE.jar 417KB
jackson-annotations-2.2.3.jar 33KB
spring-orm-4.1.5.RELEASE.jar 368KB
activiti-simple-workflow-5.22.0.jar 118KB
spring-security-config-3.2.3.RELEASE.jar 397KB
log4j-1.2.17.jar 478KB
mybatis-3.3.0.jar 1.35MB
commons-pool-1.5.4.jar 94KB
commons-io-2.0.1.jar 156KB
slf4j-api-1.7.6.jar 28KB
spring-aop-4.1.5.RELEASE.jar 351KB
spring-webmvc-4.1.5.RELEASE.jar 763KB
spring-context-4.1.5.RELEASE.jar 1002KB
spring-security-crypto-3.2.3.RELEASE.jar 41KB
activiti-bpmn-model-5.22.0.jar 97KB
jackson-core-2.2.3.jar 188KB
commons-fileupload-1.2.2.jar 58KB
activiti-bpmn-converter-5.22.0.jar 194KB
aopalliance-1.0.jar 4KB
spring-expression-4.1.5.RELEASE.jar 253KB
activiti-common-rest-5.22.0.jar 14KB
jgraphx-1.10.4.1.jar 791KB
groovy-all-2.4.5.jar 6.67MB
activiti-spring-5.22.0.jar 37KB
jcl-over-slf4j-1.7.6.jar 16KB
spring-security-web-3.2.3.RELEASE.jar 334KB
activation-1.1.1.jar 68KB
jackson-databind-2.2.3.jar 846KB
spring-core-4.1.5.RELEASE.jar 985KB
activiti-bpmn-layout-5.22.0.jar 20KB
javax.mail-1.5.2.jar 558KB
jsr250-api-1.0.jar 6KB
spring-web-4.1.5.RELEASE.jar 702KB
spring-beans-4.1.5.RELEASE.jar 692KB
target
classes
askForLeave
AskForLeave.class 4KB
diagrams
askForLeave.bpmn 3KB
askForLeave.png 5KB
activiti.cfg.xml 5KB
log4j.properties 235B
test-classes
activitiTeach
TestActiviti.class 2KB
.settings
org.eclipse.jdt.core.prefs 598B
pom.xml 2KB
.classpath 4KB
.bpmn
src
main
resources
diagrams
askForLeave.bpmn2d 14KB
共 66 条
- 1
资源评论
- 卜行知2017-11-10没有数据库。。。菜鸟丨2017-11-10ProcessEngines.getDefaultProcessEngine()时,将自动创建数据库,代码里有这段
菜鸟丨
- 粉丝: 7
- 资源: 13
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功