通过 AssignmentHandler 来实现动态设定参与者
import ormons.lang3.StringUtils;
import org.jbpm.api.model.OpenExecution;
import org.jbpm.api.task.Assignable;
import org.jbpm.api.task.AssignmentHandler;
/**
 * 动态设置 节点 的参与者
 * @author chen
 *
 */
public class SetAssignHandler implements AssignmentHandler{public void assign(Assignable assignable,
OpenExecution execution) throws Exception {String isAutoSet = (String) execution.getVariable("isAutoSetAssign");
if("N".equals(isAutoSet)){//回退时的操作
String id = execution.getId();
String destNameAssignee = (String) execution.getVariable("destNameAssignee");
if(StringUtils.isNotEmpty(destNameAssignee)){
execution.setVariable("destNameAssignee", "");assignable.setAssignee(destNameAssignee);
}
execution.setVariable("isAutoSetAssign", "");
}else{
//动态设计 该节点的参与者String assignee = (String)execution.getVariable("participation");
if(assignee == null){//针对 法律审批不通过。
assignee = (String)execution.getVariable("owner");
}
assignable.setAssignee(assignee);
}
}}