有谁知道如何执行查询以获取所有公共日历?您可以通过转到设置...自定义...活动..公共日历和资源来查看列表
这些日历对象是什么?
我的目标是找到一种在 VisualForce 页面中显示这些日历的方法,以便用户更容易找到它们。
有谁知道如何执行查询以获取所有公共日历?您可以通过转到设置...自定义...活动..公共日历和资源来查看列表
这些日历对象是什么?
我的目标是找到一种在 VisualForce 页面中显示这些日历的方法,以便用户更容易找到它们。
如果您在 ID 上运行 .getSobjectType() ,它将作为日历对象出现。当您尝试查询该对象时,它说它不可用。看起来自定义设置是目前唯一的途径。
据我所知,Salesforce 没有直接公开公共日历对象供客户直接查询。
公共日历似乎属于标准对象 023 命名空间,但我在 Schema 中找不到任何具有该命名空间的对象,这使我相信 SFDC 已将它们隐藏起来。
如果要在 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 版本中执行此操作:“SELECT Id,Name FROM Calendar where Type='Resource'