カスタムの visualforce ページを作成しました。ここのコントローラー クラスでは、ドロップダウンですべてのワークスペースのリストを取得して、ユーザーがデータを公開する場所を選択できるようにしたいと考えています。
これを達成する方法について、誰かが私にいくつかのガイドラインを提供できますか。
どんな助けでも大歓迎です。:)
カスタムの visualforce ページを作成しました。ここのコントローラー クラスでは、ドロップダウンですべてのワークスペースのリストを取得して、ユーザーがデータを公開する場所を選択できるようにしたいと考えています。
これを達成する方法について、誰かが私にいくつかのガイドラインを提供できますか。
どんな助けでも大歓迎です。:)
コンテンツ ワークスペースにクエリを実行し、それを選択オプション リストに配置して、それを visualforce ページで参照できるようにする必要があります。
頂点コントローラー:
public Id selectedWorkspaceId { get; set; }
private List<SelectOption> workspaceOptions;
public List<SelectOption> getWorkspaceOptions() {
if(workspaceOptions == null) {
for(ContentWorkSpace workspace : [select id, name from ContentWorkspace]) {
workspaceOptions.addNewSelectOption(
new SelectOption(workspace.id, workspace.name);
}
}
}
return workspaceOptions;
}
Visualforce ページ:
<apex:selectList value="{!selectedWorkspaceId}" size="1">
<apex:selectOptions value="{!workspaceOptions}"/>
</apex:selectList>
ドキュメンテーション:
以下は、Salesforce CRM Content のワークスペースのリストをクエリするための Java コード (コード レシピから) です。以下のコードを apex に変換すると、動作するはずです。
package com.sforce;
import org.apache.axis.client.Stub;
import com.sforce.soap.enterprise.*;
import com.sforce.soap.enterprise.sobject.*;
public class QueryWorkspace {
/**
* @param args
*/
public static void main(String[] args) {
QueryWorkspace queryWorkspace = new QueryWorkspace();
try {
queryWorkspace.queryAvailableWorkspaces();
} catch (Exception ex) {
ex.printStackTrace(System.err);
}
}
private void queryAvailableWorkspaces() throws Exception {
SforceServiceLocator sforceServiceLocator
= new SforceServiceLocator();
SoapBindingStub binding
= (SoapBindingStub) sforceServiceLocator.getSoap();
// Login
LoginResult lr = binding.login("user@jstest.org",
"password");
binding._setProperty(Stub.ENDPOINT_ADDRESS_PROPERTY,
lr.getServerUrl());
// Create a session header for subsequent calls
_SessionHeader sessionHeader = new _SessionHeader();
sessionHeader.setSessionId(lr.getSessionId());
binding.setHeader(sforceServiceLocator.getServiceName()
.getNamespaceURI(), "SessionHeader",
sessionHeader);
QueryResult query
= binding.query("select Id, Name from"
+ " ContentWorkspace");
SObject[] records = query.getRecords();
if (records != null) {
for (int i = 0; i < records.length; i++) {
ContentWorkspace contentWorkspace =
(ContentWorkspace)records[i];
System.out.println("Workspace Id:"
+ contentWorkspace.getId() + " Name:"
+ contentWorkspace.getName());
}
}
}
}