Package org.activiti.engine.runtime

Examples of org.activiti.engine.runtime.ProcessInstance


    IdentityService identityService = processEngine.getIdentityService();
    HistoryService historyService = processEngine.getHistoryService();
    FormService formService = processEngine.getFormService();

    Map<String, Object> variableMap = new HashMap<String, Object>();
    ProcessInstance instance = runtimeService.startProcessInstanceByKey("MultitaskingProcess", variableMap);

    File f = new File("processInstanceImage.png");
    File f2 = new File("processDefintion.png");
    FileOutputStream fos1 = null;
    FileOutputStream fos2 = null;
    ProcessDefinitionEntity processDefinition = (ProcessDefinitionEntity) ((RepositoryServiceImpl) repositoryService).getDeployedProcessDefinition(instance.getProcessDefinitionId());
    System.out.println("id" + instance.getId());
    List<Execution> executions = runtimeService.createExecutionQuery().processInstanceId(instance.getId()).list();
    List<String> activitiIds = runtimeService.getActiveActivityIds(instance.getId());
    for (String s : activitiIds) {
      System.out.println("s:" + s);
    }

    if (processDefinition != null&& processDefinition.isGraphicalNotationDefined()) {
View Full Code Here


        final Map<String, Object> variables = new HashMap<String, Object>();
        variables.put(USER_TO, userTO);
        variables.put(ENABLED, enabled);

        final ProcessInstance processInstance;
        try {
            processInstance = runtimeService.startProcessInstanceByKey("userWorkflow", variables);
        } catch (ActivitiException e) {
            throw new WorkflowException(e);
        }

        SyncopeUser user = (SyncopeUser) runtimeService.getVariable(processInstance.getProcessInstanceId(),
                SYNCOPE_USER);

        // this will make SyncopeUserValidator not to consider
        // password policies at all
        if (disablePwdPolicyCheck) {
            user.removeClearPassword();
        }

        updateStatus(user);
        user = userDAO.save(user);

        Boolean propagateEnable = (Boolean) runtimeService.getVariable(processInstance.getProcessInstanceId(),
                PROPAGATE_ENABLE);

        if (propagateEnable == null) {
            propagateEnable = enabled;
        }

        // save resources to be propagated and password for later -
        // after form submission - propagation
        PropagationByResource propByRes = new PropagationByResource();
        propByRes.set(PropagationOperation.CREATE, user.getResourceNames());

        if (waitingForForm(user)) {
            runtimeService.setVariable(processInstance.getProcessInstanceId(), PROP_BY_RESOURCE, propByRes);
            propByRes = null;

            if (StringUtils.isNotBlank(userTO.getPassword())) {
                runtimeService.setVariable(
                        processInstance.getProcessInstanceId(), ENCRYPTED_PWD, encrypt(userTO.getPassword()));
            }
        }

        return new WorkflowResult<Map.Entry<Long, Boolean>>(new DefaultMapEntry(user.getId(), propagateEnable),
                propByRes, getPerformedTasks(user));
View Full Code Here

  @Test
  public void testSingleCandidateGroup() {

    // Deploy and start process
    RuntimeService runtimeService = activitiRule.getRuntimeService();
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("singleCandidateGroup");

    // Task should not yet be assigned to kermit
    TaskService taskService = activitiRule.getTaskService();
    List<Task> tasks = taskService
      .createTaskQuery()
      .taskAssignee(KERMIT)
      .list();
    assertTrue(tasks.isEmpty());

    // The task should be visible in the candidate task list
    tasks = taskService.createTaskQuery().taskCandidateUser(KERMIT).list();
    assertEquals(1, tasks.size());
    Task task = tasks.get(0);
    assertEquals("Pay out expenses", task.getName());

    // Claim the task
    taskService.claim(task.getId(), KERMIT);

    // The task must now be gone from the candidate task list
    tasks = taskService.createTaskQuery().taskCandidateUser(KERMIT).list();
    assertTrue(tasks.isEmpty());

    // The task will be visible on the personal task list
    tasks = taskService
      .createTaskQuery()
      .taskAssignee(KERMIT)
      .list();
    assertEquals(1, tasks.size());
    task = tasks.get(0);
    assertEquals("Pay out expenses", task.getName());

    // Completing the task ends the process
    taskService.complete(task.getId());

    assertNull("Process ended", activitiRule
               .getRuntimeService()
               .createProcessInstanceQuery()
               .processInstanceId(processInstance.getId())
               .singleResult());
  }
View Full Code Here

  @Test
  public void testMultipleCandidateGroups() {

    // Deploy and start process
    RuntimeService runtimeService = activitiRule.getRuntimeService();
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("multipleCandidatesGroup");

    // Task should not yet be assigned to anyone
    TaskService taskService = activitiRule.getTaskService();
    List<Task> tasks = taskService
      .createTaskQuery()
      .taskAssignee(KERMIT)
      .list();
   
    assertTrue(tasks.isEmpty());
    tasks = taskService
      .createTaskQuery()
      .taskAssignee(GONZO)
      .list();
   
    assertTrue(tasks.isEmpty());

    // The task should be visible in the candidate task list of Gonzo and Kermit
    // and anyone in the management/accountancy group
    assertEquals(1, taskService.createTaskQuery().taskCandidateUser(KERMIT).list().size());
    assertEquals(1, taskService.createTaskQuery().taskCandidateUser(GONZO).list().size());
    assertEquals(1, taskService.createTaskQuery().taskCandidateGroup("management").count());
    assertEquals(1, taskService.createTaskQuery().taskCandidateGroup("accountancy").count());
    assertEquals(0, taskService.createTaskQuery().taskCandidateGroup("sales").count());

    // Gonzo claims the task
    tasks = taskService.createTaskQuery().taskCandidateUser(GONZO).list();
    Task task = tasks.get(0);
    assertEquals("Approve expenses", task.getName());
    taskService.claim(task.getId(), GONZO);

    // The task must now be gone from the candidate task lists
    assertTrue(taskService.createTaskQuery().taskCandidateUser(KERMIT).list().isEmpty());
    assertTrue(taskService.createTaskQuery().taskCandidateUser(GONZO).list().isEmpty());
    assertEquals(0, taskService.createTaskQuery().taskCandidateGroup("management").count());

    // The task will be visible on the personal task list of Gonzo
    assertEquals(1, taskService
      .createTaskQuery()
      .taskAssignee(GONZO)
      .count());

    // But not on the personal task list of (for example) Kermit
    assertEquals(0, taskService.createTaskQuery().taskAssignee(KERMIT).count());

    // Completing the task ends the process
    taskService.complete(task.getId());

    assertNull("Process ended", activitiRule
               .getRuntimeService()
               .createProcessInstanceQuery()
               .processInstanceId(processInstance.getId())
               .singleResult());
  }
View Full Code Here

    "org/activiti/examples/bpmn/usertask/FinancialReportProcess.bpmn20.xml"})
  @Test
  public void testProcess() {
   
    RuntimeService runtimeService = activitiRule.getRuntimeService();
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("financialReport");
   
    TaskService taskService = activitiRule.getTaskService();
    List<Task> tasks = taskService.createTaskQuery().taskCandidateUser("fozzie").list();
    assertEquals(1, tasks.size());
    Task task = tasks.get(0);
    assertEquals("Write monthly financial report", task.getName());
   
    taskService.claim(task.getId(), "fozzie");
    tasks = taskService
      .createTaskQuery()
      .taskAssignee("fozzie")
      .list();
   
    assertEquals(1, tasks.size());
    taskService.complete(task.getId());

    tasks = taskService.createTaskQuery().taskCandidateUser("fozzie").list();
    assertEquals(0, tasks.size());
    tasks = taskService.createTaskQuery().taskCandidateUser("kermit").list();
    assertEquals(1, tasks.size());
    assertEquals("Verify monthly financial report", tasks.get(0).getName());
    taskService.complete(tasks.get(0).getId());

    assertNull("Process ended", activitiRule
               .getRuntimeService()
               .createProcessInstanceQuery()
               .processInstanceId(processInstance.getId())
               .singleResult());
  }
