2010-10-13 39 views
0

Pour chaque nœud de tâche dans une définition de processus, je souhaite ajouter de manière dynamique (par programme) une transition automatique (depuis et vers la transition vers le même nœud) vers chaque nœud de tâche. Pouvez-vous me dire si cela peut être fait dans le cadre de JBPM v3.2 et s'il y a des problèmes qui peuvent surgir si je choisis cette approche?Puis-je ajouter une transition d'exécution à un nœud de tâche dans jbpm v3.2?

Répondre

1

Vous n'avez pas besoin de le faire de façon dinamique. Vous pouvez le faire directement dans votre flux de travail.

Que voulez-vous dire dinamiquement? Lorsque vous déployez le flux de travail ou lorsque vous le traitez déjà?

Si c'est le cas lors du déploiement, avant d'appeler la méthode deployProcessDefinition, vous pouvez prendre le fichier XML qu'il déploiera et le modifier avant de procéder au déploiement.

S'il est alors que vous êtes déjà en train de traiter, je peux penser à 2 options possibles:

  1. Si vous voulez une nouvelle instance de la tâche à créer lorsque l'auto transition est prise, vous aurez besoin de faire quelques hacks dans la base de données pour changer le flux de travail déjà déployé;
  2. Si vous pouvez utiliser la même instance de la tâche, vous pouvez modifier la méthode Transition.take pour ne pas propager l'événement lorsque vous effectuez la transition vers la même tâche.

Pour les deux options, vous devez payer pour les problèmes avec ProcessLog. Je ne sais pas si JBPM aura un problème pour écrire les logs pour les transitions qui n'existent pas vraiment.

+0

Ajout dynamique signifie une fois que je crée l'instance de processus, je veux ajouter une auto-transition à tous les nœuds progrmatically.So dans vos mots, je veux ajouter une transition lorsque je le traite. Connaissez-vous l'API fournie par JBPM pour ajouter une nouvelle transition à un nœud de tâche (par programmation). – Cshah

+0

Vous ne pouvez pas le faire comme ça. Lorsque vous déployez la définition de processus, elle en crée toutes les étapes dans la base de données. Plus tard, lorsque vous créez une instance de processus, les étapes sont déjà configurées dans la base de données et vous ne pouvez pas la modifier. Ce que vous pouvez faire est lorsque vous déployez la définition de processus, avant d'appeler le deployProcessDefinition, vous prenez le fichier xml et le modifiez par programme pour ajouter vos transitions. – hooray