Lancer une jsp à la fin d'un workflow

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

Re: Lancer une jsp à la fin d'un workflow

Cleseach,

Je rejoins assez votre proposition de sélection de la liste des utilisateurs habilités sur le formulaire de la dernière tâche.
Cependant, l'ennui que me pose théoriquement cette solution, est que dans la dernière tâche en question, une transition de rejet est disponible.
Ainsi donc, ce "composant" de sélection serait affiché (et donc potentiellement manipulé par l'utilisateur) en tous les cas, même si l'approbateur décide de ne pas diffuser le document, ce qui peut engendrer une certaine incompréhension chez l'utilisateur.

Les solutions pour palier à cela sont aussi nombreuses que complexes. Il est par exemple envisageable d'organiser le formulaire de tache avec différents onglets, par exemple "en cas de publication" comporterait le champ de sélection des utilisateurs et un éventuel commentaire à leur envoyer par mail, et "en cas de rejet" comporterait un commentaire de refus à justifier.
Une autre solution consisterait à décider d'une unique transition sortante de la tâche (par exemple clôturer"), le comportement d'approbation ou de refus étant déterminé par une cas à cocher ("Voulez-vous valider le document ?" + case) sur le formulaire de cette tâche.
L'avantage est qu'on peut ensuite écrire un component-generator qui affiche dynamiquement (Ajax / js) le composant de sélection des utilisateurs lorsque la case est cochée, et ne l'affiche pas sinon.

En bref, les solutions sont multiples, mais assez lourdes en termes de développement, et pas complètement satisfaisantes.
ptitmat
Member II

Re: Lancer une jsp à la fin d'un workflow

Bonjour,

Merci à vous tous pour les différentes réponse.

Pour l'instant, on a mis en place une troisième solution par rapport aux deux autres fournies dans vos réponses.
Celle ci est de rajouter un bouton dans l'affichage des ressources lors de la publication. Ce bouton nous renvoie sur l'action des choix des lecteurs décrit dans mes messages précédents.

Cette solution nous permet pour l'instant d'avancer sur d'autres problèmes à résoudre (vous pouvez constater le nombre des messages que j'ai laissé).

Je laisse le topic ouvert, car à mon avis nous reviendrons sur cet amélioration plus tard.

Encore merci à vous tous.

Ptitmat
landry_2530
Member II

Re: Lancer une jsp à la fin d'un workflow

Bonjour,

VOILA je pense que Charles à tout dit.

J'avais justement des soucis avec le mot action que tu utilisais à la place de DIALOG.

Tu dois customiser (Étendre) le Bean org.alfresco.web.bean.workflow.ManageTaskDialog (qui est le Bean managé du Dialog Alfresco qui permet de
manager toutes les taches des workflows de la plateforme, en gros, c'est ce dialog qui affiche les pages de tes étapes). Tu dois faire en sorte que
l'outcome "dialog:manageReadersFile" (de ton dialog de choix des lecteurs) soit retourné quand on clique sur le bouton "Achevé Tache" de l'étape de publication de ton workflow.

Tu peux faire la remarque que, ManageTaskDialog affiche un bouton pour chaque transition du noeud (node) du task. Exemple, pour le node de l'étape de publication, tu as la transition
<transition to="end"/>
. ManageTaskDialog  ajoute le bouton "Achevé Tache" qui est le label (I18N) de cette transition. La méthode qui permet d'ajouter les boutons de transition est la méthode
public List<DialogButtonConfig> getAdditionalButtons()
de ManageTaskDialog.

Tu peux la surcharger afin d'ajouter un second bouton qui permettra de lancer le dialog "dialog:manageReadersFile" (pour le choix des lecteurs) avant la fin du workflow, dans l'étape de publication.

Pour ajouter ce bouton tu peux ajouter ce bout de code dans la redéfinition de la méthode :
buttons.add(new DialogButtonConfig("SOMEID", "Choisir des lecteurs", null,
                         "dialog:manageReadersFile", "false", null));
Avec ça, un bouton "Choisir des lecteurs" apparaitra juste en dessous du bouton "Achever Tache" de l'étape de publication. En cliquant sur ce bouton, ton dialog de sélection des lecteurs se lancera.

Bien évidemment , tu devrais placer ce bout de code dans un bloc de test (If) en vérifiant qu'on est sur le node de publication (Utilise le dictionnaire de données pour ce faire).

Rassures toi que le dialog "dialog:manageReadersFile" retourne l'outcome "null" afin de revenir sur la page de l'étape publication du workflow une fois le choix des lecteurs effectué. Le fait de revenir sur la page courante va te permettre de terminer le workflow en cliquant sur le bouton de la transition "end".