Мы делимся событиями календаря с пользователем сообщества, используя механизм ниже.
- Создан универсальный c аккаунт с именем «Аккаунт доступности для интервью» с типом записи как «Образовательное учреждение».
- Предоставил общий доступ к учетной записи пользователям сообщества, создав правила общего доступа с доступом «Чтение / запись» для учетной записи.
- Изменяет OWD для «Активность» на «Контролируемый родителем» для внутреннего и внешнего доступа. .
- При создании события календаря владелец должен выбрать учетную запись как «Связанную с».
Затем события общего календаря, которые мы показываем пользователю сообщества в компоненте молнии. Затем пользователь сообщества выбирает событие из компонента молнии и успешно обновляет его. В то же время мы пытаемся добавить пользователя сообщества в качестве участника к событию, то есть мы создаем запись в «объекте EventRelation», но получаем «вставка не удалась. Первое исключение в строке 0; Первая ошибка: INSUFFICIENT_ACCESS_OR_READONLY, ошибка NULL: []. Мы реализовали эту логику c в контроллере Apex.
Короче говоря, пользователь сообщества пытается добавить себя в качестве участника в событие, вставляя запись в объект «Event Relation», и он получает недостаточно ошибка доступа к объекту «Event Relation». Но в то же время он может создавать, редактировать и читать записи событий.
Код Apex:
Public static boolean bookInterview(Id eventId){
try{
/*Add user as a attendee in EventRelation object*/
EventRelation eveRelation= new EventRelation();
eveRelation.EventId=eventId;
eveRelation.RelationId=Userinfo.getUserId();
Insert eveRelation;
/*Add application related info & contact id on Event object */
User userDetails=[Select ContactId,Email from User where Id =:Userinfo.getUserId()];
Id applicationId=[Select Id from Application__c where IsActive__c=true and applicant__c=:userDetails.ContactId order by createddate ASC Limit 1].id;
Event updateEve=[Select WhoId from Event where id=:eventId];
updateEve.WhoId=userDetails.ContactId;
updateEve.WhatId=applicationId;
updateEve.ApplicantEmailId__c=userDetails.Email;
updateEve.Application__c=applicationId;
Update updateEve;
return true;
}
catch(Exception e){
throw new AuraHandledException(e.getMessage());
}
}