lunes, 30 de enero de 2012

Manejo de Excepciones Avanzadas en BPM Lombardi


En la automatización de procesos con Lombardi, cuando se requiere hacer implementaciones complejas  como llamados a sistemas externos, puede ocurrir que no se tenga disponibilidad de los servicios que se van a  invocar como: Servicios de datos, Web Services, invocación a sistemas de archivos, etc. Esto es común cuando se requiere consultar información que recide en otros sistemas o cuando se quiere compartir a los mismos, desde el proceso de negocio. Por esta razón en el modelado debe contemplarse que hacer, en caso de que se presente algún tipo de error.

Para actividades que son de tipo System Service, que van hacia sistemas externos como un llamado a un Web Service, se les debe agregar un Intermetiate Exception event y a este se le le asocia un flujo de secuencia, hacia una actividad de tipo Human service para que se pueda visualizar los errores y de esta manera reintentarlos manualmente (Esto dependerá del negocio). En caso de que los reintentos manuales se ejecuten exitosamente, el flujo continuará su curso.

 Como el error se presenta en un line diferente. Se debe asignar de la siguiente manera, a una variable del proceso:



Dentro el flujo interno del servicio: “Enviar información Financiera”, es importante se lanze la excepción con una figura Throw Exception, de esta manera el subproceso la maneja con el  Intermetiate Exception event. Cuando se presenta un error Lombardi lo representa como un XML y este puede ser complementado para envíar información adicional que se requiera, para que despues sea manejada por ejemplo en un  Human service.




 Flujo interno del manejo de la excepción:
Más información en el Infocenter: Manejando Excepciones


5 comentarios:

  1. Hola antes que nada quiero felicitarte por estas muy buenas publicaciones que has realizado, por otro lado quiero comentarte que estoy interado en el mapa mental para la certificacion de TOGAF, te dejo mi correo, y cualquier cosa en la que pueda apoyarte con mucho gusto.
    jroareyes@gmail.com

    ResponderEliminar
  2. Muchas gracias Julio. No había visto el comentario. Ya te lo envíe, sino te llego me escribes de nuevo.

    ResponderEliminar
  3. Hola Julio, tenia una duda esto quería saber si me podías ayudar de alguna forma, tengo un token perdido, porque se elimino una actividad, lo que necesitaba hacer es recuperar y avanzar las actividades que quedaron ahi, para ello queria capturar una excepcion y hacer que avanzara esta, pero no me resulta de ninguna forma.
    Si me pudieras ayudar muchas gracias.

    ResponderEliminar
  4. Este comentario ha sido eliminado por el autor.

    ResponderEliminar
  5. Pésima manera de manejo de excepciones mi amigo, el usuario final no tiene por que ver el manejo de errores a nivel del modelado BPM, teniendo en claro que los procesos deben representar la lógica del negocio y conceptos como excepciones no tiene ninguna relación con la representación del negocio.. el manejo de excepciones debe ser clasificado y administrado a nivel de flujo de pantallas.

    tenemos 3 tipos de excepciones:
    Excepciones que invalidan los datos de pantalla: llama a servicios o sistemas externos que alimentan nuestro coach con información, estas excepciones deben ser manejas previa a la muestra de un formulario y colocar una pantalla de apoyo con la opción de reintentar.
    excepciones de consulta intermedia: excepciones que se presentan al llamar a servicios o sistemas dentro de los eventos que se generan en nuestra pagina, para lo cual se usa normalmente algun codigo y mensaje adjuntando en alguna sección de la pantalla el mensaje de error imposibilitando al usuario de completar la actividad.
    Excepciones en el complete de nuestra actividad: llamadas a servicios otorgando datos ingresados en nuestro coach, deben ser excepciones encapsuladas en el post de nuestra actividad y se debe implementar una nueva pantalla al usuario, dando la posibilidad de reintentar la llamada al servicio en caso de generarse algún error.

    saludos

    ResponderEliminar