Package com.founder.fix.fixflow.core.runtime

Examples of com.founder.fix.fixflow.core.runtime.ProcessInstance


    // 设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //设置数据变量
//    expandTaskCommand.setTransientVariables(transientVariables);
    // 执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance) taskService.expandTaskComplete(expandTaskCommand, null);
    // 拿到流程实例ID
    String mainProcessInstanceId = processInstance.getId();
    // 验证是否成功启动
    assertNotNull(mainProcessInstanceId);
    //创建流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //拿到子流程实例
    ProcessInstance subProcessInstance = processInstanceQuery.processDefinitionKey("SubProcessTest").singleResult();
    //验证是否为设置的子流程
    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);
View Full Code Here


    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId(startAndSubmitCommand.getId());
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
   
    /*********4.获取第二个任务节点的任务【查询代办任务】***********************/
    // 创建任务查询
    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();
    //获得上面的流程实例
    ProcessInstance process = processInstanceQuery.processInstanceId(processInstanceId).singleResult();
    //验证流程实例是否已经结束,结束说明通用按钮已经驱动流程离开当前节点。
    assertTrue(process.hasEnded());
   
    /*********8.流程结束,查询流程追踪。***********************/
   
    //重置任务实例查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
View Full Code Here

      //设置变量,流程线条上用到,amount<300时走独占任务,否则都共享任务
      int amount = 280+i;
      mapVariables.put("amount", amount);
      expandTaskCommand.setTransientVariables(mapVariables);
      //执行这个启动并提交的命令,返回启动的流程实例
      ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
      String processInstanceId = processInstance.getId();
      //取得第六个流程启动时的时间,用来验证大于或小于开始时间的查询
      if(i == 6){
        date = processInstance.getStartTime();
      }
      //验证是否成功启动
      assertNotNull(processInstanceId);
      //暂停1000毫秒,用来验证order by
      Thread.sleep(1000);
View Full Code Here

      //设置提交人
      expandTaskCommand.setInitiator("1200119390");
      //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
      expandTaskCommand.setUserCommandId("HandleCommand_2");
      //执行这个启动并提交的命令,返回启动的流程实例
      ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
      String processInstanceId = processInstance.getId();
      //验证是否成功启动
      assertNotNull(processInstanceId);
    }
   
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    TaskInstance taskInstance = taskQuery.taskAssignee("1200119390").processDefinitionKey("TaskServiceNewTest").taskNotEnd().list().get(0);
    //创建通用命令
    ExpandTaskCommand expandTaskCommandSuspendProcessInstance=new ExpandTaskCommand();
    //设置命令为暂停实例
    expandTaskCommandSuspendProcessInstance.setCommandType("general");
    //设置命令按钮的iD,与节点上处理命令设置一致
    expandTaskCommandSuspendProcessInstance.setUserCommandId("HandleCommand_2");
    //设置命令的处理任务号
    expandTaskCommandSuspendProcessInstance.setTaskId(taskInstance.getId());
    //执行这个暂停实例的命令
    taskService.expandTaskComplete(expandTaskCommandSuspendProcessInstance, null);
    //创建流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //获取TaskServiceNewTest的流程实例
    List<ProcessInstance> list = processInstanceQuery.processDefinitionKey("TaskServiceNewTest").list();
    //验证是否为2
    assertEquals(2, list.size());
   
    /**********************本例子通过扩展查询的方法获取TaskServiceNewTest流程的INSTANCE_STATUS = RUNNING的流程实例***************************/
    //重置流程实例查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //创建扩展查询
    QueryExpandTo queryExpandTo = new QueryExpandTo();
    //常见扩展查询的参数列表
    List<Object> whereSqlObj = new ArrayList<Object>();
    //添加扩展wheresql语句    (本例子扩展方法查询正在运行的流程实例)
    queryExpandTo.setWhereSql("INSTANCE_STATUS = ?");
    //增加扩展wheresql的参数
    whereSqlObj.add("RUNNING");
    queryExpandTo.setWhereSqlObj(whereSqlObj);
    //增加扩展查询
    processInstanceQuery.queryExpandTo(queryExpandTo);
    //查询TaskServiceNewTest经过扩展查询后的结果
    processInstanceQuery.processDefinitionKey("TaskServiceNewTest");
    list = processInstanceQuery.list();
    //验证是否为1个
    assertEquals(1, list.size());
   
    /**********************本例子通过扩展查询的方法获取流程定义表中的procecss_name和resource_name字段***************************/
    //重置流程实例查询
    processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //创建扩展查询
    queryExpandTo = new QueryExpandTo();
    //添加扩展的字段
    queryExpandTo.setFieldSql("fixflow_def_processdefinition.PROCESS_NAME,fixflow_def_processdefinition.RESOURCE_NAME");
    //增加扩展查询的left join语句
    queryExpandTo.setLeftJoinSql("left join fixflow_def_processdefinition on processdefinition_id = fixflow_def_processdefinition.process_id");
    //增加扩展查询
    processInstanceQuery.queryExpandTo(queryExpandTo);
    //查询TaskServiceNewTest经过扩展查询后的结果
    processInstanceQuery.processDefinitionKey("TaskServiceNewTest");
    list = processInstanceQuery.list();
    //获取第一个流程实例结果
    ProcessInstance  processInstance = list.get(0);
    //获取扩展查询的字段
    String process_name = (String)processInstance.getExtensionField("PROCESS_NAME");
    String RESOURCE_NAME = (String)processInstance.getExtensionField("RESOURCE_NAME");
    //验证获得的扩展字段是否正确
    assertEquals("流程名称", process_name);
    assertEquals("com/founder/fix/fixflow/test/engine/api/task/TaskServiceNewTest.bpmn", RESOURCE_NAME);
  }
