Compartir a través de


Comprensión del modelo de estado de actividad

Hay seis estados en los que se puede encontrar una actividad durante su duración. Estos estados son Initialized, Executing, Canceling, Closed, Compensating y Faulting.

Durante el estado Initialized, ActivityExecutionContext se ha creado para la actividad y se han ejecutado otros detalles de iniciación concretos de esa actividad. Por ejemplo, ciertas actividades de Windows Workflow Foundation, como SuspendActivity, comprueban si tienen una actividad compuesta primaria durante la inicialización.

Cuando una actividad entra en el estado Executing, se realiza la funcionalidad primaria de esa actividad.

Una actividad pasa explícitamente al estado Canceling debido a una actividad primaria o porque se produjo una excepción durante la ejecución de esa actividad.

El estado Closed es el último estado final de una actividad. La única advertencia es cuando una actividad finaliza correctamente, pero entonces debe pasar por el estado Compensating basado en lógica de negocio. La actividad pasará entonces de Closed a Compensating y de vuelta a Closed una vez que la lógica de compensación se haya terminado. Para obtener más información acerca de compensación, consulte Uso de la compensación en flujos de trabajo y Uso de la actividad CompensateActivity.

Si se produce una excepción durante el estado Executing, Canceling o Compensating de una actividad, entonces pasará al estado Faulting.

El siguiente diagrama de flujo muestra cómo una actividad pasa por los diferentes estados de actividad.

Diagrama del modelo de estado de actividad

La línea roja sólida representa el motor de tiempo de ejecución del flujo de trabajo responsable de pasar una actividad del estado Initialized al estado Executing o pasar del estado Closed al estado Compensating.

La línea amarilla sólida representa la actividad primaria responsable de pasar una actividad secundaria del estado Executing al estado Closed. Si crea una actividad compuesta personalizada, debe administrarla usted mismo.

La línea azul sólida representa el motor de tiempo de ejecución del flujo de trabajo responsable de pasar una actividad del estado Executing, Canceling o Compensating al estado Faulting.

La línea amarilla intermitente representa el motor de tiempo de ejecución de flujo de trabajo responsible de pasar una actividad del estado Canceling, Compensating o Faulting al estado Closed.

Nota

Una actividad no puede pasar del estado Closed al estado Executing. Cualquier intento de hacerlo producirá una excepción de la llamada a Execute.

Una actividad sólo debe cerrarse cuando todas las actividades secundarias están en los estados Closed o Initialized. Dado que ésta es una regla recursiva, el árbol entero por debajo de una actividad, que está intentando cerrar, debe ser Closed o Initialized para que la llamada tenga éxito.

Consulte también

Conceptos

Comprensión del contexto de ejecución de la actividad

Otros recursos

Actividades de Windows Workflow Foundation

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.