2012-01-25 5 views
2

誰でも公開カレンダーを取得するためのクエリを実行する方法を知っていますか?あなたはセットアップ...カスタマイズ...に行くことによってリストを見ることができます。アクティビティ..公開カレンダーとリソースSalesforceインスタンス内のすべてのパブリックカレンダーを取得するためのSOQLとは何ですか?

これらのカレンダーオブジェクトは何ですか?

私の目標は、ユーザーが簡単に見つけることができるように、VisualForceページでこれらのカレンダーを表示する方法を見つけることです。

答えて

0

私が知る限りでは、Salesforceは顧客が直接クエリできるように公開カレンダーオブジェクトを直接公開していません。

公開カレンダーは標準オブジェクトである023ネームスペースに入るようですが、そのネームスペースを持つスキーマ内にオブジェクトがないため、SFDCが私たちを隠していると考えられます。

+0

感謝をトリガします。私はこの同じ結論に達しましたが、そこに回避策があることを願っています!その間、カレンダーIDを格納するカスタム設定オブジェクトを作成します。これは管理するだけの苦痛です! – Bryan

1

IDで.getSobjectType()を実行すると、カレンダーオブジェクトとして表示されます。そのオブジェクトを試してみると、それは利用できないと言います。カスタム設定が今のところ唯一のルートであるように見えます。

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); 
} 
関連する問題