View Full Code Here

  @Test
  public void testTaskAssignee() {   
   
    // Start process instance
    RuntimeService runtimeService = activitiRule.getRuntimeService();
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey("taskAssigneeExampleProcess");

    // Get task list
    TaskService taskService = activitiRule.getTaskService();
    List<Task> tasks = taskService
      .createTaskQuery()
      .taskAssignee("kermit")
      .list();
    assertEquals(1, tasks.size());
    Task myTask = tasks.get(0);
    assertEquals("Schedule meeting", myTask.getName());
    assertEquals("Schedule an engineering meeting for next week with the new hire.", myTask.getDescription());

    // Complete task. Process is now finished
    taskService.complete(myTask.getId());
    // assert if the process instance completed
    assertNull("Process ended", activitiRule
               .getRuntimeService()
               .createProcessInstanceQuery()
               .processInstanceId(processInstance.getId())
               .singleResult());
  }
View Full Code Here

    }
   
    @Override
    @Transactional
    public E createEntityProcess(E processEntity) {
        ProcessInstance solutionProcess = runtimeService.startProcessInstanceByKey(getProcessKey());
        processEntity.setProcessInstanceId(solutionProcess.getProcessInstanceId());
        processEntityService.persist(processEntity);
        return processEntity;
    }
View Full Code Here

   
    //用来设置启动流程的人员ID,引擎会自动把用户ID保存到activiti:initiator中
    if( !StringUtils.isEmpty(userId) )
      identityService.setAuthenticatedUserId(userId);
   
    ProcessInstance procInst = runtimeService.startProcessInstanceByKey(
        procDefKey,bizKey,variables );
   
    if( StringUtils.isNotEmpty(bizName) ){
      processAttributeManager.save(procDefKey,procInst.getId()
          ,bizKey, bizName, userId);//TODO保存流程属性
     
      log.debug("保存流程属性:ProcDefKey[{}],BizKey[{}],BizName[{}]"
          ,new Object[]{procDefKey,bizKey,bizName});
    }
   
    //保存操作日志
    taskLogManager.save(procInst.getId()
        ,procInst.getActivityId(),ExecutionType.SUBMIT,userId,"启动流程");
     
    return procInst;
  }
