上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules。
本篇参考PDF:
Date/time:
Validation rules:
一.Date/time函数
使用Date/time函数应该注意此函数的返回类型,是Date,Date/time还是time类型的。主要函数如下:
- DATE:创建Date类型对象,参数为年月日,其中,月的参数不像java中的月从0开始,这个参数从1开始,范围1-12
写法:DATE(year,month,day)
sample:DATE(2016,4,20):代表2016年4月20日
2. DATEVALUE:通过表达式或者Date/time参数返回一个Date类型
写法:DATEVALUE(expression)
sample:DATEVALUE(createdDate):返回createdDate的Date值,原createdDate类型为Date/time
sample:DATEVALUE("2016-4-20 13:40:30"):返回将字符串转换成Date类型的值。
sample:DATEVALUE("2016-4-20"):同上
3. DAY:返回指定日期的某月的第几天,范围为1--31
写法:DAY(date):参数为Date类型
sample:DAY(DATE(2016,4,20)):返回值为20,返回当前日期的day的值。
4. MONTH:返回指定日期的月份,范围为1(January)-12(December)
写法:MONTH(date):参数为Date类型
sample:DAY(DATE(2016,4,20)):返回值为4,返回当前日期的month的值。
5. NOW:返回当前时刻的Date/time类型
写法:NOW():无参数
sample:NOW():获取当前时刻的Date/time
6. TODAY:返回当前日期的Date类型,也可以用于validation rules
写法:TODAY():无参数
sample:TODAY():获取当前日期
sample:TODAY()-DATEVALUE(createdDate):返回当前日期与创建日期相差的天数
7. YEAR:通过一个给定的日期,返回一个4位的年数
写法:YEAR(date)
sample:YEAR(DATE(2016,4,20)):返回结果为2016
8. DATETIMEVALUE:通过表达式或者一个Date/time类型参数返回一个日期+GMT time的Date/time
写法:DATETIMEVALUE(expression)
sample:DATETIMEVALUE("2006-04-20 14:00:00")
sample:DATETIMEVALUE(createdDate)
注意:当使用字符串去获取时,格式必须为YYYY-MM-DD,不符合要求情况下返回值为#ERROR!
二.Date、Date/time、Text之间转换
通过上面方法可以看到,有的时候参数需要Date类型参数,比如DAY等等,有的时候需要Date/time,系统封装的字段中,有的为Date,有的为Date/time,所以说相互转换显得尤为重要。
1.Date/time和Date之间的转换
- 使用DATEVALUE函数可以将Date/time参数返回一个Date类型。
- 使用DATETIMEVALUE函数可以将Date参数返回一个Date/time类型,其中time的值默认为GMT的12:00am。
2.Date和Text之间的转换
- 使用TEXT()函数可以将Date参数转换成字符串类型。
- 使用DATEVALUE函数可以将字符串类型转换成Date类型,其中字符串类型应遵循YYYY-MM-DD格式。
3.Date/time和Text之间的转换
使用TEXT函数可以将Date/time函数转换成字符串类型。
使用DATETIMEVALUE可以将字符串类型转换成Date/time类型,其中字符串类型应该遵循YYYY-MM-DD格式。
三.Validation rules
validation rules用于保存信息前的字段校验,当进入sObject时,下方有一项validation rules用来设置,如下图所示。
点击new新建一条校验规则,校验规则包括以下部分:
1.规则名称以及规则的描述;
2.错误情况的formula,即如果save时formula内容为true时显示错误信息,save失败;
3.错误的消息提示,用来显示第二步false的信息提示;
4.信息提示位置:1.页面最上方;2,字段位置处。
validation rules是自动执行的,执行时机先于trigger。validation rules中函数包含但不局限于formula中的函数,比如priorValue函数,只在validation rules存在,在formula并不存在。
有些函数在使用时是需要符合某些要求才能使用和执行的,所以在应用某些函数前,最好先看一下需要注意的情况,比如PRIVORVALUE函数。
总结:formula和validation rules中封装的函数极大程度上方便了我们的开发,使用前需要先确保两件事情:
1.应用的范围,应用此函数需要考虑配置或达到哪些要求;
2.函数的参数类型以及返回类型,在formula中是较为严格要求的。
本篇主要讲解formula中的Date/time以及Date函数和validation rules的用法,如果有写错的地方还望指出,如果有不懂得地方欢迎留言,共同探讨!