Activiti流程变量

本文以学生请假讲解

再Eclipse上画一个图,如果工具上没装画图插件请点击点击打开链接


首先创建流程部署

 /**
     * 部署流程定义
     */
    @Test
    public void deploy(){
        // 获取部署对象
        Deployment deployment=processEngine.getRepositoryService() // 部署Service
                     .createDeployment()  // 创建部署
                     .addClasspathResource("diagrams/StudentReason.bpmn")  // 加载资源文件
                     .addClasspathResource("diagrams/StudentReason.png")   // 加载资源文件
                     .name("学生请假流程")  // 流程名称
                     .deploy(); // 部署
        System.out.println("流程部署ID:"+deployment.getId());
        System.out.println("流程部署Name:"+deployment.getName());
    }

启动流程实例

 /**
     * 启动流程实例
     */
    @Test
    public void start(){
        // 启动并获取流程实例
        ProcessInstance processInstance=processEngine.getRuntimeService() // 运行时流程实例Service
            .startProcessInstanceByKey("myProcess"); // 流程定义表的KEY字段值
        System.out.println("流程实例ID:"+processInstance.getId());
        System.out.println("流程定义ID:"+processInstance.getProcessDefinitionId());
    }

此时流程已经到达  请假审批

分配任务

/**
	 * 查看任务
	 */
	@Test
	public void findTask() {
		List<Task> list = processEngine.getTaskService()
		.createTaskQuery().taskAssignee("gcx").list();
		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());
			
		}
		
	}

设置流程局部变量

/**
     * 设置流程变量以及值
     */
    @Test
    public void setVariablesValues(){
        TaskService taskService=processEngine.getTaskService(); // 任务Service
        String taskId="35004"; // 任务id
        taskService.setVariableLocal(taskId, "days", 2); // 存Integer类型
        taskService.setVariable(taskId, "date", new Date()); // 存日期类型
        taskService.setVariable(taskId, "reason", "发烧"); // 存字符串
        Student student=new Student();
        student.setId(1);
        student.setName("gcx");
        taskService.setVariable(taskId, "student", student);  // 存序列化对象
    }

完成任务

 /**
     * 完成任务
     */
    @Test
    public void completeTask(){
        processEngine.getTaskService() // 任务相关Service
                .complete("35004"); // 指定要完成的任务ID
    }

此时流程到达  领导审批

再次执行查看任务

/**
	 * 查看任务
	 */
	@Test
	public void findTask() {
		List<Task> list = processEngine.getTaskService()
		.createTaskQuery().taskAssignee("zhangsan").list();
		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());
			
		}
		
	}

查看流程变量

 /**
     * 获取流程变量以及值
     */
    @Test
    public void getVariablesValue(){
        TaskService taskService=processEngine.getTaskService(); // 任务Service
        String taskId="35004"; // 任务id
        Integer days=(Integer) taskService.getVariable(taskId, "days");
        Date date=(Date) taskService.getVariable(taskId, "date");
        String reason=(String) taskService.getVariable(taskId, "reason");
        Student student=(Student) taskService.getVariable(taskId, "student");
        System.out.println("请假天数:"+days);
        System.out.println("请假日期:"+date);
        System.out.println("请假原因:"+reason);
        System.out.println("请假对象:"+student.getId()+","+student.getName());
    }

在完成任务一个完整的流程执行完毕

/**
     * 完成任务
     */
    @Test
    public void completeTask(){
        processEngine.getTaskService() // 任务相关Service
                .complete("40002"); // 指定要完成的任务ID
    }

最终历史记录表有对应的记录完成



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值