//将容器团队角色成员加入到流程角色中
ext.plm.util.CtWorkFlowUtil.loadProcessTeam(primaryBusinessObject,self);
/**
* 将容器团队角色成员加入到流程角色中
* (适用于代码创建的对象启动的流程,默认会成为管理员任务)
* (使用:应用于工作流第一个活动的开始转变条件)
* @param pbo 流程主题对象
* @param self 流程
*/
public static void loadProcessTeam(WTObject pbo, ObjectReference self) {
/**
//将容器团队角色成员加入到流程角色中
ext.plm.util.CtWorkFlowUtil.loadProcessTeam(primaryBusinessObject,self);
*/
try {
WfProcess wfp = (WfProcess) getProcess(self);
Team processTeam = (Team) wfp.getTeamId().getObject();
WTContainer con = ((WTContained) pbo).getContainer();
ContainerTeam conTeam = ContainerTeamHelper.service.getContainerTeam((ContainerTeamManaged) con);
WfProcessTemplate localWfProcessTemplate = (WfProcessTemplate) wfp.getTemplate()
.getObject();
Vector<Role> processRoleVector = localWfProcessTemplate.getRoles();//工作流角色
Vector<Role> conRoleVector = conTeam.getRoles() ;//容器团队角色
for(Role role : processRoleVector){
if(!conRoleVector.contains(role)){
continue ;
}
List<WTUser> userList = new ArrayList<WTUser> () ;
Enumeration userEnum = conTeam.getPrincipalTarget(role) ;
while (userEnum.hasMoreElements()) {
WTPrincipalReference wtpRef = (WTPrincipalReference) userEnum.nextElement() ;
Persistable pp = wtpRef.getObject() ;
if (pp instanceof WTPrincipal && pp instanceof WTUser) {
WTUser tempUser = (WTUser) pp ;
userList.add(tempUser) ;
}
}
for (WTUser user : userList) {
processTeam.addPrincipal(role, user);
}
}
PersistenceServerHelper.manager.update(wfp);
} catch (WTException e) {
e.printStackTrace();
}
}