完成任務轉移
許多活動會根據投票總數進行路由。例如,可能會將核准任務指派給多個使用者。欲完成任務,使用者必須核准或拒絕審核中物件。它們所選取的選項會決定工作流程的進度。
通常,透過在「路由」標籤下新增運算式可配置投票總數。但是,您可以使用「轉移」標籤下的「完成任務」轉移,對計量流程進行細部控制。
範例
建立在審核某些物件時要使用的簡易工作流程範本。第一個活動需要使用者審核物件並核准或拒絕它。
如果物件已獲核准,它將移至「已核准」狀態。如果遭拒絕,則會移至「已拒絕」狀態:
需要全部參與者。活動參與者是扮演「品管經理」角色與「工程師」角色的使用者:
欲將物件移至「已核准」狀態,所有參與者都必須票選「核准」。
如果扮演「品管經理」角色的任何 2 個使用者票選「拒絕」,則活動完成後,物件將移至「已拒絕」狀態。
欲完成此動作,您可以針對「完成任務」轉移輸入下列運算式:
java.util.Locale locale=wt.util.WTContext.getContext().getLocale();
int number=wt.workflow.work.WfTally.count(self,"Reject","Quality Manager",locale);
if(number>=2)
{
wt.workflow.work.WorkflowHelper.service.completeActivity(self,"Reject");
}
完成任務 API
依角色計票:

/*
* @param self : WfAssignedActivity ObjectReference
* @param eventToMatch : Routing option to tally
* @param assigneeRole : Role for which you want to tally the routing option
* @param locale : The locale in which you have specified the assignee role
* @return int : Number of votes from user in the specified role
* @throws WTException
*/
public static int count(ObjectReference self,String eventToMatch,String assigneeRole,Locale locale) throws WTException
依路由事件計票:

/*
* @param self : WfAssignedActivity ObjectReference
* @param eventToMatch : Routing option to tally
* @param int : Number of votes for the routing event in the activity
* @throws WTException
*/
public static int count(ObjectReference self,String eventToMatch) throws WTException
符合條件時完成活動:

/*
Supported API : True
Method to complete the activity
* @param self : WfAssignedActivity ObjectReference
* @param events : Routing event to follow
* @throws WTException
*/
public void completeActivity(ObjectReference self,String events) throws WTException
這是否有幫助?