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();
		}
	}
	

 

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