巧用公式字段及标准函数解决日期间隔业务需求
业务场景
在某些表中,我们需要计算一个时间段,并且提示用户这个时间段的长短,例如一个业务机会正常的单位是一个季度即3个月,我们默认某一个记录的开始日期和结束日期一旦达到三个月则转换成一个季度单位。
比如某一条记录的开始日期为3月5日,结束日期为6月4日,则这条记录的“季度”字段的值则保存为“一季度”,如果结束日期为6月10日,则保存为“一季度 + 6日”。
乍一看这个需求似乎很简单,但是一旦我们将闰年闰月、每个月份不同天数都考虑进去,会发现实现起这个功能比较复杂。
好在Salesforce的自定义字段的公式中,提供了与日期相关的很多实用函数。本文将用一个公式字段的例子来展示有关日期计算的一些技巧。
公式字段特点
Salesforce的公式字段是函数式的,不能定义变量等,因此在写法上会使用类似 lambda 表达式的嵌套方式,直到算出最后我们需要的值。
使用Salesforce提供的方法构建公式
在公式字段的编辑框左侧,提供了一系列标准函数,我们找到与日期有关的函数。
判断是否达到一季度
我们首先要判断记录期间到底有没有超过【3个月减去1天】,我们首先需要将开始日加上3个月。
在【日期和时间】类别函数中,找到ADDMONTHS函数
ADDMONTHS(date, num)
将开始日加上3个月后,如果小于等于结束日 + 1