上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules。

本篇参考PDF:

Date/time:https://resources.docs.salesforce.com/200/latest/en-us/sfdc/pdf/formula_date_time_tipsheet.pdf

Validation rules:https://resources.docs.salesforce.com/200/latest/en-us/sfdc/pdf/salesforce_useful_validation_formulas.pdf

一.Date/time函数

使用Date/time函数应该注意此函数的返回类型,是Date,Date/time还是time类型的。主要函数如下:

  1. 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的用法,如果有写错的地方还望指出,如果有不懂得地方欢迎留言,共同探讨!

salesforce 零基础学习(十六)Validation Rules & Date/time的更多相关文章

  1. salesforce 零基础学习(六十八)http callout test class写法

    此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...

  2. salesforce 零基础学习(六十五)VF页面应善于使用变量和函数(一)常用变量的使用

    我们在使用formula或者validation rules等的时候通常会接触到很多function,这些函数很便捷的解决了我们很多问题.其实很多函数也可以应用在VF页面中,VF页面有时候应该善于使用 ...

  3. salesforce 零基础学习(六十九)当新增/修改一条记录以后发生了什么(适合初学者)

    salesforce开发中,我们会对object进行很多的操作,比如对object设置字段的必填性唯一性等,设置validation rule实现一下相关的字段的逻辑校验,设置workflow实现某个 ...

  4. salesforce 零基础学习(六十四)页面初始化时实现DML操作

    有的时候我们往往会遇到此种类似的需求:用户在访问某个详细的记录时,需要记录一下什么时候哪个用户访问过此页面,也就是说进入此页面时,需要插入一条记录到表中,表有用户信息,record id,sObjec ...

  5. salesforce 零基础学习(六十六)VF页面应善于使用变量和函数(二)常用函数的使用

    上一篇介绍VF中常用的变量,此篇主要内容为VF页面可以直接使用的函数,主要包括Date相关函数,Text相关函数,Information相关函数以及logic相关函数,其他相关函数,比如math相关函 ...

  6. salesforce 零基础学习(六十二)获取sObject中类型为Picklist的field values(含record type)

    本篇引用以下三个链接: http://www.tgerm.com/2012/01/recordtype-specific-picklist-values.html?m=1 https://github ...

  7. salesforce 零基础学习(六十)Wizard样式创建数据

    项目中表之间关联关系特别多,比如三个表中A,B,C  C作为主表,A,B作为从表,有时候C表需要创建数据时,同时需要创建A,B两个表的数据,这种情况下,使用Wizard样式会更加友好. 以Goods_ ...

  8. salesforce lightning零基础学习(十六) 公用组件之 获取字段label信息

    我们做的项目好多都是多语言的项目,针对不同国家需要展示不同的语言的标题.我们在classic中的VF page可谓是得心应手,因为系统中已经封装好了我们可以直接在VF获取label/api name等 ...

  9. salesforce 零基础学习(六十一)apex:component简单使用以及图片轮转播放的实现

    有的时候,我们项目有可能有类似需求:做一个简单的图像轮转播放功能,不同的VF页面调用可以显示不同的图片以及不同的图片描述.这种情况,如果在每个页面单独处理相关的图像轮转播放则显得代码特别冗余,此种情况 ...

  10. salesforce 零基础学习(六十七)SingleEmailMessage 那点事

    在salesforce开发中,发送邮件是一个很常见的功能.比如在进入审批流以后的通过和拒绝的操作需要发送邮件给记录的owner,和其他系统交互以后更改了某些状态通知相关的User或者Contact等等 ...

随机推荐

  1. 最常用的reset代码

    /*css reset code */ /**** 文字大小初始化,使1em=10px *****/body { font-size:12px;} /*字体边框等初始化*/body,div,dl,dt ...

  2. JSON: Property 'xxx' has no getter method的解决办法

    在使用JSONArray.fromObject时候出现JSONException:Property 'xxx' has no getter method. 解决办法:设置bean为public属性即可 ...

  3. jQuery - 自定义伪类 [:pseudoclass]

    有两种创建伪类的方法, 第一种, $.extend( $.expr[':'], { // 自定义的伪类名称:group group: function(element, index, matches, ...

  4. AppFuse3.5对接oracle数据库

    AppFuse是一个使用Java语言开发web应用系统的集成框架.java开发人员最头痛的事情就是面对大量的框架不知该如何选择.这些框架性能如何,兼容性如何等等都需要筛选比较.Appfuse作者Mat ...

  5. Freemarker日期格式化处理

    基本参数: date: 只显示日期,不显示时间.如${createTime?date} 或${createTime?date('yyyy-MM-dd')} time: 只显示时间,不显示日期如${cr ...

  6. 01、AngularJs简介

    AngularJs致力于减轻程序员在开发Ajax应用过程的痛苦.做前端的童鞋都知道,当在开发Ajax应用时,我们在与后台交互的同时,还在不断的手动操作Dom,诸如自己组装后台数据,渲染Html标签生成 ...

  7. 基于VC的声音文件操作(五)

    (六)读取波形文件的实例 1.打开文件后,可通过HMMO句柄获得文件中的波形部份:MMCKINFO mmckinfo;mmckinfo.fccType = mmioFOURCC('W','A','V' ...

  8. DOM技术实现竞赛题页面

    DOM技术实现竞赛题页面 这一段时间学习了DOM操作和JS开发,我就自己开发一个竞赛题的页面. 一.业务需求 1.目标:做一个一百道选择题的页面 2.功能: 显示题目和选项. 下一题上一题的按钮,到第 ...

  9. K最短路 A*算法

    POJ2449 Remmarguts' Date #include <iostream> #include <algorithm> #include <queue> ...

  10. 可在广域网部署运行的QQ高仿版 -- GG叽叽(源码)

    前段时间看到园子里有朋友开发了QQ高仿版的程序,我也非常有兴趣,以前一直有个做即时聊天程序的梦,趁这段时间工作不是很忙,就开始动手来做这个事情.根据我以往积累下来的项目经验,实现QQ的基本功能,问题应 ...