Aggiungere il componente Messaggio al file JSP (JavaServer
Pages). Aggiungere il tag bpe:form al tag <h:form>.
Il tag bpe:form deve comprendere un attributo model.
Il
seguente esempio illustra come aggiungere un componente Messaggio.
<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>
L'attributo del modello del componente Messaggio
fa riferimento all'oggetto com.ibm.bpc.clientcore.MessageWrapper. Questo oggetto del wrapper avviluppa un oggetto SDO (Service Data Object) o un tipo primitivo Java, ad esempio int o boolean. In questo esempio, il messaggio viene fornito da una proprietà del bean gestito MyHandler.
Aggiungere il codice personalizzato all'applicazione JSF. L'esempio di seguito riportato illustra il modo in cui implementare i messaggi di input o di output.
public class MyHandler implements ItemListener {
private TaskInstanceBean taskBean;
private MessageWrapper inputMessage, outputMessage
/* Metodo del listener, ad esempio quando un'istanza di attività era stata
selezionata in un gestore elenco.
* Verificare che il gestore sia registrato in faces-config.xml o manualmente.
*/
public void itemChanged(Object item) {
if( item instanceof TaskInstanceBean ) {
taskBean = (TaskInstanceBean) item ;
}
}
/* Ottenere il wrapper del messaggio di input
*/
public MessageWrapper getInputMessage() {
try{
inputMessage = taskBean.getInputMessageWrapper() ;
}
catch( Exception e ) {
; //...ignora gli errori per semplicità
}
return inputMessage;
}
/* Ottenere il wrapper del messaggio di output
*/
public MessageWrapper getOutputMessage() {
// Richiamare il messaggio dal bean. Se non è presente alcun messaggio, crearne
// uno se l'attività è stata richiesta dall'utente. Verificare che solo i
// potenziali proprietari o proprietari possono modificare il messaggio di output.
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 ) {
; //...ignora gli errori per semplicità
}
return outputMessage
}
}
Il bean gestito MyHandler implementa l'interfaccia com.ibm.jsf.handler.ItemListener
in modo che possa registrarsi come listener dell'elemento ai gestori elenchi. Quando
l'utente fa clic su un elemento nell'elenco, viene inviata una notifica al bean MyHandler nel relativo metodo itemChanged(
Object item ) sull'elemento selezionato. Il gestore verifica il tipo di elemento, quindi memorizza un riferimento all'oggetto TaskInstanceBean associato. Per utilizzare questa interfaccia, aggiungere una voce al gestore elenco appropriato
nel file faces-config.xml.
Il bean MyHandler
fornisce i metodi getInputMessage e getOutputMessage.
Entrambi i metodi restituiscono un oggetto MessageWrapper. I metodi delegano i richiami al bean di istanza dell'attività di riferimento. Se il bean dell'istanza dell'attività restituisce null, ad esempio perché non è impostato un messaggio, il gestore crea e memorizza un nuovo messaggio vuoto. Il componente Messaggio
visualizza i messaggi forniti dal bean MyHandler.