Compartir a través de


Uso de cambios de flujo de trabajo en flujos de trabajo

Los cambios de flujo de trabajo le permiten realizar cambios en tiempo de ejecución en una instancia en ejecución de un flujo de trabajo. Estos cambios podrían deberse a omisiones en el tiempo de diseño, cambios en las propiedades y enlaces de las actividades o una necesidad de lógica de negocio que mejora y modela de manera más completa los procesos de negocio. Los cambios de flujo de trabajo no están pensados para situaciones en las que desea realizar modificaciones al por mayor, lo que llevaría a un flujo de trabajo que varía significativamente de sus principios de diseño originales. En tal caso, debería diseñar un nuevo flujo de trabajo en lugar de realizar cambios en una instancia en ejecución.

Los cambios en un flujo de trabajo se aplican a una instancia única de un flujo de trabajo. No admiten cambios basados en tipo que se replican en todas las instancias, en ejecución y futuras, de un tipo determinado de flujo de trabajo.

Puede utilizar cambios de flujo de trabajo para hacer lo siguiente:

  • Por ejemplo, cambiar la estructura de flujo de trabajo, agregar o quitar una actividad.

  • Cambiar el control de flujo.

Algunos ejemplos de cambios del flujo de trabajo comunes incluyen lo siguiente:

  • Cambiar un RuleSet utilizado por una actividad PolicyActivity.

  • Actualizar definiciones RuleCondition para cambiar el comportamiento de actividades ramificadas, como ConditionedActivityGroup y IfElseActivity.

  • Agregue una nueva actividad personalizada o una actividad InvokeWorkflowActivity si tiene que agregar un nuevo proceso de negocio a su flujo de trabajo después de implementarlo y ejecutarlo.

  • Cambios de creación que usan declarativamente el marcado de flujo de trabajo desde fuera del flujo de trabajo, tomando el marcado actualizado como un parámetro para efectuar el cambio.

  • Agregue una nueva actividad EventDrivenActivity para responder a un nuevo evento, como un paso de aprobación adicional.

Aplicar un cambio de flujo de trabajo a un flujo de trabajo en ejecución puede darse en dos puntos de entrada diferentes: en el archivo de código del flujo de trabajo y fuera del flujo de trabajo, como el host del flujo de trabajo. Para más información acerca de la aplicación de cambios de flujo de trabajo, consulte Cómo aplicar cambios de flujo de trabajo a los flujos de trabajo.

Restricciones en los cambios de flujo de trabajo

A continuación se muestran algunas restricciones en los cambios de flujo de trabajo impuestas por Windows Workflow Foundation que debe tener en cuenta:

  • Se pueden agregar o quitar actividades de una instancia de flujo de trabajo, pero no se pueden cambiar las propiedades en una actividad existente a menos que esas propiedades sean condiciones de regla declarativas o conjuntos de reglas.

  • No se pueden agregar o quitar de manera dinámica las actividades secundarias de los tipos de actividad compuesta personalizada que incorporen actividades secundarias como parte de su definición. Esto se debe a que actividades compuestas personalizadas como esta son actividades de "caja negra" y no se pueden modificar fundamentalmente durante el tiempo de ejecución.

  • Una actividad que no está en los estados Initialized o Closed no se puede quitar dinámicamente durante el tiempo de ejecución.

Un desarrollador de flujo de trabajo puede restringir el uso de cambios de flujo de trabajo a través de una ActivityCondition adjunta a la actividad raíz del flujo de trabajo, que es usada por el tiempo de ejecución del flujo de trabajo para determinar si se permiten o no los cambios de flujo de trabajo para una instancia de flujo de trabajo determinada.

Las actividades compuestas personalizadas pueden validar cambios propuestos, como la suma o eliminación de actividades secundarias. Esto permite a los programadores de actividad determinar si cualquier cambio de flujo de trabajo propuesto entra en conflicto con la funcionalidad intencional de su actividad. Esta funcionalidad se proporciona a través de un ActivityValidator personalizado, donde los programadores pueden invalidar el método ValidateActivityChange y agregar su lógica de validación de cambios de flujo de trabajo personalizados.

Consulte también

Conceptos

Cómo aplicar cambios de flujo de trabajo a los flujos de trabajo

Otros recursos

Desarrollo de actividades de flujo de trabajo
Desarrollo de flujos de trabajo

Footer image

Copyright © 2007 Microsoft Corporation. Reservados todos los derechos.