Partager via


Utilisation des modifications de workflow dans des workflows

Les modifications de workflow permettent d'apporter, au moment de l'exécution, des modifications à une instance de workflow exécutée. Ces modifications peuvent être motivées par des omissions au moment de la conception, des modifications apportées aux propriétés et aux liaisons d'activités ou par un besoin de logique métier qui améliore et modèle plus complètement des processus d'entreprise. Les modifications de workflow ne sont pas prévues pour les situations dans lesquelles vous souhaitez apporter des modifications globales, résultant en un workflow qui diffère considérablement des principes de conception d'origine. Dans un tel cas, vous devez concevoir un nouveau workflow au lieu d'apporter des modifications à une instance en cours d'exécution.

Les modifications de workflow s'appliquent à une instance unique d'un workflow. Elles ne prennent pas en charge les modifications de type qui s'appliquent à toutes les instances en cours d'exécution et futures d'un type de workflow donné.

Vous pouvez utiliser les modifications de workflow pour effectuer les opérations suivantes :

  • modifier la structure du workflow, par exemple ajouter ou supprimer une activité ;

  • modifier le contrôle de flux.

Quelques exemples de modifications de workflow courantes sont les suivants :

  • modifier une classe RuleSet utilisée par une activité PolicyActivity ;

  • mettre à jour des définitions RuleCondition pour modifier le comportement du branchement d'activités, telles que ConditionedActivityGroup et IfElseActivity ;

  • ajouter une nouvelle activité personnalisée ou une activité InvokeWorkflowActivity si vous devez ajouter un nouveau processus d'entreprise au workflow après son déploiement et le début de son exécution ;

  • créer des modifications de façon déclarative à l'aide d'une balise de workflow provenant de l'extérieur du workflow, utilisant la balise mise à jour en tant que paramètre pour appliquer la modification ;

  • ajouter une nouvelle activité EventDrivenActivity pour répondre à un nouvel événement, tel qu'une étape d'approbation supplémentaire.

L'application d'une modification à un workflow en cours d'exécution peut se produire dans deux points d'entrée différents : dans le fichier de code de workflow et à l'extérieur du workflow, par exemple l'hôte de workflow. Pour plus d'informations sur l'application des modifications de workflow, consultez Comment : appliquer des modifications de workflow à des workflows.

Restrictions sur les modifications de workflow

Les éléments suivants représentent quelques restrictions sur les modifications de workflow imposées par Windows Workflow Foundation que vous devez connaître :

  • Les activités peuvent être ajoutées ou supprimées d'une instance de workflow, mais les propriétés d'une activité existante ne peuvent pas être modifiées à moins que ces propriétés ne soient des conditions de règle ou des ensembles de règles déclaratifs.

  • Vous ne pouvez pas ajouter ni supprimer dynamiquement des activités enfants dans les types d'activité composites personnalisées qui incorporent les activités enfants dans le cadre de leur définition. La raison en est que ces activités composites personnalisées sont des activités de « boîte noire » et ne peuvent pas être modifiées fondamentalement au moment de l'exécution.

  • Une activité qui n'est pas à l'état Initialized ou Closed ne peut pas être supprimée dynamiquement au moment de l'exécution.

Un développeur de workflow peut restreindre l'utilisation des modifications via une ActivityCondition jointe à l'activité racine du workflow, utilisée par l'exécution de workflow pour déterminer si des modifications sont autorisées pour une instance de workflow spécifique.

Les activités composites personnalisées peuvent valider les modifications proposées, telles que l'ajout ou la suppression d'activités enfants. Cela permet aux développeurs d'activité de déterminer si des modifications de workflow proposées entrent en conflit avec les fonctionnalités prévues de l'activité. Ces fonctionnalités sont fournies par un ActivityValidatorpersonnalisé, où les développeurs peuvent substituer la méthode ValidateActivityChange et ajouter une logique de validation des modifications de workflow personnalisées.

Voir aussi

Concepts

Comment : appliquer des modifications de workflow à des workflows

Autres ressources

Développement d'activités Workflow (WF)
Développement de workflows

Footer image

Copyright ©2007 par Microsoft Corporation. Tous droits réservés.