Utilice el componente de lista del Explorador de Business
Process Choreographer para visualizar una lista de objetos de modelo de
cliente, por ejemplo, instancias de proceso de empresa o
instancias de tarea.
- Añada el componente de lista al archivo JSP (JavaServer Pages).
Añada el código bpe:list al código
h:form.
El código bpe:list debe incluir un atributo model.
Añada los códigos bpe:column al código bpe:list para añadir
las propiedades de los objetos que han de aparecer en cada una de las filas de la lista.
El siguiente ejemplo muestra cómo añadir un componente de lista para visualizar instancias de tarea.
<h:form>
<bpe:list model="#{TaskPool}">
<bpe:column name="name" action="taskInstanceDetails" />
<bpe:column name="state" />
<bpe:column name="kind" />
<bpe:column name="owner" />
<bpe:column name="originator" />
</bpe:list>
</h:form>
El atributo model hace referencia a un bean
gestionado, TaskPool. El bean gestionado proporciona la lista de objetos Java que la lista reitera y luego
visualiza en filas individuales.
- Configure el bean gestionado al que se hace referencia en el código
bpe:list.
Para el componente de lista, este bean gestionado debe ser una
instancia de la clase com.ibm.bpe.jsf.handler.BPCListHandler.
El
siguiente ejemplo muestra cómo añadir el bean gestionado TaskPool al archivo de
configuración.
<managed-bean>
<managed-bean-name>TaskPool</managed-bean-name>
<managed-bean-class>com.ibm.bpe.jsf.handler.BPCListHandler</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
<managed-property>
<property-name>query</property-name>
<value>#{TaskPoolQuery}</value>
</managed-property>
<managed-property>
<property-name>type</property-name>
<value>com.ibm.task.clientmodel.bean.TaskInstanceBean</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>htmConnection</managed-bean-name>
<managed-bean-class>com.ibm.task.clientmodel.HTMConnection</managed-bean-class>
<managed-bean-scope>application</managed-bean-scope>
<managed-property>
<property-name>jndiName</property-name>
<value>java:comp/env/ejb/LocalHumanTaskManagerEJB</value>
</managed-property>
En el ejemplo se muestra que TaskPool tiene dos propiedades
configurables: query y type.
El valor de la propiedad query hace referencia a otro bean gestionado,
TaskPoolQuery. El valor de la propiedad type especifica la clase de bean, cuyas
propiedades se muestran en las columnas de la lista visualizada.
La instancia de consulta asociada también puede tener un tipo de propiedad.
Si se especifica un tipo de propiedad, debe ser el mismo que el tipo
especificado para el manejador de listas.
Para proporcionar una conexión con Human Task Manager, se implementa
el bean gestionado TaskPool utilizando el bean gestionado htmConnection.
- Añada el código personalizado del bean gestionado al que hace
referencia el manejador de listas.
El siguiente ejemplo muestra cómo añadir código personalizado
al bean gestionado TaskPool.
public class MyTaskQuery implements Query {
public List execute throws ClientException {
// Examinar el archivo faces-config para un bean gestionado “htmConnection”.
//
FacesContext ctx = FacesContext.getCurrentInstance();
Application app = ctx.getApplication();
ValueBinding htmVb = app.createValueBinding("#{htmConnection}");
htmConnection = (HTMConnection) htmVb.getValue(ctx);
HumanTaskManagerService taskService =
htmConnection.getHumanTaskManagerService();
// A continuación, llamar al método de consulta actual en el servicio de
// Gestor de tareas humanas.
//
QueryResultSet queryResult = taskService.query(
“DISTINCT TASK.TKIID, TASK.NAME, TASK.KIND, TASK.STATE, TASK.TYPE,”
+ “TASK.STARTED, TASK.ACTIVATED, TASK.DUE, TASK.EXPIRES, TASK.PRIORITY” ,
“TASK.KIND IN(101,102,105) AND TASK.STATE IN(2)
AND WORK_ITEM.REASON IN (1)”,
null,
null,
null); List applicationObjects = transformToTaskList ( queryResult );
return applicationObjects ;
}
private List transformToTaskList(QueryResultSet result) {
ArrayList array = null;
int entries = result.size();
array = new ArrayList( entries );
// Transforma cada fila de QueryResultSet en beans de instancia de tarea.
for (int i = 0; i < entries; i++) {
result.next();
array.add( new TaskInstanceBean( result, connection ));
}
return array ;
}
}
El bean TaskPoolQuery consulta las propiedades de los objetos
Java.
Este bean debe implementar la interfaz com.ibm.bpc.clientcore.Query. Cuando el
manejador de listas renueva su contenido, llama al método execute de la
consulta.
La llamada devuelve una lista de objetos
Java. El método getType debe devolver el
nombre de clase de los objetos
Java devueltos.
La aplicación JSF contiene ahora una página JavaServer que muestra las
propiedades de la lista de objetos solicitada, por ejemplo, el estado, clase,
propietario y originador de las instancias de tarea que están disponibles para
el usuario.