View Full Code Here

      }else{
        variableMap.put("queryVariable", "查询变量2");
      }
      //expandTaskCommand.setVariables(variableMap);
      //执行这个启动并提交的命令,返回启动的流程实例
      ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
      String processInstanceId = processInstance.getId();
      //验证是否成功启动
      assertNotNull(processInstanceId);
    }
   
    //重置流程实例查询
View Full Code Here

    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
   
    // 创建任务查询
    TaskQuery taskQuery = taskService.createTaskQuery();
View Full Code Here

    //设置业务关联键
    startProcessInstanceCommand.setBusinessKey("BK_testStartProcessInstanceByKey");
    //设置流程启动人
    startProcessInstanceCommand.setStartAuthor("1200119390");
    //启动流程,只启动流程 ,流程停在第一步
    ProcessInstance processInstanceQueryTo = runtimeService
        .noneStartProcessInstance(startProcessInstanceCommand);
    String processInstanceId = processInstanceQueryTo.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
    TaskQuery taskQuery = taskService.createTaskQuery();
    // 查找 1200119390 的这个流程实例的当前独占任务
    List<TaskInstance> taskInstances = taskQuery.taskAssignee("1200119390").processInstanceId(processInstanceId).taskNotEnd().list();
View Full Code Here

    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
   
    // 创建任务查询
    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");
   
    //创建通用命令
    ExpandTaskCommand expandTaskCommandGeneral=new ExpandTaskCommand();
    //设置命令为领取任务
    expandTaskCommandGeneral.setCommandType("general");
    //设置命令的ID,需和节点上配置的按钮编号对应,会执行其中脚本
    expandTaskCommandGeneral.setUserCommandId("HandleCommand_2");
    //设置命令的处理任务号
    expandTaskCommandGeneral.setTaskId(taskInstance.getId());
    //领取任务
    taskService.expandTaskComplete(expandTaskCommandGeneral, null);
   
    //创建流程实例查询
    ProcessInstanceQuery processInstanceQuery = runtimeService.createProcessInstanceQuery();
    //获得上面的流程实例
    ProcessInstance process = processInstanceQuery.processInstanceId(processInstanceId).singleResult();
    //验证流程实例是否已经结束,结束说明通用按钮已经驱动流程离开当前节点。
    assertTrue(process.hasEnded());
  }
View Full Code Here

    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
   
    // 创建任务查询
    TaskQuery taskQuery = taskService.createTaskQuery();
View Full Code Here

    //设置提交人
    expandTaskCommand.setInitiator("1200119390");
    //设置命令的id,需和节点上配置的按钮编号对应,会执行按钮中的脚本。
    expandTaskCommand.setUserCommandId("HandleCommand_2");
    //执行这个启动并提交的命令,返回启动的流程实例
    ProcessInstance processInstance = (ProcessInstance)taskService.expandTaskComplete(expandTaskCommand, null);
    String processInstanceId = processInstance.getId();
    //验证是否成功启动
    assertNotNull(processInstanceId);
   
    // 创建任务查询
    TaskQuery taskQuery = taskService.createTaskQuery();
View Full Code Here

TOP

Related Classes of com.founder.fix.fixflow.core.runtime.ProcessInstance

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.