Add the message component to the JavaServer Pages (JSP) file. Add the <bpe:form> tag to the <h:form> tag.
The <bpe:form> tag must include a model attribute.
The
following example shows how to add a message component.
<h:form>
<h:outputText value="Input Message" />
<bpe:form model="#{MyHandler.inputMessage}" readOnly="true" />
<h:outputText value="Output Message" />
<bpe:form model="#{MyHandler.outputMessage}" />
</h:form>
The model attribute of the message component refers
to a com.ibm.bpc.clientcore.MessageWrapper object. This wrapper object wraps
either a Service Data Object (SDO) object or a Java™ primitive type, for example, int or
boolean. In the example, the message is provided by a property of the MyHandler
managed bean.
Add the custom code to the JSF application. The
following example shows how to implement input and output messages.
public class MyHandler implements ItemListener {
private TaskInstanceBean taskBean;
private MessageWrapper inputMessage, outputMessage
/* Listener method, e.g. when a task instance was selected in a list handler.
* Ensure that the handler is registered in the faces-config.xml or manually.
*/
public void itemChanged(Object item) {
if( item instanceof TaskInstanceBean ) {
taskBean = (TaskInstanceBean) item ;
}
}
/* Get the input message wrapper
*/
public MessageWrapper getInputMessage() {
try{
inputMessage = taskBean.getInputMessageWrapper() ;
}
catch( Exception e ) {
; //...ignore errors for simplicity
}
return inputMessage;
}
/* Get the output message wrapper
*/
public MessageWrapper getOutputMessage() {
// Retrieve the message from the bean. If there is no message, create
// one if the task has been claimed by the user. Ensure that only
// potential owners or owners can manipulate the output message.
try{
outputMessage = taskBean.getOutputMessageWrapper();
if( outputMessage == null
&& taskBean.getState() == TaskInstanceBean.STATE_CLAIMED ) {
HumanTaskManagerService htm = getHumanTaskManagerService();
outputMessage = new MessageWrapperImpl();
outputMessage.setMessage(
htm.createOutputMessage( taskBean.getID() ).getObject()
);
}
}
catch( Exception e ) {
; //...ignore errors for simplicity
}
return outputMessage
}
}
The MyHandler managed bean implements the ItemListener
interface so that it can register as an item listener to list handlers. When
the user clicks an item in the list, the MyHandler bean is notified in its
itemChanged( Object item ) method about the selected item. The handler checks
the item type and then stores a reference to the associated TaskInstanceBean
object. To use this interface, add an entry to the appropriate list handler
in the faces-config.xml file as described in the documentation for the Details
component.
The MyHandler bean provides the getInputMessage and getOutputMessage
methods. Both of these methods return a MessageWrapper object. The methods
delegate the calls to the referenced task instance bean. If the task instance
bean returns null, for example because a message is not set, the handler creates
and stores a new, empty message. The message component displays the messages
provided by the MyHandler bean.