AnsweredAssumed Answered

Modification d'un workflow déjà déployé

Question asked by mlagneaux on Dec 22, 2010
Latest reply on Jul 5, 2011 by mlagneaux
Bonjour,

Voici mon problème :
J'ai créé un nouveau workflow dans Alfresco 3.2r. Ce workflow a été déployé en production et est actuellement utilisé (il existe des instances de ce workflow).

Aujourd'hui, je souhaite faire évoluer ce workflow. Ces évolutions se situent aussi bien au niveau de la définition du workflow (ajout de code Javascript dans une tâche par exemple) que du modèle de données (et paramétrage associé) des tâches de ce workflow (ex : ajout/suppression de propriétés pour un type de tâche de mon workflow).

Jusqu'à maintenant, quand j'étais dans cette situation, je supprimais la définition actuelle du workflow et déployait ensuite la nouvelle définition du workflow et toute la conf associée.
Cela a pour effet de perdre toutes les instances en cours du workflow ; ce que je voudrais éviter maintenant.

D'après ce que j'ai pu voir dans le guide du développeur Alfresco, les évolutions au niveau de la définition du workflow peuvent être gérées correctement par Alfresco. Si l'on redéploie une définition du workflow, Alfresco crée une nouvelle version de cette définition : les anciennes instances du workflow se poursuivront en suivant l'ancienne définition du workflow et les nouvelles instances suivront la nouvelle version de la définition du workflow.

Maintenant, y a-t-il un moyen de gérer proprement les évolutions qui seraient apportées à un type correspondant à une tâche de notre workflow ?

Par exemple :
- dans la version 1.0 du workflow, le type de tâche "exampleTask" a une propriété "property1" de type text.
- dans la version 1.1 du workflow, le type de tâche "exampleTask" a une propriété "property2" de type text et une propriété "property3" de type booléen. La propriété "property1" est supprimée.

Dans ce cas, faut-il dupliquer le type "exampleTask" ? Pour l'exemple ci-dessus, je serais donc amené à conserver le type "exampleTask" avec une propriété "property1" de type text et à créer un type "exampleTaskBis" avec une propriété "property2" de type text et une propriété "property3" de type booléen.

La solution que j'envisage oblige donc à dupliquer les types correspondants aux tâches que je souhaite faire évoluer et donc également tout le paramétrage associé (propertysheet associé à ces types).

Y a-t-il une solution plus propre et plus simple à mettre en oeuvre ?

J'espère avoir été suffisamment clair dans les explications :)
Merci pour votre aide sur le sujet.

Outcomes