viernes, 12 de abril de 2013

[Oracle BPM Studio] Error: La tarea no se ha podido ejecutar correctamente


Para los que todavía desarrollamos en Oracle BPM Studio 10.3, hay mensajes de error que no son nada fáciles de identificar sin la correcta ayuda.
Es un error en tiempo de ejecución a.k.a. "en caliente":
Sea en el workspace local para pruebas -obviamente- locales o en la publicación en los servidores de prueba para testeos oficiales, o ya en producción para el usuario final;
El escenario es el siguiente:
Al aparecer este error, se pierde la actividad y aparece un frame rojo con el mensaje:
"La tarea (nombre de la tarea e id) no se ha podido ejecutar correctamente".
Y al darle clic al botón "Detalles", el mensaje:
"Consulte el archivo de registro para obtener más información [Código de error: workspace-XXXX]" donde XXXX es un valor numérico asignado, y corresponde a una descripción del error que será descrita a continuación...
Este error ocurre simplemente porque no está siendo controlado: se lanza una excepción fuera del alcance de un try-catch, ocurre un error a nivel de screenflow en los parámetros de entrada o salida de los presentations y llamadas a otros screenflows, etc.

La solución:

En el BPM Studio, deben ir a la pestaña de "Visor de registros" (en la parte inferior del workspace).
Internamente tiene 2 sub-pestañas: "Registro" y "Propiedades del elemento".
Dentro de la pentaña "Registro" deben escoger el combo: "Mensaje", "Contiene", y colocar el código del error.
Clic en "Aplicar filtro", y les aparece una advertencia en la grilla de abajo. (La cual abrirán dándole doble clic).

Al abrir la advertencia, serán llevados a la pestaña "Propiedades del elemento", 
Una vez dentro, deberán buscar la causa del error, la excepción no "atrapada", o asignación de valores null en donde no permite vacíos, problemas con la versión del JDK del BPM Studio contra el JDK de las clases java catalogadas.

En mi experiencia, debo agregar que la descripción la encontrarán de la mitad para abajo;
de la mitad para arriba son la cadena de excepciones que se han producido desde el screenflow hasta el proceso mismo.

Además, en una gran cantidad de casos (pero lejos aún de la totalidad), las líneas que me indican qué objetos de MI código (no del código que genera el BPM Studio) cometieron la infracción, están precedidas por "Caused by: fuego.lang.ValidationException", así:
(...) at fuego.component.ExecutionThread.run(ExecutionThread.java:408)
Caused by: fuego.lang.ValidationException:
at xobject.ModCoreNevado.Utilidades.BPMO_MessageBox.sMensaje_require (BPMO_MessageBox.xcdl)
at xobject.ModCoreNevado.Utilidades.BPMO_MessageBox.setSMensaje (BPMO_MessageBox.xcdl)   (...)
Ya dependiendo del tipo de error, si es poco descriptivo pero -aunque sea- ya indica desde dónde empezar a buscar qué se hizo mal! ;)



Recibe en tu correo electrónico las últimas actualizaciones de éste blog:
Ingrese su e-mail:
(y no olvide confirmar su suscripción)
También me encuentras en facebook. También en twitter. También en tumblr.

No hay comentarios.:

Publicar un comentario