来源:docs/PLATFORM_GAPS_FROM_TEMPLATES.md 第 7 条(P1)。
现象
CEL(公式 / formula 字段、flow 条件、过滤器宏)的函数库不完整,公式经常写不出来:
- ❌ 无
daysBetween(date1, date2)
- ❌ 无
date + N / date - N(整数天加减)
- ❌ 无
dateOnly() / dateTrunc('week')
- ❌ 无
iif(cond, a, b)(仅有 cond ? a : b 但与 macro 系统冲突)
- ⚠️
today() / now() 时区不一致
- ⚠️ 字符串:缺
trim / padStart / format
复现
helpdesk 模板想算 sla_remaining_minutes = (resolution_due_at - now()) / 60,CEL 报无法对 datetime 做减法。
contracts 模板想算 days_to_renewal = daysBetween(today(), renewal_date) —— 函数不存在。
procurement 想做 created_at + 7 days —— 不能。
当前 workaround
- 改成在 flow 里写脚本节点算好,再 update_record 回填到普通字段(失去 derived 字段优势)
- 接受字段近似(仅显示日期差的「天数粒度估算」)
建议范围
M1:日期 / 时间函数补全
daysBetween(a, b)、hoursBetween、minutesBetween
addDays(date, n) / addHours / addMinutes
dateTrunc(date, 'day' | 'week' | 'month')
dateFormat(date, pattern, locale?)
isWeekend(date)、isBusinessDay(date, calendarId?)
M2:时区一致性
- 所有 datetime 函数明确支持
tz 参数,默认从 tenant / user setting 取
today() 在不同入口(formula / flow / macro)行为统一
M3:字符串 + 数字 + 数组
- 字符串:
trim、padStart、replace、split、join、upper、lower
- 数字:
round(n, decimals)、clamp
- 数组:
sum / avg / min / max / any / all / count
M4:文档 + IDE 提示
- 集中页
docs/cel-reference.md
- spec 可声明
formulaContext: {...} 让编辑器能补全
验收
现象
CEL(公式 / formula 字段、flow 条件、过滤器宏)的函数库不完整,公式经常写不出来:
daysBetween(date1, date2)date + N/date - N(整数天加减)dateOnly()/dateTrunc('week')iif(cond, a, b)(仅有cond ? a : b但与 macro 系统冲突)today()/now()时区不一致trim/padStart/format复现
helpdesk模板想算sla_remaining_minutes = (resolution_due_at - now()) / 60,CEL 报无法对 datetime 做减法。contracts模板想算days_to_renewal = daysBetween(today(), renewal_date)—— 函数不存在。procurement想做created_at + 7 days—— 不能。当前 workaround
建议范围
M1:日期 / 时间函数补全
daysBetween(a, b)、hoursBetween、minutesBetweenaddDays(date, n)/addHours/addMinutesdateTrunc(date, 'day' | 'week' | 'month')dateFormat(date, pattern, locale?)isWeekend(date)、isBusinessDay(date, calendarId?)M2:时区一致性
tz参数,默认从 tenant / user setting 取today()在不同入口(formula / flow / macro)行为统一M3:字符串 + 数字 + 数组
trim、padStart、replace、split、join、upper、lowerround(n, decimals)、clampsum/avg/min/max/any/all/countM4:文档 + IDE 提示
docs/cel-reference.mdformulaContext: {...}让编辑器能补全验收
helpdesk用 CEL 写出sla_remaining_minutes派生字段contracts用daysBetween计算续约倒计时