工作流節點 —— 運算節點
節點功能: 通過此節點計算得齣新的結果供後續節點使用,節點本身不會直接修改字段的值。
與工作錶中公式控件不同之處:
運算節點可以進行跨錶跨記錄的計算,參與計算的字段可以是不同記錄中的字段值,工作錶公式控件隻能計算本錶內的字段。
運算節點是編輯字段保存後通過工作流執行計算的,公式控件是編輯字段時直接計算得齣結果,時效性不同。
支持的運算類型:
- 數值、金額間的數學計算
- 計算兩個日期間的時長
- 為日期增加或減少時長,得到新的日期
- 通過函數處理數據
計算結果的保存方式:
直接計算
執行到運算節點時直接計算並保存結果,供後續節點使用。即使參與計算的字段值有變化,運算結果也不再變。
動態計算
執行到運算節點時先不計算,當執行到使用瞭運算結果的節點時再實時計算,如果參與計算的值有變化,不同節點得到的結果可能不同。
一、數值、金額間的運算
數值、金額間通過運算節點計算,通常用於不同記錄的字段之間的計算,例如新增一個排號單時,查詢下當前最大的單號,最大號+1,更新到新單即可。
配置方法
1、添加運算節點,選擇數值運算
2、選擇參與計算的字段
可以從運算節點前麵的節點記錄中選擇數值/金額字段進行計算。
也可以直接和常量進行計算。
3、設置公式
可以直接使用+、-、*、/、( ) 等符號進行運算,也可以使用係統公司進行計算。例如,計算最新號碼,以下兩種公式都可以。
自定義公式
係統公式
Tips
- 小數點默認保留2位(四捨五入)
- 使用係統公式時,括號裏麵字段之間用逗號“,”隔開,自己編寫公式時,必須填寫運算符閤(+_*/)
- 參與計算的字段如果已刪除、則計算結果為空
4、字段為空時按0處理
在自定義公式時,如數值1字段+ 數值2字段+ 數值3字段, 其中有一個字段為空,則計算結果為空。如果勾選瞭按0處理,則能保證正常的計算。
如果作為分母的字段為空時,計算結果始終為空。
5、後麵的節點使用運算結果
後麵的節點需要用到運算節點,直接引用此節點即可。
如果計算結果可能為空,可以根據計算結果設計分支流程。
二、為指定日期增減一個時長
A:選擇一個日期字段,針對這個字段的日期進行加減。
B:設置日期參與運算的格式: 日期格式,日期+時間格式。
日期格式計算:例如,傳入的日期是2021-11-11 12:50,參與計算的內容是2021-11-11。
日期+時間格式,那麼參與計算的格式是 2021-11-11 12:50
C: 運算公式,如圖配置, 運算結果是直接為日期增加9小時
D: 輸齣格式,計算後可根據選擇格式輸齣計算結果
Tips:
公式第一個必須是計算符號(+/-)
Y/M/d 分彆代錶年/月/天 ,h 代錶小時,m代錶分鍾。 其中M和m區分大小寫。
數字前麵一定要有計算符號(+/-),數字後麵一定要有單位(Y/M/d/h/m) 例如:+8h+1m
數值字段的後麵必須跟單位(Y/M/d/h/m)
選擇其他節點的數值字段後,直接寫日期單位,中間不加任何符號。例如
示例1: 運算格式為日期
傳入的日期:2020-10-12 13:50
運算格式:日期,
運算公式:+7d+3h-2m
參與運算的日期為 2020-10-12 00:00, 增加7天、3小時,減去2分鍾。
運算結果是:2020-10-19 02:48
示例2:運算格式為日期+時間
傳入的日期:2020-10-12 13:50
運算格式:日期+時間
運算公式:+3h
運算結果:2020-10-12 16:50
示例3:獲取當天的8點整
如下圖,傳入係統當前時間,執行到當前節點時是2020-12-21 14:37。 運算的格式為:日期, 參與運算的日期就是2020-12-21 00:00, 運算的公式為+8h,即增加8小時,得到2020-12-21 08:00
三、計算兩個日期的時長
和公式控件計算日期間的時長是相同方法,先指定開始日期和結束日期對應的字段,然後設定兩個日期間參與計算的格式。
格式1: 開始日期0:00,結束日期24:00
格式2: 開始日期0:00,結束日期00:00
格式化僅對沒有時間部分的日期有效果,如果包含時間部分,則按實際時間參與計算。
示例1
開始時間2020-12-13 ,結束時間2020-12-14 ,輸入齣單位:天
如果選擇格式1,則實際運算時為2020-12-13 00:00 和 2020-12-14 24:00的時長,得到結果是2天。
如果選擇格式2,則實際運算時為2020-12-13 00:00 和 2020-12-14 00:00的時長,得到結果是1天。
示例2
開始時間2020-12-13,結束時間2020-12-14 12:00, 輸齣單位:小時
如果選擇格式1,則實際運算時為2020-12-13 00:00 和 2020-12-14 12:00的時長,得到結果是36小時。
如果選擇格式2,則實際運算時為 2020-12-13 00:00 和 2020-12-14 12:00的時長,得到結果是依然是36小時。因為結束時間有時間部分,按實際時間計算,這個字段就不在格式化,隻格式化開始日期。
四、函數計算
通過函數,可以對文本、數值、日期等流程節點對象的值進行處理,然後輸齣指定格式的結果。如:
- 利用YEAR()函數,獲取日期的年份
- 利用REPLACE()函數,將手機號中的+86去掉
- 利用DISTANCE()函數,計算兩個定位字段間的距離。
示例:例用函數運算節點,將手機號的+86去掉。
配置示例
1、添加運算節點-函數計算方式
2、編輯函數的計算公式
函數的使用介紹,請參考
3、選擇運算結果的輸齣類型
4、後續節點使用運算結果
如下圖,通過動態節點中選擇此節點的結果。其中[文本]是前麵選擇的輸齣內容的類型。
TIPS
1、除瞭使用函數,計算公式也支持自定義的運算規則,如直接拼接兩個字段,可使用'+',當使用自定義運算規則時,參與計算的字段如果已刪除、字段值為空,則計算結果為空, 這時請使用預置函數計算,為空的字段默認按0計算。
2、如果計算結果不能按照選擇的輸齣類型轉化,則計算結果為空值, 如果1+1的計算結果是2,但是選擇輸齣日期類型,則輸齣為空。
文檔問題反饋
文檔中是否有錯彆字、內容過期、難以理解等問題? 點此給我們反饋吧