完成任务转变
许多活动根据投票计数器进行路由选择。例如,可能将一个批准任务分配给几个用户。要完成任务,用户必须批准或否决正在审阅的对象。用户所选择的选项用于确定工作流的进展情况。
通常,通过在“路由”选项卡中添加表达式来配置投票计数器。但是,您可以通过使用“转变”选项卡中的“完成任务”转变来获取对计数进程的更多详细控制。
示例
审阅某些对象时,您可以创建要使用的简单工作流模板。第一个活动要求用户审阅对象并对该对象进行批准或否决。
如果对象被批准,将会移至“已批准”状态。如果对象被否决,将会移至“已否决”状态:
要求所有参与者参与。活动参与者是“质量管理者”角色和“工程师”角色中的用户。
要将对象移至“已批准”状态,所有参与者都必须投票给“批准”。
如果“质量管理者”角色中的任意 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
这对您有帮助吗?