Tutorial Alfresco-jBPM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-19-2009 10:02 AM
Le Centre de Compétences Alfersco-jBPM de Koossery Tech'(http://koossery-tech.fr) vient de publier
un tutorial assez fourni sur une implémentation Alfresco-jBPM d'un projet de workflow avancé gestion de dossiers de crédit
L'article se trouve sur le lien suivant:
http://koossery-tech.developpez.com/tutoriels/java/ecm/alfresco-jbpm/exemple-implementation-workflow...
Citation:
Cet article traite d'un exemple d'implémentation d'un workflow avancé.
Dans la partie I, nous présentons les frameworks (Alfresco, jBoss BPM, etc..) qui ont été utilisés dans ce tutorial.
Dans la partie II nous présentons un résumé des spécifications du workflow.
Dans la partie III nous parlons de la modélisation jBPM du workflow.
Dans la partie IV nous parlons de l'implémentation dans Alfresco.
Bonne lecture, et n'hésitez pas à leur faire un retour par l'intermédiaire de ce fil.
- Labels:
-
Archive

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2009 12:25 PM
Je vous ferai part des remarques si j'en ai.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-25-2009 01:20 PM
Ce qui mène à une autre question : avez-vous réussi à utiliser, dans le formulaire à la création d'un nouveau workflow avancé, plusieurs composants aspects de sélection d'un utilisateur (par exemple si je veux sélectionner un utilisateur1 et un utilisateur2 sans passer par l'aspect de sélection d'un groupe) ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-26-2009 08:42 AM
L'affectation des valeurs se fait de la couche superficielle
d'orcherstration des taches des workflows Alfresco (implémenté en JSF) vers le bas niveau par JBPM.
La couche superficielle se base sur le modèle de contenu du workflow pour piloter le Client Web Alfresco
et communiquer avec le moteur JBPM intégré dans le Backend Alfresco.
La variable bpm_assignee est affectée et modifiée au niveau présentation (la couche superficielle) à chaque fois qu'une assignation est
faite par un utilisateur (assignation d'un utilisateur sur une tache).
C'est la couche superficielle qui gère cette affectation. Elle instancie la variable dans le domaine
JBPM de l'instance du processus encours d'execution et affecte la valeur selectionnée ou entrée par l'utilisateur
à travers le Client Web. A la vu de :
<mandatory-aspects> <aspect>bpm:assignee</aspect></mandatory-aspects>
dans le content model d'une tache, la couche superficielle vas si pas encore fait
instancier la variable globale bpm_assignee et affecter la valeur attribuée.
Cette variable etant une variable jbpm globale (instancié par la couche superficielle alfresco), elle va
etre utilisé aucour du traitement de l'instance du processus par le moteur JPBM pour faire des affectations
ou des lectures simples.
C'est ce qui se passe avec la variable (role) loan-agent. Le model JBPM suivant :
<swimlane name="loan-agent"> <assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAssignment"> <actor>#{bpm_assignee.properties['cm:userName']}</actor> </assignment></swimlane>
va etre interpreté par le moteur JBPM et traiter l'assignation du role loan-agent en lui affectant la valeur de la variable globale bpm_assignee.
(Remarque: bpm_assignee est une variable de type node Alfresco {Tout est noeud dans Alfresco}, raison pour laquelle la notation JavaScript Workflow Alfresco est utilisé pour
accéder à sa propriété userName)
Non, la multiselection d'utilisateur n'est pas encore réalisée.
Nous envisageons pour solutionner ce problème, (pour très bientot), l'intégration de composant UI de selection
multiutilisateur préexistant dans Alfresco dans le modèle de base du workflow (bpmModel.xml). Ceci permettra
à travers une configuration du genre
<mandatory-aspects> <aspect>bpm:assignees</aspect> </mandatory-aspects>
de selectionner plusieurs utilisateurs sans forcement avoir besoin de créer un groupe.J'espère avoir été utile
Je reste disposé à toutes questions et suggestions.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
05-26-2009 11:50 AM
de selectionner plusieurs utilisateurs sans forcement avoir besoin de créer un groupe.<mandatory-aspects> <aspect>bpm:assignees</aspect> </mandatory-aspects>
Merci pour votre réponse très complète qui correspond à ce que j'ai compris du fonctionnement d'alfresco (ça me rassure

Concernant la sélection multi-utilisateurs, il y a effectivement le composant bpm:assignees qui permet de faire ça. Néanmoins, si l'on veut par exemple sélectionner plusieurs utilisateurs de métiers différents (au hasard rédacteur1 et rédacteur2, valideur1 et valideur2), il faudrait utiliser plusieurs composants bpm:assignees pour bien différencier les 2 utilisateurs rédacteurs et valideurs sélectionnés, ce que ne permet pas alfresco aujourd'hui (exactement comme pour le composant bpm:assignee).
Une solution pourrait consister en l'utilisation de bêtes champs String (au lieu de bpm:assignee), ce ne sera pas très joli dans l'ui mais devrait faire l'affaire.
Une autre solution serait de créer 2 groupes fixes (définis pour ce workflow) : un groupe rédacteur et un groupe valideur. Le workflow irait toujours chercher les utilisateurs de ces 2 groupes.
Mais je dévie un peu du sujet initial …

Encore merci pour votre réponse,
Cordialement.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-02-2009 04:26 AM
Alfresco permet de tout faire avec un peu de développement spécifique.
Ce n'est pas le fait que la varable s'appelle "bpm:assignees" qui définit le composant graphique de sélection. C'est le type de cette association.
Pour votre besoin, il suffirait de définir, au sein d'un aspect "custom:delegationAspect" deux associations "custom:valideurs" et "custom:redacteurs", avec la même "définition topologique" d'association que bpm:assignees (voir fichier bpmModel.xml).
Faites porter cet aspect par chaque tâche de votre workflow, et ensuite afficher ces associations dans le formulaire de tâche choisi (via web-client-config-custom.xml). Vous verrez 2 fois le composant choisi.
Il ne vous reste plus qu'a positionner les swimlanes qui vous conviennent, et c'est réglé.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 08:36 AM
Réponse exacte et très bien formulée.
Cytrix, J'ai fais le test et c'est nickel.
En fait, il suffit tout simplement de définir le modèle (aspect) :
<aspect name="custom:delegationAspect"> <associations> <association name="custom:valideurs"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>true</mandatory> <many>true</many> </target> </association> <association name="custom:redacteurs"> <source> <mandatory>false</mandatory> <many>false</many> </source> <target> <class>cm:person</class> <mandatory>true</mandatory> <many>true</many> </target> </association> </associations></aspect>
Les deux associations te permettrons de faire des sélections multiples pour chaque roles (Redacteurs et valideurs).
Il suffit maintenant de revenir dans ton jpdl déclarer ton swimlane et aller dans le model de ton workflow défini l'aspect dans la task correspondante
<mandatory-aspects> <aspect>custom:delegationAspect</aspect></mandatory-aspects>
sans oublier d'importer le modèle définissant cet aspect.

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 10:23 AM
Ca fait quelques mois que je mange du workflow très avancé dans Alfresco, avec beaucoup de développement spécifique…
je commence à bien en comprendre les différentes mécaniques

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-03-2009 11:11 AM
Alfresco c'est sympa, mais comme pour tout portail/framework, un temps d'adaptation est nécessaire, qui vient au fil des semaines 🙂 .
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-30-2009 05:59 AM
alors ce que je demande c'est : est ce que je peux obtenir le code source de cette exemple? si oui pouvez vous m'indiquer un lien?
merci ,
