Skip to Content
核心概念欄位型別公式 v2 與儲存結果

公式 v2 與儲存結果

明確選用版本

formula_version 只適用 formula 欄位;省略表示版本 1,不是最新語言。computation_mode 預設 live;stored 必須搭配 formula_version: 2。既有 legacy 公式不會自動改語言或變成 stored。

對既有、無單位的 decimal Amount,下列原生建欄 body 儲存其取位結果:

{ "name": "Rounded amount", "type": "formula", "formula_version": 2, "computation_mode": "stored", "expression": "ROUND([Amount], 2)" }

相同欄位可放入 IaC column line 的 spec。結果由伺服器產生,不要在 record input、import 或 Command assignment 提交。精確小數結果使用字串,不用 JavaScript Number。

相依界線

V2 驗證無單位、精確的同列 scalar,拒絕 float、lookup、rollup、native link、JSON、attachment、interval 與跨表參照。公式相依本身必須為 v2;stored 公式不能依賴 live 公式或 server-assigned sequence。現行讀取 ACL 與 computed-value 遮罩仍有效:儲存結果不會解除來源或相依結果的遮罩。

對 unique_tuple 規則而言,stored 結果同樣是 stored scalar:規則可以將 stored formula 欄位當作 component,而 Command insert step 的 on_conflict 也會比對一般 insert 會儲存的那個值(見 upsert)。live 公式不能作為 unique component。

擴充函式

V2 保留 legacy 函式並新增下列已註冊項目:

分類新增函式
邏輯NOT、IFS、ISBLANK
文字TRIM、LEFT、RIGHT、MID、SUBSTITUTE、VALUE
精確運算ABS、MIN、MAX、MOD、ROUND、ROUNDUP、ROUNDDOWN
日期DATE、DAY、WEEKDAY、DATEADD、EDATE、EOMONTH
工作日WORKDAY(start, count [, "calendar_key"])、NETWORKDAYS(start, end [, "calendar_key"])、ISWORKDAY(day [, "calendar_key"])

每個函式有參數數量上限與型別驗證。新欄位用 create preview,修改既有 v2 expression 前用 identity-bound update preview。公式函式不會自動成為 Command expression operator 或 SQL-pushdown 能力。

座標運算子頁另外描述 v2 coordinate source 及 DISTANCE、AXIS、WITHIN、BEARING、DOT、NORM。

版本化工作日與 Commands

日曆屬公司所有,以不可變版本保存。default 版本 0 為週一至週五、無 exception。自訂定義用 weekdays 與逐日 {date, working} 例外。例外可帶選用的純文字 label,不會改變任何結果;路由、唯讀 API key scope 與 label 限制見工作日行事曆。公式 calendar key 必須是靜態引號字串,不是 row expression;省略使用 default。既有 date 欄位可用 v2 expression WORKDAY([Start date], 3, "default")。

明確採用工作日版本會原子重算受影響的 stored value 與日曆來源證據。在 commands_only 表上,這是 kernel-only derived_recompute,不是允許編輯業務欄位的例外。history 記錄採用 actor/日曆版本;此維護不發出一般業務 event/trigger。

Command 編譯、相依契約與 runtime 讀取使用真實欄位版本及 stored/live 模式;凍結執行仍檢查來源/日曆相依。Command DSL 與公式語言版本是分開的設定。

來源為 backend #1865、#1890、#1900。核心更新補齊記錄來源/部署界線;本頁不宣稱新增產品測試或 rollout。

Last updated on