Manejo de listas en el componente de lista

Todas las instancias del componente de lista tienen asociada una instancia de la clase com.ibm.bpe.jsf.handler.BPCListHandler.

El manejador de listas realiza un seguimiento de qué elementos se seleccionan y proporciona una mecanismo de notificación. El manejador de listas se enlaza al componente de lista mediante el atributo model del código bpe:list.

El mecanismo de notificación del manejador de listas se implementa utilizando la interfaz com.ibm.bpe.jsf.handler.ItemListener. El Explorador de Business Process Choreographer utiliza este mecanismo de notificación para asociar las entradas de lista a las páginas de detalles para los distintos tipos de elementos. El desencadenante de un suceso de notificación suele ser una de las propiedades de los elementos que se muestran en la lista actual.

Para aprovechar el mecanismo de notificación, establezca el valor del atributo action del código bpe:column para la propiedad en el destino de navegación JSF con el que va a continuar la aplicación cuando se desencadene el suceso de notificación. El componente de lista muestra la entrada de la columna como un enlace de mandato JSF. Si se desencadena el enlace, se determina el objeto que representa la entrada de la lista y se pasa a todos los receptores de elementos registrados. Puede registrar implementaciones de esta interfaz en el archivo de configuración de la aplicación JSF (JavaServer Faces).

La clase BPCListHandler también proporciona un método refreshList. Puede utilizar este método en enlaces de método JSF para implementar un control de interfaz de usuario para ejecutar de nuevo la consulta.

Implementaciones de consulta

Puede utilizar el manejador de listas para mostrar todos los tipos de objetos y sus propiedades. El contenido de la lista que se muestra depende de la lista de objetos que la implementación de la interfaz com.ibm.bpc.clientcore.Query que está configurada para el manejador de listas devuelve. Puede establecer la consulta mediante programación utilizando el método setQuery de la clase BPCListHandler o puede configurarla en los archivos de configuración JSF de la aplicación.

Puede ejecutar consultas sólo con las API de Business Process Choreographer, pero también con cualquier otra fuente de información que sea accesible desde la aplicación, por ejemplo, un sistema de gestión de contenido o una base de datos. El único requisito es que el resultado de la consulta se devuelva como una java.util.List de objetos del método execute.

El tipo de los objetos devueltos debe garantizar que están disponibles los métodos getter adecuados para todas las propiedades que se muestran en las columnas de la lista para la que se define la consulta. Para asegurarse de que el tipo del objeto que se devuelve se ajusta a las definiciones de lista, puede establecer el valor de la propiedad type en la instancia de BPCListHandler que se define en el archivo de configuración de Faces con el nombre de clase plenamente cualificado de los objetos devueltos. Puede devolver este nombre en la llamada a getType de la implementación de consulta. Durante la ejecución, el manejador de listas comprueba que los tipos de objetos son conforme a las definiciones.

Para correlacionar mensajes de error con entradas específicas de una lista, los objetos devueltos por la consulta deben implementar un método con la signatura: public Object getID().

Manejo de errores

Puede aprovechar las funciones de manejo de errores proporcionadas por la clase BPCListHandler en las siguientes situaciones de error.
  • Errores que se producen cuando se ejecutan consultas o se ejecutan mandatos

    Si se produce un error durante la ejecución de una consulta, la clase BPCListHandler distingue entre errores que se han producido por derechos de acceso insuficientes y otras excepciones. Para obtener errores por derechos de acceso insuficientes, el parámetro rootCause de la excepción ClientException que el método execute de la consulta genera debe ser una excepción com.ibm.bpe.api.EngineNotAuthorizedException o com.ibm.task.api.NotAuthorizedException. El componente de lista muestra el mensaje de error en lugar del resultado de la consulta.

    Si el error no se ha producido por derechos de acceso insuficientes, la clase BPCListHandler pasa el objeto de excepción a la implementación de la interfaz com.ibm.bpc.clientcore.util.ErrorBean que se define mediante la clave BPCError en el archivo de configuración de la aplicación JSF. Cuando se establece la excepción, se llama al destino de navegación de errores.

  • Errores que se producen al trabajar con elementos que se muestran en la lista

    La clase BPCListHandler implementa la interfaz com.ibm.bpe.jsf.handler.ErrorHandler. Los explotadores pueden proporcionar información sobre estos errores con el parámetro map de tipo java.util.Map del método setErrors. Esta correlación contiene identificadores como claves y las excepciones como valores. Los identificadores deben ser los valores devueltos por el método getID del objeto que ha producido el error. Cuando se muestra de nuevo la lista, el manejador de listas muestra los mensajes de error para las entradas de lista correspondientes en una columna aparte. Si se establece la correlación y cualquiera de los ID coincide con cualquiera de los elementos mostrados en la lista, el manejador de listas añade automáticamente una columna que contiene el mensaje de error a la lista.

    Para impedir mensajes de error obsoletos en la lista, restablezca la correlación de errores. En las siguientes situaciones, se restablece automáticamente la correlación:
    • Se llama a la clase BPCListHandler del método refreshList.
    • Se establece una nueva consulta en la clase BPCListHandler.
    • Se utiliza el componente CommandBar para desencadenar acciones sobre elementos de la lista. El componente CommandBar utiliza este mecanismo como uno de los métodos de manejo de errores.

Condiciones de uso |

Última actualización: Wed Apr 19 21:34:07 2006

(c) Copyright IBM Corporation 2005, 2006.
Este centro de información está basado en tecnología Eclipse (http://www.eclipse.org)