2017-04-13 142 views
1

我有多實例並行工作流程。有沒有辦法確定任務是否被重新分配?

通過使用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

是否有可能?..

我將非常感激這些信息。謝謝大家。

回答

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> 
+0

非常感謝您的回答..我來試試! –

+0

非常好。真的非常感謝你!.. –

相關問題