It is possible to create an Object prompt through the Web SDK by utilizing both beans and events. In the following standalone code an object prompt named testprompt is created with the Customer attribute set in its predefined list of objects:
package com.sdk.standalone;
import com.Strategy.web.beans.BeanFactory;
import com.Strategy.web.beans.GenericRequestKeys;
import com.Strategy.web.beans.GenericWebEvent;
import com.Strategy.web.beans.PromptDefinitionBean;
import com.Strategy.web.beans.RequestKeys;
import com.Strategy.web.beans.WebBeanException;
import com.Strategy.web.beans.WebException;
import com.Strategy.web.objects.EnumWebPromptType;
import com.Strategy.web.objects.WebIServerSession;
import com.Strategy.web.objects.WebObjectsFactory;
import com.Strategy.web.objects.WebSessionInfo;
public class CreatePrompt {
public static void main(String[] args) throws WebBeanException, WebException {
// TODO Auto-generated method stub
createPrompt();
}
public static WebIServerSession createSession()
{
WebObjectsFactory factory=WebObjectsFactory.getInstance();
WebIServerSession serverSession = factory.getIServerSession();
serverSession.setServerName("localhost");
serverSession.setServerPort(0);
serverSession.setProjectName("Strategy Tutorial");
serverSession.setLogin("administrator");
serverSession.setPassword("");
return serverSession;
}
public static void createPrompt() throws WebBeanException, WebException {
BeanFactory bf = BeanFactory.getInstance();
PromptDefinitionBean pdb = (PromptDefinitionBean) bf.newBean("PromptDefinitionBean");
pdb.setSessionInfo((WebSessionInfo)createSession());
//set to web object prompt
pdb.setPromptType(EnumWebPromptType.WebPromptTypeObjects);
RequestKeys frameKeys = new GenericRequestKeys();
//This event corresponds to the "Use a pre-defined list of objects" option when creating an Object prompt
// For more details see 'setElementsAvailList' in the PromptDefinitionBean of the event handler reference
frameKeys.add(GenericWebEvent.URL_EVENT_NAME, "4097016");
frameKeys.add(GenericWebEvent.URL_SOURCE_NAME, "pdb.4097016");
// A list of elements. In this example only Customer is added.
frameKeys.add("objectsList", "8D679D3C11D3E4981000E787EC6DE8A4~12~Customer");
pdb.handleRequest(frameKeys);
pdb.collectData();
pdb.setName("testpromt");
// Save the prompt in the Public Objects folder
pdb.saveAs("testpromt", "testpromt", "98FE182C2A10427EACE0CD30B6768258", true);
System.out.println("Done!");
}
}