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

cancel
Showing results for 
Search instead for 
Did you mean: 
mlagneaux
Active Member

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

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 Smiley Happy
Merci pour votre aide sur le sujet.
4 Replies
jayjayecl
Active Member II

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

Bonjour,

réponse tardive, mais qui pourrait toujours servir à d'autres, dans votre exemple :
- modifiez votre schéma de processus (processdefinition.xml)
- configurez la mise à jour du schéma (flag "redeploy")
- dans votre modèle, ajoutez les nouvelles propriétés (sans supprimer "property1")
- dans le web-client-config-custom.xml, masquez la property1, affichez les nouvelles propriétés

Le comportement sera alors celui que vous souhaitez
mlagneaux
Active Member

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

Bonjour,

Tout d'abord merci pour cette réponse. Même tardive, elle est la bienvenue !

Je ne sais pas si j'ai été assez clair dans mon premier message et je voudrais donc éclaircir un point précis.
Si je reprends l'exemple que j'ai fourni, je souhaite qu'après le redéploiement de mon workflow et donc la mise à jour du modèle et du paramétrage associés, les tâches "exampleTask" des anciennes instances de mon workflow affichent toujours la propriété "property1".

La solution proposée ci-dessus permet-elle de le faire ? Si c'est le cas, cela veut dire qu'Alfresco conserve en quelque sorte un historique du fichier web-client-config-custom, non ?
jayjayecl
Active Member II

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

En effet, j'avais mal pris en compte ce paramètre Smiley Happy

Pourriez-vous essayer la chose suivante, et nous donner les résultats ici :
- dans la nouvelle définition du modèle, supprimez la propriété 1
- dans le web-client-config-custom.xml, laissez affichée la propriété 1
mlagneaux
Active Member

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

Je considère ce post comme "Résolu".
Il faut en effet que le modèle et la configuration associés au workflow puisse réponde aux 2 définitions existantes.