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);
}