3

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

这些日历对象是什么?

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

4

4 回答 4

1

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

于 2015-06-03T19:04:22.700 回答
0

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

公共日历似乎属于标准对象 023 命名空间,但我在 Schema 中找不到任何具有该命名空间的对象,这使我相信 SFDC 已将它们隐藏起来。

于 2012-01-25T17:35:37.450 回答
0

如果要在 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);  
}
于 2017-06-01T13:16:45.123 回答
0

您可以通过以下方式在当前 API 版本中执行此操作:“SELECT Id,Name FROM Calendar where Type='Resource'

于 2019-01-30T05:19:29.810 回答