Программно получить список всех рабочих пространств (общий + личный) на странице VisualForce - PullRequest
1 голос
/ 04 июля 2011

Я создал пользовательскую страницу visualforce. Здесь, в классе контроллера, я хочу получить список всех рабочих пространств в раскрывающемся списке, чтобы пользователь мог выбирать, где публиковать данные

Может кто-нибудь дать мне несколько советов о том, как этого добиться.

Любая помощь приветствуется. :)

Ответы [ 2 ]

2 голосов
/ 12 июля 2011

Вам необходимо выполнить запрос к рабочим областям содержимого и затем поместить их в список опций выбора, на который затем можно ссылаться на странице visualforce.

Контроллер Apex:

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>

Документация:

0 голосов
/ 05 июля 2011

Ниже приведен код Java (от получения кода) до запроса списка рабочих пространств в Salesforce CRM Content. Переведите приведенный ниже код в 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());
            }
        }        
    }

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...