salesforce 零基础学习(四十)Custom Settings简单使用
有时候,项目中我们需要设置类似白名单的功能,即某些用户或者某种Profile的用户不走一些校验或者走一些校验,这时,使用Custom Settings功能可以很好的解决这一需求。
Custom Settings创建类似于Custom Object,但是两者用法上有一些区别:Custom Setting可以通过条件配置来区分特定的用户,或者Profile。
Custom Settings可以应用到很多场景,因为可以通过特定用户和Profile进行配置,所以设置白名单或者相反的功能很容易,除此之外还可以应用到其他场景,根据他的功能自行来使用。
Custom Setting有两种类型:
1.List Custom Settings:用于创建一组静态的数据;
2.Hierarchy Custom Settings:通过指定的Profile或者用户设置指定的数据。
两种选择上通常可以选择第二种,因为第二种用起来更加灵活,如果确定数据是固定的也可以选择第一种。
接下来的步骤用来实现配置Custom Setting的用户不走某种校验,没有配置Custom Setting的用户需要走某种校验的功能。
一.创建步骤:
1.Setup->Build->Develop->Custom Settings,进入后选择new
2.填写基本信息后save
3.点击new按钮添加需要的字段
4.点击上图的manage,添加纪录并进行记录分配
5.分配完成,这里我们看一下下图描述,当type为List情况,选择上方的new,当type为hierarchy情况下,选择下方的new按钮
二.程序实现调用
Custom Setting调用方式和sObject方式基本相同。需求为当添加一条Goods,当不是白名单的用户,走Validate校验时,要求GoodsPrice__c必须大于GoodsCostPrice__c,当然需求是随便编的。。。
调用可参看:https://help.salesforce.com/HTViewHelpDoc?id=cs_accessing.htm&language=en_US
Goods的Trigger代码如下:
trigger GoodsTrigger on Goods__c (before insert) {
if(trigger.isBefore) {
if(trigger.isInsert) {
GoodsValidateWhiteList__c currentGoodsValidateWhiteList = GoodsValidateWhiteList__c.getInstance(UserInfo.getUserId());if(currentGoodsValidateWhiteList == null || currentGoodsValidateWhiteList.IsActive__c == false ||
currentGoodsValidateWhiteList.IsVisible__c == false) {
for(Goods__c goods : trigger.new) {
if(goods.GoodsPrice__c < goods.GoodsCostPrice__c) {
goods.addError('GoodsPrice应该不小于GoodsCostPrice');
}
}
}
}
}
}
三.运行效果显示
1.当使用配置的白名单用户登录时,当GoodsPrice小于GoodsCostPrice也无所谓,因为不走validate.
2.当使用其他用户登录时,由于没有配置白名单,需要校验GoodsPrice和GoodsCostPrice.
总结:使用Custom Setting可以更细致的针对Profile或者User进行数据分配,如果有类似需求情况下,此种方式会更加高效实现功能。如果篇中有描述错误的地方,欢迎批评指正,如果有不懂得地方欢迎留言。
salesforce 零基础学习(四十)Custom Settings简单使用的更多相关文章
- salesforce 零基础学习(十九)Permission sets 讲解及设置
Permission sets以及Profile是常见的设置访问权限的方式. Profile规则为'who see what'.通过Profile可以将一类的用户设置相同的访问权限.对于有着相同Pro ...
- salesforce 零基础学习(十八)WorkFlow介绍及用法
说起workflow大家肯定都不陌生,这里简单介绍一下salesforce中什么情况下使用workflow. 当你分配许多任务,定期发送电子邮件,记录修改时,可以通过自动配置workflow来完成以上 ...
- salesforce 零基础学习(十六)Validation Rules & Date/time
上一篇介绍的内容为Formula,其中的Date/time部分未指出,此篇主要介绍Date/time部分以及Validation rules. 本篇参考PDF: Date/time:https://r ...
- salesforce零基础学习(一百一十一)custom metadata type数据获取方式更新
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.234.0.apexref.meta/apexref/apex_methods_syst ...
- salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及去重实现
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的au ...
- salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见
项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随 ...
- salesforce 零基础学习(六十八)http callout test class写法
此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...
- salesforce零基础学习(一百一十)list button实现的一些有趣事情
本篇参考: salesforce零基础学习(九十五)lightning out https://developer.salesforce.com/docs/component-library/docu ...
随机推荐
- 关于L'Hopital法则
1.首先需要使用 罗尔定理 函数f(x)在闭区间[a,b]连续在开区间(a,b)可微,如果f(a)=f(b),那么至少存在一点c使函数导数f'(c)=0 注意需要再(a,b)可微,如果函数有角点,断点 ...
- IAR之文件路径设置
1.命令解释 $PROJ_DIR$表示工程所在路径 $TOOLKIT_DIR$表示IAR安装目录所在头文件路径 \..\表示返回上一级目录. 2.头文件路径设置 打开工程文件,找到"opti ...
- 关于mock server
这篇技术博客是在知乎上看到的 知乎js大神张云龙写的 这里贴过来记录下,如果侵权 请告知将及时删除. --------------------------- 为了更好的分工合作,让前端能在不依赖后端环 ...
- React的Diff算法
使用React或者RN开发APP如果不知道Diff算法的话简直是说不过去啊.毕竟"知其然,知其所以然"这句老话从远古喊到现代了. 以下内容基本是官网文章的一个总结.压缩.这次要谦虚 ...
- js在head里插入style样式
代码如下: var nod = document.createElement('style'), str = 'body{background:#000;color:#fff} a{color:#ff ...
- [Leetcode][JAVA] Interleaving String
Given s1, s2, s3, find whether s3 is formed by the interleaving of s1 and s2. For example,Given:s1 = ...
- Linq To Xml基础
<?xml version="1.0" encoding="utf-8" ?> <Books> <Category Order=& ...
- Sphinx : 高性能SQL全文检索引擎
Sphinx的特点 快速创建索引:3分钟左右即可创建近100万条记录的索引,并且采用了增量索引的方式,重建索引非常迅速. 闪电般的检索速度:尽管是1千万条的大数据量,查询数据的速度也在毫秒级以上,2- ...
- \(\S1 \) Gaussian Measure and Hermite Polynomials
Define on \(\mathbb{R}^d\) the normalized Gaussian measure\[ d \gamma(x)=\frac{1}{(2\pi)^{\frac{d}{2 ...
- \(\S1\) 描述性统计
在认识客观世界的过程中,统计学的思想和方法经常起着不可替代的作用.在许多工程及自然科学的专业领域中,包括可靠性分析.质量控制.生物信息.脑科学.心理分析.经济分析.金融风险管理.社会科学推断.行为科学 ...