The Process control is used to send requests to and receive callbacks from another business process. The Process control is typically used to call a subprocess from a parent process.
The following are the Process control methods:
package com.bea.control; import com.bea.control.ServiceProxy; import com.bea.control.Control; import com.bea.control.ControlException; import com.bea.wli.control.dynamicProperties.ProcessControlPropertiesDocument; import java.net.URI; /** * The process control is used to call a sub-process from a parent process. * Sub-process callbacks are routed to the caller process. The sub-process must * be in the same domain as the caller. The invocation is dispatched * internally over RMI without going through http. If the target process is * versioned, the actual version invoked depends on * the version strategy of the caller (as specified by the jpd:version annotation). * * The process control runtime properties can be configured externally through * dynamic properties and xquery selectors. */ public interface ProcessControl extends Control, ServiceProxy, Asynchronous { /** * Manual control over conversation ID * @param conversationID */ public void setConversationID(String conversationID); /** * Returns the conversation ID currently associated with this * control or null. * @return conversation id */ public String getConversationID(); /** * Manual control over the target uri. * @param uri * @throws ControlException if the caller process has "tightly-coupled" versioning semantics. */ public void setTargetURI(URI uri) throws ProcessControlException; /** * Returns the target URI or null if not assigned. * @return target uri */ public URI getTargetURI(); /** * Sets credential information. * @param username */ public void setUsername(String username); /** * Sets credential information. * @param password */ public void setPassword(String password); /** * Gets credential information. * @return username */ public String getUsername(); /** * Resets the conversational state of the proxy; this could result * in dropping an existing conversation. */ public void reset(); /** * Sets the dynamic properties for the control * @param props the dynamic properties for the control */ void setProperties(ProcessControlPropertiesDocument props) throws ProcessControlException; /** * Returns the current control properties. Note that this * does not include username/password. * @return the properties */ ProcessControlPropertiesDocument getProperties(); }
The following code shows an example of a sub-classed control. This code was automatically created by the control wizard based on a business process used in the WebLogic Integration samples.
package FunctionDemo; /** * @jc:location uri="/ApplicationIntegration/FunctionDemo/CustomerMgmt.jpd" * @editor-info:link source="CustomerMgmt.jpd" autogen="true" */ public interface CustomerMgmtPControl extends com.bea.control.ProcessControl, com.bea.control.ControlExtension { public interface Callback { /** * @common:message-buffer enable="true" */ public void sendSummary(java.lang.String summary); } /** * @jc:conversation phase="start" */ public void getCustomerInfo(java.lang.String firstName, java.lang.String lastName, java.lang.String email); }