Flowable 6.6.0 BPMN 사용자 가이드 - 17 고급 용례 - 17.7 고급 조회 API: 실행 시 와 과거 작업 조회 사이 의 틈새 없 는 전환
5452 단어 Flowable6.6.0BPMN 사용자 가이드-9-18
1. 입문
2. 설정
3 The Flowable API
4 Flowable 6.6.0 BPMN 사용자 가이드 - (4) Spring 집성
5 Spring Boot
6 배치
7 BPMN 2.0 안내
8 BPMN 2.0 의 구조
9 양식 (양식)
10 프로 세 스 인 스 턴 스 이전
11 JPA
12 역사 (역사)
13 신분 관리 (ID 관리)
14 REST API
15 CDI 통합
16 LDAP 통합
17 고급 용례
《 Flowable 문서 대전 》
17.7 고급 조회 API: 실행 시 와 과거 작업 조회 사이 의 틈새 없 는 전환
One core component of any BPM user interface is the task list. Typically, end users work on open, runtime tasks, filtering their inbox with various setting. Often also the historic tasks need to be displayed in those lists, with similar filtering. To make that code-wise easier, the TaskQuery and HistoricTaskInstanceQuery both have a shared parent interface, which contains all common operations (and most of the operations are common).
This common interface is the org.flowable.engine.task.TaskInfoQuery class. Both org.flowable.engine.task.Task and org.flowable.engine.task.HistoricTaskInstance have a common superclass org.flowable.engine.task.TaskInfo (with common properties) which is returned from e.g. the list() method. However, Java generics are sometimes more harming than helping: if you want to use the TaskInfoQuery type directly, it would look like this: TaskInfoQuery extends TaskInfoQuery,?>, ? extends TaskInfo> taskInfoQuery Ugh, Right. To ‘solve’ this, a org.flowable.engine.task.TaskInfoQueryWrapper class that can be used to avoid the generics (the following code could come from REST code that returns a task list where the user can switch between open and completed tasks):
모든 BPM 사용자 인터페이스의 핵심 구성 요 소 는 작업 목록 입 니 다.일반적으로 최종 사용자 가 열 린 실행 시 작업 을 처리 하고 각종 설정 을 사용 하여 수신 함 을 걸 러 냅 니 다.보통 과거 기록 작업 도 비슷 한 필 터 를 통 해 목록 에 표시 해 야 합 니 다.코드 를 더욱 간단하게 하기 위해 TaskQuery 와 Historic Task Instance Query 는 공 유 된 부모 인 터 페 이 스 를 가지 고 있 습 니 다. 그 중에서 모든 일반적인 작업 (대부분의 작업 은 통용 되 는 것) 을 포함 합 니 다.
이 공공 인 터 페 이 스 는 org. flowable. engine. task. Task InfoQuery 류 입 니 다.org. flowable. engine. task. Task 와 org. flowable. engine. task. Historic Task Instance 는 모두 공 통 된 초 류 org. flowable. engine. task. Task Info (공공 속성 이 있 음) 를 가지 고 있 으 며, list () 와 유사 한 방법 으로 되 돌 아 옵 니 다.그러나 자바 범 형 은 장단 점 이 이익 보다 큽 니 다. TaskInfoQuery 유형 을 직접 사용 하려 면 다음 과 같 아야 합 니 다.
TaskInfoQuery extends TaskInfoQuery,?>, ? extends TaskInfo > taskInfoQuery 는 이 문 제 를 해결 하기 위해 org. flowable. engine. task. TaskInfoQuery Wrapper 류 를 사용 하여 범 형 을 피 할 수 있 습 니 다 (아래 코드 는 REST 코드 에서 나 올 수 있 습 니 다. 이 코드 는 작업 목록 으로 돌아 갑 니 다. 사용 자 는 열 린 작업 과 완 료 된 작업 사이 에서 전환 할 수 있 습 니 다).
TaskInfoQueryWrapper taskInfoQueryWrapper = null;
if (runtimeQuery) {
taskInfoQueryWrapper = new TaskInfoQueryWrapper(taskService.createTaskQuery());
} else {
taskInfoQueryWrapper = new TaskInfoQueryWrapper(historyService.createHistoricTaskInstanceQuery());
}
List<? extends TaskInfo> taskInfos = taskInfoQueryWrapper.getTaskInfoQuery().or()
.taskNameLike("%k1%")
.taskDueAfter(new Date(now.getTime() + (3 * 24L * 60L * 60L * 1000L)))
.endOr()
.list();