有没有办法确定是否重新分配了任务?

时间:2017-04-13 11:20:52

标签: alfresco alfresco-share activiti

我有多实例并行工作流程。

使用Activiti ScriptTaskListener我写了workflow-model.xml业务流程的某些细节的某些方面。例如,在事件start中,我写了所有受让人:

...
var assigneesNodeRefs = '';
for(var i = 0; i < bpm_assignees.size(); i++) {
    var assignee = bpm_assignees.get(i);
    assigneesNodeRefs += ' separator ' + assignee.nodeRef;
}
execution.setVariable('mswf_participants', assigneesNodeRefs);
...

complete事件中,我写了一些其他细节:

...
var reviewDate = new Date();
var bpmComment = task.getVariable('bpm_comment');
var result;
if(task.getVariableLocal('mswf_reviewOutcome') == 'Approve') {
    result = 'Approve';
}
...

然后,通过使用Alfresco Content Services REST API (tasks),我可以以JSON格式获取list of variables我的任务。接下来,通过使用JavaScript,我可以解析它并在不同的地方显示各种数据表。

我对重新分配受让人的能力感兴趣。

让我们说,如果assignee_1将任务重新分配给assignee_2,我想在Activiti ScriptTaskListener中写下这个事实。

有可能吗?..

我将非常感谢这些信息。谢谢大家。

1 个答案:

答案 0 :(得分:2)

是的,您可以使用作业事件

来完成

示例:

<userTask id="test" name="Assignb" activiti:assignee="userName" activiti:formKey="<<formKey>>">
     <extensionElements>

      <activiti:taskListener event="assignment" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">
    <activiti:field name="script">
     <activiti:string><![CDATA[

       var currAssignee = task.assignee;
          //gives current task assignee
       logger.log(currAssignee );
     ]]></activiti:string>
    </activiti:field>
   </activiti:taskListener>
      <activiti:taskListener event="complete" class="org.alfresco.repo.workflow.activiti.tasklistener.ScriptTaskListener">

       <activiti:field name="script">
     <activiti:string><![CDATA[

      var currAssignee = task.assignee;

                  ]]></activiti:string>
               </activiti:field>
            </activiti:taskListener>
         </extensionElements>
 </userTask>