现有Profile是【Standard User】的两个User,User名分别是【Garza Laura】,【Chavez Julie】,通常状态下两个用户是不可以相互访问对方的数据。
数据【Laura Test001】做成
看是否可以查看数据【Laura Test001】
我们发现不能查看数据【Laura Test001】,因为只有管理员和自己可以查看,接下来做共有设定,让这个User可以进行访问
通过以下查询,发现已经做成Share的数据
SELECT Id, ContactId, UserOrGroupId, UserOrGroup.Name, ContactAccessLevel, RowCause
FROM ContactShare WHERE Contact.Name = 'Laura Test001'
再次以User【Chavez Julie】进行登录,发现还是不能查看【Laura】做成的数据
原因分析:通过Contact表数据情况,发现AccountId的值是空的,我们试着插入一个值
插入后
这时我们发现Julie这个User就可以访问Laura做成的数据了。
插入Contact数据时,AccountId是可以为空值的,下边通过Trigger自动做成一条Account数据,然后关联到Contact表
ContactTrigger.trigger
trigger ContactTrigger on Contact (before insert, after insert) {
if(Trigger.isinsert && Trigger.isBefore ){
ContactHelper.BeforeInsert(Trigger.new);
}
}
ContactHelper.cls
public with sharing class ContactHelper {
/**
* @name BeforeInsert
* @description
* @param List<Contact> newList
* @return void
**/
public static void BeforeInsert(List<Contact> newList){
List<Account> accList = new List<Account>();
Set<String> nameSets = new Set<String>();
for (Contact con : newList) {
if (con.AccountId == null) {
String accName = getContactName(con);
nameSets.add(accName);
Account accItem = new Account();
accItem.Name = accName;
accList.add(accItem);
}
}
insert accList;
List<Account> accNewList =[SELECT Id,Name FROM Account WHERE Name IN :nameSets];
Map<String, Id> accName2IdMaps = new Map<String, Id>();
if (accNewList != null && accNewList.size() >0) {
for (Account accItem : accNewList) {
accName2IdMaps.put(accItem.Name, accItem.Id);
}
}
for (Contact con : newList) {
if (con.AccountId == null && !accName2IdMaps.isEmpty()) {
String accName = getContactName(con);
con.AccountId = accName2IdMaps.get(accName);
}
}
}
private static String getContactName(Contact con) {
String accName = '';
if (con.LastName != null && con.FirstName != null) {
accName = con.LastName + ' ' + con.FirstName;
} else {
if (con.LastName != null) {
accName = con.LastName;
}
if (con.FirstName != null) {
accName = con.FirstName;
}
}
return accName;
}
}
效果展示:
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。