Flowable 6.6.0 BPMN使用者指南 - 17 高階用例 - 17.7 高階查詢API:執行時和歷史任務查詢之間的無縫切換
《Flowable 6.6.0 BPMN使用者指南》
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 表單(Forms)
10 流程例項遷移
11 JPA
12 歷史(History)
13 身份管理(Identity management)
14 REST API
15 CDI整合
16 LDAP整合
17 高階用例
- 17.1 非同步執行器(Async Executor)
- 17.2 與流程解析掛鉤(Hooking into process parsing)
- 17.3 用於高併發的UUID ID生成器
- 17.4 多租戶(Multitenancy)
- 17.5 執行自定義SQL(Execute custom SQL)
- 17.6 採用ProcessEngineConfigurator 進行高階的流程引擎配置
- 17.7 高階查詢API:執行時和歷史任務查詢之間的無縫切換
- 17.8 重寫標準SessionFactory實現自定義身份管理
- 17.9 啟用安全的BPMN 2.0 xml
- 17.10 事件日誌記錄(Event logging)
- 17.11 禁用批量插入(Disabling bulk inserts)
- 17.12 安全指令碼(Secure Scripting)
- 17.13 日誌記錄會話[實驗性]
有關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 和HistoricTaskInstanceQuery 都有一個共享的父介面,其中包含所有常用操作(大多數操作都是通用的)。
這個公共介面是 org.flowable.engine.task.TaskInfoQuery類。org.flowable.engine.task.Task和org.flowable.engine.task.HistoricTaskInstance 都有一個共同的超類org.flowable.engine.task.TaskInfo(具有公共屬性),它是從類似list()方法返回的。但是,Java泛型有時弊大於利:如果您想直接使用TaskInfoQuery 型別,它應該如下所示:
TaskInfoQuery<? extends TaskInfoQuery<?,?>, ? extends TaskInfo> taskInfoQuery
為了“解決”這個問題,可用org.flowable.engine.task.TaskInfoQueryWrapper類來避免泛型(以下程式碼可來自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();
相關文章
- Flowable 6.6.0 BPMN使用者指南 - 17 高階用例 - 17.5 執行自定義SQL(Execute custom SQL)SQL
- Flowable查詢歷史任務
- 高階查詢
- ❖ MongoDB 高階查詢MongoDB
- Mongodb高階查詢MongoDB
- SQL高階查詢SQL
- 資料庫高階查詢之子查詢資料庫
- 理解索引(中):MySQL查詢過程和高階查詢索引MySql
- mysql多條件過濾查詢之mysq高階查詢MySql
- Flowable啟動流程例項和查詢任務以及完成任務
- mysql高階查詢語句MySql
- Hive高階操作-查詢操作Hive
- sql-server高階查詢SQLServer
- 「Oracle」Oracle高階查詢介紹Oracle
- 15、Oracle中的高階子查詢Oracle
- SpringBoot操作ES進行各種高階查詢Spring Boot
- SQL語言基礎(高階查詢)SQL
- [oracle] 查詢歷史會話、歷史執行計劃Oracle會話
- 查詢SQL Server的歷史執行記錄SQLServer
- oracle學習筆記(十一) 高階查詢Oracle筆記
- Google高階搜尋技巧之高階語法查詢指令Go
- flowable 查詢、完成、作廢、刪除 任務
- Flowable 6.6.0 BPMN使用者指南-(2)配置 - 2.9 作業執行器/2.10 作業執行器啟用
- SQL Server 查詢歷史執行的SQL語句SQLServer
- python資料庫-mongoDB的高階查詢操作(55)Python資料庫MongoDB
- Oracle 查詢佔用臨時表空間大的歷史會話和SQLOracle會話SQL
- MySQL 優化五(關聯查詢子查詢以及 in 的效率問題)(高階篇)MySql優化
- Go高階特性 15 | 執行時反射:字串和結構體之間轉換Go反射字串結構體
- mongoDB高階查詢這一篇就夠了MongoDB
- Flowable 6.6.0 BPMN使用者指南 - (5)Spring Boot - 5.9 Flowable Auto-configuration類 5.10 Flowable StartersSpring Boot
- Flowable 6.6.0 BPMN使用者指南-(1)入門 - 1.4.1 設定REST應用程式REST
- Flowable 6.6.0BPMN使用者指南(第二部分)BPMN 2.0的構造
- Flowable 6.6.0 BPMN使用者指南 -9 表單 - 9.1 表單定義
- 整合LlamaIndex與LangChain構建高階的查詢處理系統IndexLangChain
- oracle查詢sql執行耗時、執行時間、sql_idOracleSQL
- 查詢oracle正在執行的SQL和事務OracleSQL
- python資料庫-MySQL資料庫高階查詢操作(51)Python資料庫MySql
- Spring定時任務高階使用篇Spring