探索 Flowable 后端表達式:簡化流程自動化

在這里插入圖片描述

什么是后端表達式?

在 Flowable 中,后端表達式是一種強大的工具,用于在流程、案例或決策表執行期間動態獲取或設置變量。它還能實現自定義邏輯,或將復雜邏輯委托……

后端表達式在 Flowable 的后端運行,無法訪問前端數據,但在 Flowable Design 中,你可以通過帶有 ?? 閃電圖標的字段輕松使用它們。Flowable 采用統一的表達式語言(UEL),以 ${...} 格式書寫,語法簡單且功能豐富。

表達式類型

后端表達式分為兩種:

  • 值表達式:返回一個值,如布爾、字符串或數字。例如:${variable.property}
  • 方法表達式:調用方法,可帶參數。例如:${bean.setPropertyValue('newValue')}

任何暴露為 Spring Bean 的服務都可以在表達式中使用,極大擴展了靈活性。

核心功能與關鍵字

Flowable 支持上下文相關的對象,如 root(流程或案例實例的頂部對象)和 parent(上層對象)。在 BPMN 中,你還可以使用 execution(當前執行路徑)、task(當前任務)以及 authenticatedUserId(當前用戶 ID)。CMMN 則支持 caseInstanceplanItemInstance

常用屬性示例

  • 流程實例${root.businessKey} 獲取業務鍵。
  • 案例實例${parent.name} 獲取案例名稱。
  • 定義${definition.version} 獲取模型版本。

實用函數

Flowable 提供了豐富的內置函數,簡化變量操作、用戶分配和數據處理:

  • 變量操作:如 ${var:getOrDefault(varName, defaultValue)} 獲取變量或默認值。
  • 流程分配:如 ${bpmn:setAssignee(processInstanceId, userId)} 設置任務受理人。
  • 字符串處理:如 ${flwStringUtils.toLowerCase(text)} 轉換小寫。
  • 日期時間:如 ${flwTimeUtils.now()} 獲取當前時間。
  • JSON 處理:如 ${json:array()} 創建空 JSON 數組。

實際應用場景

假設你有一個流程需要根據部門動態分配任務。通過表達式 ${departmentResolver.getAssignee(execution)},你可以調用自定義的 Spring Bean,根據部門 ID 查找成員并設置任務受理人。這樣,流程就能靈活適應不同場景。

自定義表達式

想讓表達式更強大?Flowable 支持通過 Spring Bean 或自定義 ELResolver 擴展功能。例如,你可以創建一個解析器,將 ${departmentAssignee} 直接映射到部門受理人,簡化流程定義。

為什么選擇 Flowable?

Flowable 的后端表達式讓流程自動化更智能、更靈活。無論是動態任務分配還是復雜邏輯處理,它都能輕松應對。

想深入了解?訪問 Flowable中文文檔 查看完整文檔和示例,解鎖更多可能性!

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/77954.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/77954.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/77954.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

【Lua】Lua 入門知識點總結

Lua 入門學習筆記 本教程旨在幫助有編程基礎的學習者快速入門Lua編程語言。包括Lua中變量的聲明與使用,包括全局變量和局部變量的區別,以及nil類型的概念、數值型、字符串和函數的基本操作,包括16進制表示、科學計數法、字符串連接、函數聲明…

符號速率估計——小波變換法

[TOC]符號速率估計——小波變換法 一、原理 1.Haar小波變換 小波變換在信號處理領域被成為數學顯微鏡,不同于傅里葉變換,小波變換可以觀測信號隨時間變換的頻譜特征,因此,常用于時頻分析。 ??當小波變換前后位置處于同一個碼元…

android contentProvider 踩坑日記

寫此筆記原因 學習《第一行代碼》到第8章節實現provider時踩了一些坑,因此記錄下來給后來人和自己一個提示,僅此而已。 包含內容 Sqlite數據庫CURD內容provider界面provider項目中書籍管理provider實現邏輯用adb shell確認providercontentResolver接收…

Eureka、LoadBalance和Nacos

Eureka、LoadBalance和Nacos 一.Eureka引入1.注冊中心2.CAP理論3.常見的注冊中心 二.Eureka介紹1.搭建Eureka Server 注冊中心2.搭建服務注冊3.服務發現 三.負載均衡LoadBalance1.問題引入2.服務端負載均衡3.客戶端負載均衡4.Spring Cloud LoadBalancer1).快速上手2)負載均衡策…

【開關電源】關于GaN反激電源開關噪聲

文章目錄 0 前言1 設計信息1.1 設計需求1.2 原理圖1.3 電源表現 2 原因分析3 橫向對比TI UCG28826 (GaN)采購的普通QR反激變換器 4 總結 0 前言 筆者原計劃設計一款省電的,效率尚可的,穩定的2路輸出反激電源,用于系統…

DOCA介紹

本文分為兩個部分: DOCA及BlueField介紹如何運行DOCA應用,這里以DNS_Filter為例子做大致介紹。 DOCA及BlueField介紹: 現代企業數據中心是軟件定義的、完全可編程的基礎設施,旨在服務于跨云、核心和邊緣環境的高度分布式應用工作…

