【发布时间】:2012-11-25 18:49:25
【问题描述】:
我希望能够将用户列表作为任务的候选人传递。用户是从数据列表中检索的,不能作为组使用。 Activiti:candidateUsers 似乎是正确的方法。
假设已经在变量ipw_reviwers中获取并设置了用户。
<serviceTask id="alfrescoScripttask1" name="Alfresco Script Task" activiti:class="org.alfresco.repo.workflow.activiti.script.AlfrescoScriptDelegate">
<extensionElements>
<activiti:field name="script">
<activiti:string>logger.log("IPW - setup task");
execution.setVariable('ipw_reviwers', "tom, dick, harry");</activiti:string>
</activiti:field>
</extensionElements>
</serviceTask>
以下使用变量 ipw_reviewers
<userTask id="adhocTask" name="Adhoc Task" activiti:candidateUsers="${ipw_reviewers}" activiti:formKey="wf:activitiReviewTask">
<extensionElements>
<activiti:taskListener event="create" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
<activiti:field name="script">
<activiti:string>logger.log("IPW - create task");
if (typeof bpm_workflowDueDate != 'undefined') task.setVariableLocal('bpm_dueDate', bpm_workflowDueDate);
if (typeof bpm_workflowPriority != 'undefined') task.priority = bpm_workflowPriority;</activiti:string>
</activiti:field>
</activiti:taskListener>
</extensionElements>
</userTask>
没有人能够看到或认领该任务。如果列表中只有一个用户,则该用户可以领取该任务。
如果 activiti:candidateUsers 被声明为
activiti:candidateUsers="tom, dick, harry"
然后所有三个用户都可以领取任务。
可以将用户列表以变量的形式传递给 activiti:candidateUsers 还是应该使用不同的方法?
【问题讨论】:
-
我的回答对你有用吗?
-
与 user68910801 的最新回答类似,您也可以在基于 Rhino 的 JavaScript(在 Alfresco 中使用)中创建一个列表。处理起来有点烦人,因为 a) 您没有
Java.type()操作(而是使用Packages.java.util.ArrayList),b) Rhino 中的 JavaScript 字符串类型不映射到 Java 字符串,以及 c) a list 像数组对象一样被隐式处理,它的一些方法(如 add)可能被隐藏
标签: workflow alfresco activiti