//將容器團隊角色成員加入到流程角色中
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();
}
}