Información de entorno de ejecución

Las instancias de objetos de datos de flujo de trabajo y objetos de datos de flujo de trabajo de lista existen tan pronto como sea promulga un proceso de flujo de trabajo, y existen hasta que el proceso se completa. Estas instancias de objeto de datos de flujo de trabajo están por tanto disponibles para ser utilizadas en las actividades (p.ej., pasar datos a un método de BPO) y en las transiciones (p. ej., hacer que los datos estén disponibles en la evaluación de las condiciones de transición) durante todo el tiempo de vida de esa instancia de proceso.

El atributo enactingUser del objeto de datos de flujo de trabajo Context_RuntimeInformation se establece al nombre de usuario del usuario cuyas acciones en la aplicación dieron lugar a la promulgación del proceso de flujo de trabajo. Esto no da lugar a que se asigne el mismo valor a la transacción cuando se invoca posteriormente un método de BPO en la instancia del proceso de flujo de trabajo. Esto se debe a la demarcación de transacción en el motor de flujo de trabajo cuando las actividades automáticas (es decir, métodos BPO) se invocan en el servidor de aplicaciones. Debido a la naturaleza asíncrona de esta invocación y al requisito de garantizar que la llamada al código de aplicación esté en su propia transacción, el motor de flujo de trabajo invoca el método de (usuario SYSTEM) en lugar del usuario que promulgó el proceso de flujo de trabajo. En efecto, desde la óptica real de un negocio, puede que la persona que promulga el flujo de trabajo ni siquiera sepa que ha invocado ese método de BPO.

De forma similar, debe tenerse en cuenta que el usuario que promulga de una instancia de proceso de flujo no se pasa a ninguna de las instancias de proceso de subflujo que pueden invocarse desde el proceso padre. Si el usuario que promulga la instancia de proceso padre fuera necesario en alguna de las instancias de proceso de subflujo, deberá pasarse explícitamente utilizando un atributo de objeto de datos de flujo de trabajo en las correlaciones de entrada de dicho proceso de subflujo.

También debe tenerse cuidado al actualizar los datos de instancia de atributo de objeto de datos de flujo de trabajo cuando se ejecuten actividades automáticas paralelas en una instancia de proceso de flujo de trabajo. Si tales actividades automáticas invocan el mismo método de BPO y y dicho método intenta actualizar los datos exactamente del mismo atributo de objeto de datos de flujo, podría producirse una situación de bloqueo de registro de base de datos. El diseñador del proceso de flujo de trabajo debería paliar tales situaciones diseñando la definición de proceso de flujo de trabajo de tal forma que garantice que las actividades automáticas que ejecutan en paralelo no actualicen el mismo atributo de objeto de datos de flujo.