8
votes

Comment adopter une liste d'utilisateurs candidats à une tâche Activiti Workflow à Alfresco?

J'aimerais pouvoir transmettre une liste d'utilisateurs en tant que candidats à une tâche. Les utilisateurs sont extraits d'une liste de données et non disponibles en tant que groupe. Activiti: les candidatures sembleraient être la bonne approche.

En supposant que les utilisateurs ont été obtenus et définis dans la variable, IPW_Reviwers. P>

activiti:candidateUsers="tom, dick, harry"


2 commentaires

Ma réponse est-elle en train de travailler pour vous?


Semblable à la dernière réponse de User68910801 Vous pouvez également créer une liste dans JavaScript basé sur Rhino (utilisé en Alfresco). Il est juste un peu plus gênant de gérer depuis un) vous n'avez pas le fonctionnement java.type () (plutôt que vous utilisez packages.java.util.arraylist ) , b) le type de chaîne JavaScript dans Rhino ne correspond pas à la chaîne Java, et c) une liste est implicitement traitée comme un objet de type tableau et certaines de ses méthodes (comme l'ajout) peuvent être cachées.


3 Réponses :


1
votes

Si vous examinez les flux de travail par défaut dans Alfresco, comme REVISION-FOOKED.BPMN20.XML, vous verrez qu'il utilise l'élément potentiel .

Un extrait de la Flux de travail: xxx

donc il utilise l'aspect bpm_groupassignere pour initier ceci. xxx

Dans votre cas, vous pouvez facilement modifier le tag à vos besoins.


2 commentaires

Cela m'a pris beaucoup de temps pour comprendre peu les flux de travail. Je crois que l'exécution de l'activiti: les candidatures que l'activitati concepteur créé pour moi est une extension Activiti qui simplifie la méthode potentielle. Passer la chaîne $ {ipw_reviwers} Comme l'expression formelle ne fonctionnait pas pour moi, mais votre réponse a fait au moins déverrouillé les vieilles cellules grises et me déplace vers l'avant.


Heureux que vous ayez trouvé la vraie réponse à votre problème.



5
votes

Ayant confirmé que le problème existait Activiti 5.10 à partir de http://activiti.org puis à chair à travers la source d'Activiti Depuis le Repo Git, j'ai cherché les forums Activiti. Je suis tombé sur lorsque vous souhaitez avoir plusieurs utilisateurs candidats, vous devrez utiliser une collection variable forte> sur ce forum http://forums.activiti.org/fr/viewtopic.php?f=6&t=3635&p=14187&hilit=candidateUser#P14187 .

i ne sais pas comment exécuter.setvariable une collection à partir de JavaScript (toutes les réponses?) Mais en utilisant Groovy P>

<userTask id="mytask" name="My Task" activiti:candidateUsers="${ipw_reviewers}">
</userTask>


0 commentaires

1
votes

in Nashorn (JDK8) Java Script Engine, pour la définition de la liste et la définition en tant que variable, après la suite du script de tâche de script fonctionne:

var ArrayList = Java.type('java.util.ArrayList');
var list = new ArrayList();
list.add('a');
list.add('b');
list.add('c');
execution.setVariable('list', list);


1 commentaires

Notez qu'avec Alfresco + Activiti incorporé, chaque fois que vous utilisez la classe org.alfresco.repo.workflow.activiti.repo.workflow.activiti.script.alfrescoscriptdel eGate Vous utilisez le moteur de script Rhino expédié avec Alfresco. Vous n'utilisez généralement jamais le moteur Nashorn dans le boîtier d'utilisation en Alfresco tant que vous utilisez les classes d'Alfresco à condition que l'intégration Activiti. Ce n'est que lorsque vous utilisez le ou org.activiti.engine.impl.bpmn.listener.impl.bpmn.listener.scripttasklistener en cours d'exécution sur JDK 8 Utiliserez-vous Nashorn.