mybatis mapper.xml中使用枚舉

重點:application.propertis配置類 #TypeEnumHandler 這個類的包名,不是全路徑 mybatis.type-handlers-packagecom.fan.test.handler兩個枚舉類: public enum StatusEnum {DELETED(0),ACTIVE(1);private final int code;StatusEnum(int cod…

鴻蒙生態:鴻蒙生態校園行心得

(個人觀點,僅供參考) 兄弟們,今天來淺淺聊一聊這次的設立在長沙的鴻蒙生態行活動。 老樣子,我們先來了解一下這個活動: Harmon&#x…

【速寫】多LoRA并行衍生的一些思考

遷移學習上的一個老問題,怎么做多領域的遷移?以前的邏輯認為領域遷移屬于是對參數做方向性的調整,如果兩個領域方向相左,實際上不管怎么加權相加都是不合理的。 目前一些做法想著去觀察LoRA權重矩陣中的稠密塊與稀疏塊&#xff0…

【Delphi 基礎知識 44】接口interface的應用

目錄 1. 前言2. 接口有哪些優勢2.1. 實現多態性2.2 實現多重(解決單繼承限制)2.3 解耦代碼(依賴注入)2.4 便于測試(模擬接口)2.5 跨語言互操作性(COM支持)1. 前言 總結為一句話就是:接口只告訴你要做什么,而類會告訴你應該怎么做 下面是最簡單的接口實現 typeIMyIn…

09.傳輸層協議 ——— TCP協議

文章目錄 TCP協議 談談可靠性TCP協議格式 序號與確認序號窗口大小六個標志位 確認應答機制(ACK)超時重傳機制連接管理機制 三次握手四次揮手 流量控制滑動窗口擁塞控制延遲應答捎帶應答面向字節流粘包問題TCP異常情況TCP小結基于TCP的應用層協議 TCP協…

NLP高頻面試題(五十一)——LSTM詳解

長短期記憶網絡(LSTM)相較于傳統循環神經網絡(RNN)的核心改進在于通過引入記憶單元(cell state)和門機制(gating mechanism)來有效緩解梯度消失與梯度爆炸問題,從而更好地捕捉長距離依賴關系 。在其網絡結構中,信息通過輸入門(input gate)、遺忘門(forget gate)和…

SpringCloud組件—Eureka

一.背景 1.問題提出 我們在一個父項目下寫了兩個子項目,需要兩個子項目之間相互調用。我們可以發送HTTP請求來獲取我們想要的資源,具體實現的方法有很多,可以用HttpURLConnection、HttpClient、Okhttp、 RestTemplate等。 舉個例子&#x…

無需花錢購買域名服務器!使用 VuePress + Github 30分鐘搭建屬于自己的博客網站(保姆級教程)

前言 GitHub Pages 提供免費全球加速的服務器資源,VuePress 將 Markdown 變成藝術品級的網頁,僅需 30 分鐘,你便可以像提交代碼一樣發布文章,過程完全免費。 博客搭建好的效果如下:https://honorsong.github.io/exam…

提交到Gitee倉庫

文章目錄 注冊配置公鑰創建空白的碼云倉庫把本地項目上傳到碼云對應的空白倉庫中 注冊 注冊并激活碼云賬號( 注冊頁面地址:https://gitee.com/signup ) 可以在自己C盤/用戶/用戶名/.ssh 可以看到 有id_rsa.pub 以前在GitHub注冊時搞過&…

如何在 Java 中從 PDF 文件中刪除頁面(教程)

由于 PDF 文件格式不是 Java 原生支持的,因此要從 PDF 中刪除頁面,你需要使用外部庫。 本教程介紹如何使用 JPedal 來實現這一功能。 開始使用 ? 將 JPedal 添加到你的類路徑或模塊路徑中(可從官網下載安裝試用版 JAR 文件) ?…

機器學習第二篇 多變量線性回歸

數據集:世界幸福指數數據集中的變量有幸福指數排名、國家/地區、幸福指數得分、人均國內生產總值、健康預期壽命、自由權、社會支持、慷慨程度、清廉指數。我們選擇GDP per Capita和Freedom,來預測幸福指數得分。 文件一:linear,…

位運算,狀態壓縮dp(算法競賽進階指南學習筆記)

目錄 移位運算一些位運算的操作最短 Hamilton 路徑(狀態壓縮dp模板,位運算) 0x是十六進制常數的開頭;本身是聲明進制,后面是對應具體的數; 數組初始化最大值時用0x3f賦值; 移位運算 左移 把二…

Java高頻面試之并發編程-05

hello啊,各位觀眾姥爺們!!!本baby今天來報道了!哈哈哈哈哈嗝🐶 面試官:線程有哪些調度方法? 在Java中,線程的調用方法主要包括以下幾種方式,每種方式適用于…

進程的同步和互斥

進程同步(synchronous) ?通俗理解: 就像在排隊買飯,一個一個來,前面的人不走,后面的人就不能干事。 進程同步就是:多個進程之間需要協調,有先后順序,一個進程要等另一…