【发布时间】:2012-06-20 19:00:43
【问题描述】:
我可以使用如下公式轻松计算潜在客户的年龄(以分钟为单位):
ROUND((NOW()-CreatedDate)*1440,0)
但是,我只想计算该时间跨度的营业时间(实际上是分钟)部分。我想在 Salesforce 公式(不是顶点触发器)中执行此操作。我找到了一些灵感here 和here。我对这个解决方案的优先考虑:
- Salesforce 公式低于 5,000 个字符的限制
- 比较任意两个日期时间字段(不仅仅是 NOW() 与 CreatedDate)
- 合理的误差范围(+/- 3 小时)
- 忽略周末
- 忽略太平洋时间上午 6 点至下午 5 点(格林威治标准时间 13:00-23:59)以外的时间
-
忽略特定的假期,例如 7 月 4 日和 12 月 25 日(对我的需求来说过于复杂)
想只计算工作日数吗?这个公式用 873 个编译字符来计算,而 Salesforce 支持example here 建议的模板中的 1,685 个字符(有些人抱怨 going over the 5,000 character limit当他们将较大的模板与其他代码组合时)。
(
5*FLOOR((TODAY()-DATE(1996,01,01))/7) +
MIN(5, MOD(TODAY()-DATE(1996,01,01), 7))
) - (
5*FLOOR((DATEVALUE(CreatedDate)-DATE(1996,01,01))/7) +
MIN(5, MOD(DATEVALUE(CreatedDate)-DATE(1996,01,01), 7))
)
阅读我的回答,了解它是如何工作的,以及如何在需要时计算营业时间。
【问题讨论】:
标签: salesforce