公告内容类型Expires列设置计算默认值无法引用其他列问题咨询
报错原因
普通日期时间类型字段的默认值计算,运行时机是用户打开新建条目表单、尚未提交保存时就完成运算的,而[Created](创建时间)这类系统字段、以及同一条目的其他自定义字段的值,都需要等条目完成保存动作、写入列表数据库后才会生成,时间线完全不匹配,所以默认值的计算规则从设计上就不允许引用同一条目的其他字段,相关报错是符合预期的设计限制。
计算值选项的实际用途
这个功能的定位是生成不需要依赖当前条目其他字段的动态默认日期,减少用户手动填写的成本,常见使用场景包括:
- 设置公告默认有效期为发布后14天:
TODAY() + 14 - 自动默认值为当月最后一个工作日:
DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1 - IF(WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1,2)>5,WEEKDAY(DATE(YEAR(TODAY()),MONTH(TODAY())+1,1)-1,2)-5,0) - 自动默认值为当前季度的最后一天:
DATE(YEAR(TODAY()), (INT((MONTH(TODAY())-1)/3)+1)*3 +1, 1) -1
基于创建时间设置有效期的替代方案
如果业务需求必须要基于[Created]字段计算Expires值,可以采用以下两种可行方案:
- 改用计算列存储Expires值,公式设置为
=[Created] + 2,如果后续不需要把这个字段作为信息管理策略的触发条件,该方案最简便 - 配置Power Automate云流,触发条件设为「当列表项创建时」,触发后自动更新该条目的Expires字段为创建时间加2天,该方案可以兼容信息管理策略的自动删除规则。
内容的提问来源于stack exchange,提问作者Steve Penn
相关产品推荐
相关产品推荐

