salesforce 零基础学习(四十一)Group
salesforce中,有的时候我们需要将一组用户放进一个Group,用来实现以下主要功能:
1.通过sharing rule设置默认的共享访问;
2.将记录分享给其他用户;
3.指定同步的联系人,这些联系人的onwer属于其他user;
4.分配Group中用户到指定的动作,比如审批流程等。
Group作为系统表,其字段信息如下所示:
其中Type作为PickList字段,他的取值可以通过Schema方式取出。
public with sharing class GroupPickList {
public static List<String> getGroupPickList() {
Schema.DescribeFieldResult groupTypeResult = Group.Type.getDescribe();
List<Schema.PicklistEntry> groupTypePickListValues = groupTypeResult.getPicklistValues();
List<String> groupTypeValues = new List<String>();
for(Schema.PicklistEntry groupTypePickListValueItem : groupTypePickListValues) {
groupTypeValues.add(groupTypePickListValueItem.getValue());
}
return groupTypeValues;
}
}
调用后显示结果如下:
[
"AllCustomerPortal",
"CollaborationGroup",
"Manager",
"ManagerAndSubordinatesInternal",
"Organization",
"PRMOrganization",
"Queue",
"Regular",
"Role",
"RoleAndSubordinates",
"RoleAndSubordinatesInternal",
"SharingRuleGroup",
"Territory",
"TerritoryAndSubordinates"
]
通过结果可以看出Group可以有很多种Type。其中,Public Group对应的Type为Regular,Queue对应的Type为Queue。取相应类型时的Group时只需要添加检索条件即可。
除了Group表外还需要介绍另外一个系统表--GroupMember。此表用来存储某个Group对应的成员或者子Group的信息,主要字段有:GroupId, Id,UserOrGroupId。
应用:
1.查询Name 为ceo group的Public Group中包含的User或者Group
SELECT GroupId, Id, SystemModstamp, UserOrGroupId FROM GroupMember where GroupId in (select Id from Group where Name = 'ceo group' and Type = 'regular')
2.当Group作为审批流程的一部分,查询当前是否到Public Group审批的处理
List<Group> groupList = [select Id from Group where Name = 'ceo group'];
if(groupList != null && groupList.size() > 0) {
Id groupId = groupList.get(0).Id;
List<ProcessInstance> pis = [SELECT TargetObjectId
FROM ProcessInstance
WHERE isDeleted = false AND id in ( SELECT processInstanceId
FROM ProcessInstanceworkitem
WHERE isdeleted = false AND ActorId = :groupId )];
if(pis.size() > 0) {
system.debug('当前Group用户审批');
}
}
总结:Group在record sharing以及作为审批流程的审批者经常会用到,掌握相关基础信息即可很好的操作,如果篇中有错误的地方欢迎批评指正,如果有问题欢迎留言。
salesforce 零基础学习(四十一)Group的更多相关文章
- salesforce零基础学习(一百一十一)custom metadata type数据获取方式更新
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.234.0.apexref.meta/apexref/apex_methods_syst ...
- salesforce 零基础学习(五十二)Trigger使用篇(二)
第十七篇的Trigger用法为通过Handler方式实现Trigger的封装,此种好处是一个Handler对应一个sObject,使本该在Trigger中写的代码分到Handler中,代码更加清晰. ...
- salesforce零基础学习(八十九)使用 input type=file 以及RemoteAction方式上传附件
在classic环境中,salesforce提供了<apex:inputFile>标签用来实现附件的上传以及内容获取.salesforce 零基础学习(二十四)解析csv格式内容中有类似的 ...
- salesforce 零基础学习(六十八)http callout test class写法
此篇可以参考: https://developer.salesforce.com/docs/atlas.en-us.apexcode.meta/apexcode/apex_classes_restfu ...
- salesforce零基础学习(八十)使用autoComplete 输入内容自动联想结果以及去重实现
项目中,我们有时候会需要实现自动联想功能,比如我们想输入用户或者联系人名称,去联想出系统中有的相关的用户和联系人,当点击以后获取相关的邮箱或者其他信息等等.这种情况下可以使用jquery ui中的au ...
- salesforce零基础学习(八十二)审批邮件获取最终审批人和审批意见
项目中,审批操作无处不在.配置审批流时,我们有时候会用到queue,related user设置当前步骤的审批人,审批人可以一个或者多个.当审批人有多个时,邮件中获取当前记录的审批人和审批意见就不能随 ...
- salesforce零基础学习(八十七)Apex 中Picklist类型通过Control 字段值获取Dependent List 值
注:本篇解决方案内容实现转自:http://mysalesforceescapade.blogspot.com/2015/03/getting-dependent-picklist-values-fr ...
- 【转】【Salesforce】salesforce 零基础学习(十七)Trigger用法
看本篇之前可以相应阅读以下Trigger相关文章: 1.https://developer.salesforce.com/page/Trigger_Frameworks_and_Apex_Trigge ...
- salesforce零基础学习(九十六)Platform Event浅谈
本篇参考:https://developer.salesforce.com/blogs/2018/07/which-streaming-event-do-i-use.html https://trai ...
- salesforce零基础学习(一百零五)Change Data Capture
本篇参考: https://developer.salesforce.com/docs/atlas.en-us.232.0.api_streaming.meta/api_streaming/using ...
随机推荐
- Java学习笔记 05 数据包装类
一.包装类 综述 >>java.lang包中的Integer类.Long类和Short类,分别将基本数据类型int.long和short封装成一个类.这些类都是Number的子类. Int ...
- js选择器
原生JS选择器有getElementById.getElementsByName.getElementsByTagName和getElementsByClassName这四个,下面我就一个一个介绍这四 ...
- spring batch部分
引用高人的:http://kanpiaoxue.iteye.com/blog/1768887
- POJ 2352 Stars(树状数组)
Stars Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 30496 Accepted: 13316 Descripti ...
- QT
http://www.cnblogs.com/csulennon/p/4483711.html
- jquery Ajax获取本地json 以及xml文件
$(function() { $("#Button1").click(function() { //按钮单击事件 //打开文件,并通过回调函数处理获取的数据 $.get(" ...
- Yii2 性能优化 来源yii2官方文档
优化你的 PHP 环境 使用最新稳定版本的 PHP . PHP 的主要版本可能带来显著的性能提升. 启用字节码缓存 Opcache(PHP 5.5或更高版本) 或 APC (PHP 5.4或更早版本) ...
- 关于网页pc端以及移动端的兼容性——测试
对于经常做网页设计的人员来说,网页的兼容性测试是不可缺少的,记得刚来单位的新手,都是要安装一款浏览器测试软件的,看自己制作的网页是否在各大浏览器中正常显示,有没有变形,或者网页效果不兼容等. 不仅仅是 ...
- 用c解决的小题目
判断计算机的大.小端存储方式 1 int main() { ; char* p=(char*)&a; ) printf("little\n");//小端存储:高位存在地地址 ...
- linux-8 基本命令---date
2,date命令用于显示.设置系统的时间或日期,格式如下: date[选项][+指定格式]. date的详细格式如下: date命令格式 参数 作用 %t 跳个[tab]键 %H 小时(00-23) ...