Windchill 文檔自動創建時,工作流中角色不能收到郵件通知

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章