我創建了一個工作流程,我正在使用計時器,即我想在用戶任務中使用計時器。這意味着如果用戶在指定的時間內沒有執行任務,那麼任務從其待處理任務列表中清除,並且令牌移動到工作流中的指定節點。 我bmpn.xml文件是:在活動中使用計時器在指定時間內完成任務
<process id="newprocess6" isExecutable="true">
<startEvent id="start" name="Start Consulting" activiti:initiator="initiator">
<extensionElements>
<activiti:formProperty id="hname" name="Hospital Name" type="string"> </activiti:formProperty>
<activiti:formProperty id="dname" name="Doctor Name" type="string"> </activiti:formProperty>
</extensionElements>
</startEvent>
<userTask id="usertask1" name="Start Consulting with seema" activiti:assignee="seema">
<extensionElements>
<activiti:formProperty id="consult" name="consult" type="enum">
<activiti:value id="true" name="true"></activiti:value>
<activiti:value id="false" name="false"></activiti:value> </activiti:formProperty>
</extensionElements>
</userTask>
<endEvent id="end1"></endEvent>
<boundaryEvent id="timer2" attachedToRef="usertask1" cancelActivity="true">
<timerEventDefinition>
<timeDuration>PT2M</timeDuration>
</timerEventDefinition>
</boundaryEvent>
<userTask id="usertask2" name="Start Consulting with saurabh" activiti:assignee="saurabh">
<extensionElements>
<activiti:formProperty id="consult" name="consult" type="enum">
<activiti:value id="true" name="true"></activiti:value>
<activiti:value id="false" name="false"></activiti:value>
</activiti:formProperty>
</extensionElements>
</userTask>
<endEvent id="end2"></endEvent>
<sequenceFlow id="flow1" sourceRef="start" targetRef="usertask1"></sequenceFlow>
<sequenceFlow id="flow2" sourceRef="usertask1" targetRef="end1"></sequenceFlow>
<sequenceFlow id="flow4" sourceRef="usertask2" targetRef="end2"></sequenceFlow>
<sequenceFlow id="flow3" sourceRef="timer2" targetRef="usertask2"></sequenceFlow>
</process>
據我所知,如果用戶希瑪一個未完成的2分鐘之內她的任務,則任務將從希瑪的未決任務列表中清除,並應轉移到用戶SAURABH的未決任務名單。但是這項任務並沒有轉移到索拉布的未決任務清單上。 請幫幫我。 在此先感謝。
我不想使用特定的日期和時間。我希望當任務分配給用戶時,定時器將啓動,如果用戶沒有在指定的時間內完成任務,則令牌移動到工作流中指定的另一個節點。 – Seema
糾正了我上面的答案。 – Ben
Ben的答案是正確的,當人類任務到達時發生的第一個事件是「分配」事件(請參閱原因:http://www.activiti.org/userguide/#taskListeners)因此,您定義的持續時間在邊界計時器事件中將是準確的。如果您需要更復雜的邏輯,則使用TaskListener來操作附加的計時器。 –