Calendar 在Salesforce实例中,获取所有公共日历的SOQL是什么?

Calendar 在Salesforce实例中,获取所有公共日历的SOQL是什么?,calendar,salesforce,soql,Calendar,Salesforce,Soql,有人知道如何执行查询以获取所有公共日历吗?您可以通过转到设置来查看列表。。。定制活动。。公共日历和资源 这些日历对象是什么 我的目标是找到一种在VisualForce页面中显示这些日历的方法,让用户更容易找到它们 据我所知,Salesforce并没有直接公开公共日历对象供客户直接查询 公共日历似乎属于023名称空间,这是一个标准对象,但我在模式中找不到任何具有该名称空间的对象,这使我相信SFDC已经对我们隐藏了它们。如果在ID上运行.getSobjectType,它将作为日历对象出现。当您尝试查

有人知道如何执行查询以获取所有公共日历吗?您可以通过转到设置来查看列表。。。定制活动。。公共日历和资源

这些日历对象是什么


我的目标是找到一种在VisualForce页面中显示这些日历的方法,让用户更容易找到它们

据我所知,Salesforce并没有直接公开公共日历对象供客户直接查询


公共日历似乎属于023名称空间,这是一个标准对象,但我在模式中找不到任何具有该名称空间的对象,这使我相信SFDC已经对我们隐藏了它们。

如果在ID上运行.getSobjectType,它将作为日历对象出现。当您尝试查询该对象时,它会说它不可用。现在看来,自定义设置是唯一的途径。

如果要在Visualforce中显示列表,可以在日历页面上使用PageReference GetContent方法,然后从html中获取详细信息

请注意,这在APEX触发器中不起作用

Public Class CalendarResource{
    public Id crId {get;set;}
    public String label {get;set;}
    public String type {get;set;}
}

Pagereference r = new PageReference('/_ui/common/data/LookupResultsFrame?lkfm=swt&lknm=cal&lktp=023&cltp=resource&lksrch=#');
String html = r.getContent().toString();
List<CalendarResource> cals = new List<CalendarResource>();

Matcher m = Pattern.compile('lookupPick\\(\'swt\',\'cal_lkid\',\'cal\',\'\',\'(.*?)\',\'(.*?)\',\'\',\'\'\\)">(.*?)</a></TH><td class=" dataCell  ">(.*?)<\\/td><\\/tr>').matcher(html);

//While there are labels
while (m.find()) {
    //system.debug(m.group(3));
    //system.debug(m.group(4));

    CalendarResource cr = new CalendarResource();
    cr.crId = m.group(1);
    cr.label = m.group(2);
    cr.type = m.group(4);
    cals.add(cr);
}
for(CalendarResource cr : cals){
    system.debug(cr.crId+'__'+cr.label+'___'+cr.type);  
}

在当前API版本中,您可以通过以下方式执行此操作:从日历中选择Id、名称,其中Type='Resource'

谢谢。我得出了同样的结论,但我们希望有一个解决办法!同时,我将创建一个自定义设置对象来存储日历ID。这只是一个痛苦的管理!