跳至主要内容

工作流節點 —— 運算節點


節點功能: 通過此節點計算得齣新的結果供後續節點使用,節點本身不會直接修改字段的值。

與工作錶中公式控件不同之處:

  • 運算節點可以進行跨錶跨記錄的計算,參與計算的字段可以是不同記錄中的字段值,工作錶公式控件隻能計算本錶內的字段。

  • 運算節點是編輯字段保存後通過工作流執行計算的,公式控件是編輯字段時直接計算得齣結果,時效性不同。

支持的運算類型:

  • 數值、金額間的數學計算
  • 計算兩個日期間的時長
  • 為日期增加或減少時長,得到新的日期
  • 通過函數處理數據

計算結果的保存方式:

  • 直接計算

    執行到運算節點時直接計算並保存結果,供後續節點使用。即使參與計算的字段值有變化,運算結果也不再變。

  • 動態計算

    執行到運算節點時先不計算,當執行到使用瞭運算結果的節點時再實時計算,如果參與計算的值有變化,不同節點得到的結果可能不同。

一、數值、金額間的運算

數值、金額間通過運算節點計算,通常用於不同記錄的字段之間的計算,例如新增一個排號單時,查詢下當前最大的單號,最大號+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,但是選擇輸齣日期類型,則輸齣為空。


文檔問題反饋

文檔中是否有錯彆字、內容過期、難以理解等問題? 點此給我們反饋吧