Activiti 는 어떻게 프로 세 스 를 시작 하고 프로 세 스 를 전진 시 킵 니까?

1.절차 와 임무 의 관계
다음은 간단 한 휴가 신청 절차 도 입 니 다.그 중 하 나 는 시작 사건,두 사용자 작업,하 나 는 끝 사건 입 니 다.

프로 세 스 를 시작 하면 activiti 는 첫 번 째 프로 세 스 노드 의 사용자 작업 을 자동 으로 만 들 고 첫 번 째 사용자 작업 프로 세 스 를 완성 하면 다음 프로 세 스 노드 로 전진 하여 두 번 째 노드 의 프로 세 스 작업 을 만 들 고 첫 번 째 프로 세 스 작업 을 삭제 합 니 다.
2.오픈 절차
activiti 는 프로 세 스 가 실 행 될 때 프로 세 스 인 스 턴 스 를 관리 하고 제어 하 는 Runtime Service 서비스 구성 요 소 를 제공 합 니 다.프로 세 스 를 시작 하려 면 api 를 사용 해 야 합 니 다.
2.1 프로 세 스에 따라 키 오픈 프로 세 스 정의
지난 블 로그 에 서 는 프로 세 스 배치 가 성공 하면 정보 표 act 를 배치 할 것 이 라 고 말 했다.re_deployment 와 프로 세 스 정의 표 actre_procdef 에 기록 을 삽입 합 니 다.프로 세 스 정의 key 는 actre_procdef 표 의 KEY필드 의 값.

표 에 KEY 가 있 을 때필드 가 같은 기록 일 때 activiti 는 버 전 번호 VERSION 을 선택 합 니 다.최신 프로 세 스 정의 기록 으로 프로 세 스 를 엽 니 다.

  /**
   *     ,      key    ,
   *                   key,activiti        VERSION_            
   */
  @Test
  public void test1() {
    String processDefinitionKey="process";
    //    ,        
    ProcessInstance processInstance = runtimeService.startProcessInstanceByKey(processDefinitionKey);
    System.out.println(processInstance);
  }
activiti 는 프로 세 스 인 스 턴 스 라 는 인터페이스 로 프로 세 스 를 시작 한 후 얻 은 프로 세 스 인 스 턴 스 를 설명 합 니 다.
3.사용자 퀘 스 트 조회
처음에 프로 세 스 를 시작 하면 첫 번 째 프로 세 스 노드 를 만 드 는 사용자 작업 이 라 고 말 했 기 때문에 activiti 가 제공 하 는 다른 서비스 구성 요소 인 TaskService 를 사용 하여 사용자 작업 을 조회 할 수 있 습 니 다.TaskService 에 서 는 작업 처리 와 관련 된 api 를 제공 합 니 다.
3.1 TaskQuery
activiti 는 이 인 터 페 이 스 를 제공 하여 작업 조회 와 관련 된 api 를 패키지 합 니 다.TaskService 를 통 해 구현 대상 을 가 져 올 수 있 습 니 다.TaskQuery taskQuery = taskService.createTaskQuery();그 다음 에 taskQuery 라 는 조회 대상 의 사용 은 activiti 의 다른 조회 대상 과 유사 하 므 로 먼저 조회 조건 을 지정 한 다음 에 조 회 를 실행 합 니 다.여기 서 나 는 임무 의 대리인 에 따라 조 회 를 진행 하 는데,하나의 임 무 는 단지 한 명의 대리인 만 있 을 수 있다.

  /**
   *               
   */
  @Test
  public void test2() {
    //            ,            
    Task task = taskService.createTaskQuery().taskAssignee("tom").singleResult();
    System.out.println(task);
  }
activiti 는 Task 로 퀘 스 트 대상 을 봉 합 니 다.대응 하 는 것 은 act 입 니 다.ru_task 이 표 의 기록.작업 을 만 든 후 이 표 에 기록 을 삽입 합 니 다.
4.임 무 를 완성 하 다
taskService 의 방법 으로 현재 작업 을 완성 하고 프로 세 스 를 다음 노드 로 이동 시 킬 수 있 습 니 다.퀘 스 트 완성 시 주어진 퀘 스 트 id 즉 actru_task 표 의 메 인 키 id 이기 때문에 작업 을 완성 할 때 검색 방법 을 통 해 주어진 조건 을 통 해 작업 대상 을 조회 한 다음 에 이 작업 을 완성 할 수 있 습 니 다.

  /**
   *     ,             ,             
   */
  @Test
  public void test3() {
    String taskId="4502";
    taskService.complete(taskId);
  }
이상 이 바로 본 고의 모든 내용 입 니 다.여러분 의 학습 에 도움 이 되 고 저 희 를 많이 응원 해 주 셨 으 면 좋 겠 습 니 다.

좋은 웹페이지 즐겨찾기