View Full Code Here

   */
  protected void startWorkflow(LoginAccountChange lac
      ,LoginAccount account,LoginAccount operator){
    String bizName = "登录账号审核流程_"+account.getLoginName()
        +"_"+operator.getLoginName();
    ProcessInstance pi = workflowManager.start(WorkflowType.SEC_ACCT.getName()
        ,lac.getId(),bizName,operator.getLoginName(),null);
   
    //有经办人,直接提交到下一个处理流程(启动流程后,根据 bizKey 查询Task,然后提交 )
    workflowManager.claimAndComplete(pi.getProcessInstanceId(), operator.getLoginName() );
  }
View Full Code Here

      return INPUT;
    }
   
    String procInstId = process.getProcessInstanceId();
   
    ProcessInstance procIntance = workflowManager.getProcessInstance(
        process.getProcessInstanceId() );
    if( procIntance == null ){
      this.saveErrorMessage("流程实例["+process.getProcessInstanceId()+"]不存在!");
      return INPUT;
    }
   
    BpmnModel bpmnModel = workflowManager.getBpmnModel( procIntance.getProcessDefinitionId() );
    if( bpmnModel == null ){
      this.saveErrorMessage("流程定义ID["+
          process.getProcessDefinitionId()+"]对应BpmnModel数据不存在!");
      return INPUT;
    }
View Full Code Here

TOP

Related Classes of org.activiti.engine.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.