Events 如何使生成的事件显示在被邀请者的活动历史记录中

Events 如何使生成的事件显示在被邀请者的活动历史记录中,events,salesforce,apex,Events,Salesforce,Apex,用户可以选择一组联系人。在这一点上,我们创建一个新的事件,以及标记为被邀请者的每个联系人的EventRelation 这是通过控制器扩展完成的,请参见下面的代码,似乎可以完美地生成所有对象。问题是我不知道为什么该事件没有出现在受邀者的活动历史记录中 我们已为组织启用“共享活动”,日志中未出现任何错误或问题 需要正确设置EventRelation的3个属性,才能使事件显示在每个受邀请者的活动历史记录中 IsInvitee=true-需要让联系人自动接受事件 IsParent=true-需要正确显示

用户可以选择一组联系人。在这一点上,我们创建一个新的事件,以及标记为被邀请者的每个联系人的EventRelation

这是通过控制器扩展完成的,请参见下面的代码,似乎可以完美地生成所有对象。问题是我不知道为什么该事件没有出现在受邀者的活动历史记录中

我们已为组织启用“共享活动”,日志中未出现任何错误或问题

需要正确设置EventRelation的3个属性,才能使事件显示在每个受邀请者的活动历史记录中

IsInvitee=true-需要让联系人自动接受事件 IsParent=true-需要正确显示在活动历史记录中 IsWhat=false-需要正确显示在活动历史记录中
public with sharing class CreateEvent_Controller
{
    public Event eventNew {get; set;} 
    public List<Contact> selectedContacts { get; set; }  

    public CreateEvent_Controller(ApexPages.StandardSetController controller) 
    {
        selectedContacts = [select id, Name from Contact where id IN :((List<Contact>)controller.getSelected())];
        eventNew = new Event();
        eventNew.OwnerId = UserInfo.getUserId(); //Assigned To
        eventNew.GroupEventType = 2;
        eventNew.IsAllDayEvent = true;
        eventNew.IsGroupEvent = true;

        if(selectedContacts.isEmpty() == true)
        {
            ApexPages.Message noContactsSelected = new ApexPages.Message(ApexPages.Severity.INFO, 'No Contact Records Selected: Press The Cancel Button To Return To The Contacts Page To Select Contacts');
            ApexPages.addMessage(noContactsSelected);
        }

    }

    public PageReference SaveEvent() 
    {                       
        Database.saveresult eventInsertResult = database.insert(eventNew); 
        if(eventInsertResult.isSuccess())
        {
            List<EventRelation> contactEventLinks = new List<EventRelation>();

            System.debug('JW TEST: Event:'+eventNew.ID);
            for(Contact ct: selectedContacts)
            {
                EventRelation newLink = new EventRelation(EventId=eventNew.ID, RelationId=ct.ID, Status='Accepted', IsInvitee=true);
                contactEventLinks.add(newLink);
            }

            if (contactEventLinks.size() > 0)
            {
                try
                {
                    insert contactEventLinks;
                }
                catch (Exception e)
                {
                    delete eventNew;
                }
            }
        }

        PageReference pageRef = new PageReference(' HIDDEN FOR DEMO ');
        pageRef.setRedirect(true);
        return pageRef;          
    }
}