Utilice el componente CommandBar para integrar botones de acción en la
aplicación. El componente crea los botones para las acciones de la interfaz de usuario
y gestiona los sucesos que se crean al pulsar un botón.
Estos botones desencadenan funciones que actúan sobre objetos que la
interfaz com.ibm.bpe.jsf.handler.ItemProvider devuelve, como la clase BPCListHandler
o la clase BPCDetailsHandler. El componente CommandBar utiliza el proveedor de elementos que se
define mediante el valor del atributo model del código bpe:commandbar.
Proceso de los mandatos
Cuando se pulsa un botón de la sección
de barra de mandatos de la interfaz de usuario de la aplicación, el componente CommandBar
gestiona el suceso asociado del siguiente modo:
- El componente CommandBar identifica la implementación de la interfaz com.ibm.bpc.clientcore.Command
que se especifica para el botón que ha generado el suceso.
- Si el modelo asociado al componente CommandBar implementa la interfaz com.ibm.bpe.jsf.handler.ErrorHandler,
se invoca al método clearErrorMap para eliminar mensajes de error de sucesos anteriores.
- Se llama al método getSelectedItems de la interfaz ItemProvider. La lista de elementos que
se devuelve se pasa al mandato execute del mandato y se
invoca al mandato.
- El componente CommandBar determina el destino de navegación JSF (JavaServer Faces).
Si no se especifica un atributo action en el código bpe:commandbar,
el valor devuelto del método execute especifica el destino
de navegación. Si se establece el atributo action en un enlace de método JSF,
la serie que devuelve el método se interpreta como el destino de navegación.
El atributo action también puede especificar un destino de navegación explícito.
Manejo de errores
Se desencadena un mandato únicamente si una de estas condiciones
es verdadera:
- No se genera una excepción
- Si se genera una excepción, se trata de una excepción ErrorsInCommandException
Hay varios modos de implementar el manejo de errores del componente CommandBar:
- Puede decidir no utilizar ninguna de las características del componente CommandBar.
Si, por ejemplo, desea mostrar los errores en una página que es específica del
mandato seleccionado, la implementación del mandato puede obtener las excepciones
que se producen y propagarlas a un bean de página que se utiliza para la página de errores.
Puede hacer que el bean de página esté disponible para la implementación de mandatos utilizando el atributo
de contexto del código bpe:commandbar. Después de que se establece la excepción
en el bean de página, el mandato devuelve la serie de la norma de navegación JSF
definida para la página de errores.
- Si desea mostrar un mensaje de error a continuación de la sección de barra de mandatos
de la interfaz de usuario, cree una clase de excepción que implementa la interfaz de marcador com.ibm.bpc.clientcore.exception.CommandBarMessage.
Esta interfaz proporciona un catálogo de mensajes de mensajes de error.
- Si el mandato opera sobre una lista de elementos, quizá desee realizar un seguimiento
del éxito del mandato con todos los elementos de la lista. Para realizar un seguimiento de los errores,
correlacione cada excepción con el elemento para el que la operación ha producido un error. El componente CommandBar
puede pasar una correlación, que contiene los identificadores como claves y las excepciones como
valores, con el objeto de modelo que se define para el componente CommandBar.
Para que funcione este
mecanismo, el objeto de modelo debe implementar la interfaz com.ibm.bpe.jsf.handler.ErrorHandler
y el mandato debe generar una excepción com.ibm.bpc.clientcore.exception.ErrorsInCommandException.
El componente CommandBar luego pasa la correlación contenida en la excepción al
manejador de errores. Se desencadena el método action aunque se haya producido un error y se renueva
la vista actual. La aplicación Explorador de Business Process Choreographer
utiliza este método para mostrar excepciones en listas.
- Si genera una excepción ClientException que no implementa la interfaz CommandBarMessage
y no se trata de una excepción ErrorsInCommandException, el componente CommandBar
propaga la excepción al bean de error BPCError definido en el archivo de
configuración de la aplicación. El proceso de errores continúa con el destino de
navegación del error.