jbpm dans alfresco ou pas

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

jbpm dans alfresco ou pas

Bonsoir,

Je me pose un problème "existentiel" par rapport aux workflows JBPM: Nous avons un besoin de gestion de workflow dans le cadre d'un processus métier (exemple gestion des achats). Tout au long de ce processus, il y a des besoins de GED puisque tout les documents doivent être archivés.

Nous avons deux options:
1) Gérer le processus en dehors d'Alfresco (directement en utilisant JBPM par exemple) et utiliser Alfresco seulement pour la pure GED.
2) Gérer le tout dans Alfresco (documents et Workflow) et faire appel à des formulaires "intelligents" pour la saisie des documents et l'implémentation des contrôles métiers.

La deuxième option semble la moins couteuse, mais nous avons peur que l'utilisation de JBPM à travers Alfresco nous impose des limites.

Vos commentaires et suggestions sont les bienvenues.


Merci d'avance
4 Replies
michaelh
Active Member

Re: jbpm dans alfresco ou pas

Bonjour,

Il y a quelques projets dont l'utilisation repose massivement sur des workflows jBPM (coucou Bertrand), et je crois pouvoir dire sans me tromper qu'on peut aller très loin avec Alfresco et jBPM. Je dirais même plus loin qu'en séparant les deux processus car l'intégration des deux apporte des fonctionnalités complémentaires.

Après, dire que ça va correspondre au besoin, c'est beaucoup plus difficile sans connaître les processus à intégrer.

Bref, si vous avez déjà un moteur de workflow existant, et qu'il est capable de piloter un outil tiers, alors vous pouvez vous poser la question de le conserver ou pas, mais si c'est pour utiliser jBPM je pense que la solution 2 est plus adaptée.
kbe
Member II

Re: jbpm dans alfresco ou pas

Bonjour,

En fin de compte, nous avons opté pour l'utilisation d'Alfresco avec son moteur de workflow.

N'ayant pas trouvé un accès "Web Service" existant au moteur jbpm d'Alfresco nous avons développé un WS spécifique qui utilise l'API Alfresco. Notre Web Service expose grosso modo:

1) une web methode qui donne le nombre de tâches par "type" et par date d'échéance pour un utilisateur donné.
2) une web methode qui donne la liste des tâches d'un utilisateur.
3) une web methode qui permet d'avancer une tâche dans le workflow (exemple: validation d'un document).

Le problème c'est que du côté du client de notre web service, nous avons aussi besoin d'avoir les documents auquels sont liés les tâches. Malheureusement, nous n'avons rien trouvé dans l'API Alfresco.


Y a t il, une méthode pour avoir cette info?

Cordialement,
KBE
kbe
Member II

Re: jbpm dans alfresco ou pas

Bonsoir,

N'ayant pas reçu de réponse sur un forum relativement actif et avec des experts de grandes qualités, je me demande si le problème ne vient pas de la question elle même ou de l'approche!

En effet, j'ai vu quelque part qu'il est possible d'exposer un web service en utilisant l'interface Javascript d'Alfresco, le problème c'est que l'interface "Workflow Javascript API" ne nous donne pas la liste des documents attachés à un noeud!! (en plus on sait pas comment faire pour exposer "proprement" un web service avec du javascript!!).

Notre projet butte sur ça et toute aide est la bienvenue.
romain_lamarche
Member II

Re: jbpm dans alfresco ou pas

Bonjour,

Je ne connais pas en détail l'intégration de jBPM dans Alfresco, mais la relation entre les tâches et les documents est faite de la manière suivante :
(je vous fais part de ce que j'ai compris)

Quand une instance de processus est créée, elle l'est à la fois dans Alfresco et dans jbpm.
Le lien entre les deux se fait de la manière suivante :

Dans Alfresco, l'aspect bpm:workflowPackage est appliqué à un noeud, en spécifiant la propriété bpm:workflowInstanceId à jbpm$<id de l'instance de processus>.
(d'autres informations sont également copiées)

Dans jbpm, une variable qui s'appelle bpm_package contient le nodeRef du noeud dont j'ai parlé juste au dessus.

Enfin, pour connaître les documents liés à l'instance de processus (et non à la tâche), il vous suffit de regarder les "enfants" du noeud bpm_package, de type cm:contains.

Donc, concrètement, vous récupérez la variable du processus (ou de la tâche) qui s'appelle bpm_package, et vous applez un webservice qui renvoi les enfants du noeud.

Nous nous avons opté pour la première solution, c'est à dire utiliser un jbpm en dehors de alfresco, car nos processus ne sont pas orientés GED.
Après, pour faire un lien entre un document et un processus, il nous suffit de stocker le nodeRef dans une des variables.