Package com.founder.fix.fixflow.core.task

Examples of com.founder.fix.fixflow.core.task.TaskInstance


    assertEquals("SubProcessTest", subProcessInstance.getProcessDefinitionKey());
    //主流程的任务应该没有了,查询子流程中的任务
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    List<TaskInstance> taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstance.getId()).taskNotEnd().list();
    TaskInstance taskInstance = taskInstances.get(0);
    //启动子流程,并且令牌停留在UserTask_1节点
    assertEquals("UserTask_1", taskInstance.getNodeId());

    //下面是正常走SubProcess流程
    //===========================================================================
    // 创建一个启动并提交命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,可以从流程引擎配置中查询 启动并提交为startandsubmit
    expandTaskCommand.setCommandType("submit");
    // 设置提交人
    expandTaskCommand.setInitiator("1200119390");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务编号
    expandTaskCommand.setTaskId(taskInstance.getId());
    //设置数据变量
//        expandTaskCommand.setTransientVariables(transientVariables);

    // 执行这个启动并提交的命令,返回启动的流程实例
    processInstance = (ProcessInstance) taskService.expandTaskComplete(expandTaskCommand, null);
    // 拿到流程实例ID
    String subProcessInstanceId = subProcessInstance.getId();
    // 验证是否成功启动
    assertNotNull(subProcessInstanceId);
    // 查找 1200119390 的这个流程实例的当前独占任务
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //启动子流程,并且令牌停留在UserTask_2节点
    assertEquals("UserTask_2", taskInstance.getNodeId());
    //创建一个处理命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,通用按钮
    expandTaskCommand.setCommandType("general");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务ID
    expandTaskCommand.setTaskId(taskInstance.getId());
    //执行处理命令
    taskService.expandTaskComplete(expandTaskCommand, null);
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //令牌停留在UserTask_3节点
    assertEquals("UserTask_3", taskInstance.getNodeId());
    //创建一个处理命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,通用按钮
    expandTaskCommand.setCommandType("general");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务ID
    expandTaskCommand.setTaskId(taskInstance.getId());
    //执行处理命令
    taskService.expandTaskComplete(expandTaskCommand, null);
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //令牌停留在UserTask_4节点
    assertEquals("UserTask_4", taskInstance.getNodeId());
    //创建一个处理命令
    expandTaskCommand = new ExpandTaskCommand();
    // 设置流程名
    expandTaskCommand.setProcessDefinitionKey("SubProcessTest");
    // 设置流程的业务关联键
    expandTaskCommand.setBusinessKey("1234567890");
    // 命令类型,通用按钮
    expandTaskCommand.setCommandType("general");
    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置任务ID
    expandTaskCommand.setTaskId(taskInstance.getId());
    //执行处理命令
    taskService.expandTaskComplete(expandTaskCommand, null);
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(subProcessInstanceId).taskNotEnd().list();
    //全部走完,任务为空
    assertEquals(0, taskInstances.size());
    //===========================================================================
    //这个时候子流程走完会回到主流程上来
    taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(mainProcessInstanceId).taskNotEnd().list();
    taskInstance = taskInstances.get(0);
    //令牌停留在UserTask_2节点
    assertEquals("UserTask_2", taskInstance.getNodeId());
  }
View Full Code Here


    // 创建任务查询
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    List<TaskInstance> taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(processInstanceId).taskNotEnd().list();
    // 获取一条任务
    TaskInstance taskInstance = taskInstances.get(0);
    //验证这个待办是否为空
    assertNotNull(taskInstance);
    String nodeId = taskInstance.getNodeId();
    //验证流程实例是否在第二个节点
    assertEquals(nodeId, "UserTask_2");
   
    /*********5.打开第二个任务节点表单***********************/
   
    //获取任务节点上的formUrl
    String taskFormUrl = taskInstance.getFormUri();
    //验证是否为配置的add
    assertEquals("add", taskFormUrl);
   
    /*********6.获取第二个任务节点toolbar***********************/
    //创建流程定义查询
    ProcessDefinitionQuery processDefinitionQuery = modelService.createProcessDefinitionQuery();
    //获取流程定义
    ProcessDefinitionBehavior processDefinition = processDefinitionQuery.processDefinitionKey("TaskServiceNewTest").singleResult();
    //获取流程定义编号   页面上用的时候应该能拿到流程定义号,就不用这样取了。
    String processDefinitionId = processDefinition.getProcessDefinitionId();
    //获取节点上的处理命令
    List<TaskCommandInst> taskCommandList= taskService.getTaskCommandById(processDefinitionId, nodeId);
    assertNotNull(taskCommandList);
   
    /*********7.完成第二个节点处理命令***********************/
    TaskCommandInst generalTaskCommand = null;
    for(int i = 0;i < taskCommandList.size(); i++){
      if("general".equals(taskCommandList.get(i).getTaskCommandType())){
        generalTaskCommand = taskCommandList.get(i);
      }
    }
    assertNotNull(generalTaskCommand);
   
    //创建通用命令
    ExpandTaskCommand expandTaskCommandGeneral=new ExpandTaskCommand();
    //设置命令为领取任务
    expandTaskCommandGeneral.setCommandType("general");
    //设置命令的ID,需和节点上配置的按钮编号对应,会执行其中脚本
    expandTaskCommandGeneral.setUserCommandId("HandleCommand_2");
    //设置命令的处理任务号
    expandTaskCommandGeneral.setTaskId(taskInstance.getId());
    //领取任务
    taskService.expandTaskComplete(expandTaskCommandGeneral, null);
   
    //创建流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
View Full Code Here

  }

  public TaskInstance newTask(String taskId) {

    TaskInstance newTask = TaskInstanceEntity.create();
    newTask.setId(taskId);
    return newTask;
  }
View Full Code Here

    commandExecutor.execute(new DeleteTaskCmd(taskIds, cascade));
  }
 
  public void resumeTask(String taskId) {

    TaskInstance taskInstance=createTaskQuery().taskId(taskId).singleResult();
    taskInstance.resume();
    saveTask(taskInstance);
  }
View Full Code Here

    saveTask(taskInstance);
  }

  public void suspendTask(String taskId) {

    TaskInstance taskInstance=createTaskQuery().taskId(taskId).singleResult();
    taskInstance.suspend();
    saveTask(taskInstance);
  }
View Full Code Here

   */
  public List<TaskInstance> getPreviousAssignee() {

   
    List<TaskInstance> taskInstanceQueryToTemp=new ArrayList<TaskInstance>();
    TaskInstance taskInstanceQuery = getTaskInstance();
   
    if(taskInstanceQuery==null){
      taskInstanceQueryToTemp=CoreUtil.getRollBackTaskByToken(getToken());
    }
    else{
View Full Code Here

TOP

Related Classes of com.founder.fix.fixflow.core.task.TaskInstance

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.