Ian*_*ams 8 workflow alfresco activiti
我希望能够将用户列表作为任务的候选者传递.用户从数据列表中检索,不作为组提供.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>
Run Code Online (Sandbox Code Playgroud)
以下使用变量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>
Run Code Online (Sandbox Code Playgroud)
没有人能够看到或宣称这项任务.如果列表中只有一个用户,则该用户可以声明该任务.
如果activiti:candidateUsers被声明为
activiti:candidateUsers="tom, dick, harry"
Run Code Online (Sandbox Code Playgroud)
然后所有三个用户都能够声明任务.
可以在用户的列表被传递到Activiti的:candidateUsers在一个变量或应采用不同的方法来使用?
确认问题存在于http://activiti.org的 activiti 5.10 ,然后从git repo中搜索activiti的源之后,我搜索了activiti论坛。我遇到了当您想拥有多个候选用户时,必须在此论坛上使用Collection <String>变量http://forums.activiti.org/en/viewtopic.php?f=6&t=3635&p=14187&hilit=候选人用户#p14187。
我不知道如何执行.setVariable来自javascript的Collection <String>(任何答案?),但是使用groovy
List<String> users = [ 'tom', 'dick', 'harry'] as String[];
execution.setVariable('ipw_reviewers', users);
Run Code Online (Sandbox Code Playgroud)
允许此任务
<userTask id="mytask" name="My Task" activiti:candidateUsers="${ipw_reviewers}">
</userTask>
Run Code Online (Sandbox Code Playgroud)
根据需要工作。
暂时在Alfresco中,我曾使用javascript从数据列表中查找用户列表,并将其放置在一个任务中,以逗号分隔的字符串中,然后在groovy中执行脚本任务,该任务将字符串转换为List < String>准备在以下任务中使用。
归档时间: |
|
查看次数: |
14026 次 |
最近记录: |