Есть кастомный объект. У него лукап на Enquiry(Case).
Задача: Нужно после создания кастомного объекта создавать шаринг рул, read only для кейс овнера. Написал триггер который на after insert запускает етот код
public without sharing class CustomObjectServices {
public static void CreateSharingRule(Map<Id, Custom_object__c> customObjectMap){
List<Custom_object__share> sharingRuleList = new List<Custom_object__share>();for(Custom_object__c quality : customObjectMap.values()){
Quality_Checks__share sharingRule = new Quality_Checks__share();sharingRule.AccessLevel = 'Read';
sharingRule.UserOrGroupId = quality.Enquiry__r.OwnerId;
sharingRule.ParentId = quality.Id;
sharingRule.RowCause = Schema.Custom_object__Share.RowCause.Manual;sharingRuleList.add(sharingRule);
}insert sharingRuleList;
}
}
Есть кастомный объект. У него лукап на Enquiry(Case). Задача: Нужно после создания кастомного объекта создавать шаринг рул, read only для кейс овнера. Написал триггер который на after insert запускает етот код [code] public without sharing class CustomObjectServices { public static void CreateSharingRule(Map<Id, Custom_object__c> customObjectMap){ List<Custom_object__share> sharingRuleList = new List<Custom_object__share>(); for(Custom_object__c quality : customObjectMap.values()){ Quality_Checks__share sharingRule = new Quality_Checks__share(); sharingRule.AccessLevel = 'Read'; sharingRule.UserOrGroupId = quality.Enquiry__r.OwnerId; sharingRule.ParentId = quality.Id; sharingRule.RowCause = Schema.Custom_object__Share.RowCause.Manual; sharingRuleList.add(sharingRule); } insert sharingRuleList; } } [/code] Но почему то quality.Enquiry__r.OwnerId = null. попробовал поменять quality.Enquiry__r.OwnerId на sharingRule.UserOrGroupId = UserInfo.getUserId(); но падает ошибка INSUFFICIENT_ACCESS_ON_CROSS_REFERENCE_ENTITY, insufficient access rights on cross-reference id: [] на инсерте.
Овнер кейса и записи в кастомном объекте один и тот же человек ?
Овнер кейса и записи в кастомном объекте один и тот же человек ?
Только что узнал что нельзя создавать шаринг рул на овнера кейса. Походу проблема решена.
а еще такое. В тригерре нету рилейшенов? Типа quality.Enquiry__r.OwnerId мне не увидеть? Нужно делать СЕЛЕКТ?
Только что узнал что нельзя создавать шаринг рул на овнера кейса. Походу проблема решена. а еще такое. В тригерре нету рилейшенов? Типа quality.Enquiry__r.OwnerId мне не увидеть? Нужно делать СЕЛЕКТ?
Да. В триггер попадают только поля первого порядка. Все что второго и дальше надо делать новый запрос.
[quote="remember"]В тригерре нету рилейшенов? Типа quality.Enquiry__r.OwnerId мне не увидеть? Нужно делать СЕЛЕКТ?[/quote] Да. В триггер попадают только поля первого порядка. Все что второго и дальше надо делать новый запрос.