TC客户端流程开发

开发点
1.后台自动对多个对象发起流程,自动指定签发小组用户。

public void createProcess() throws Exception {
System.out.println("*start run auto create workflow and assign user handler");
TCSession session = (TCSession) AifrcpPlugin.getSessionService().getSession(“com.teamcenter.rac.kernel.TCSession”);
TCComponentTaskTemplateType templateType = (TCComponentTaskTemplateType) session.getTypeComponent(“EPMTaskTemplate”);
String tempName = “A自动发布流程指派用户”;// TCM Release Process
// String tempName = “A报价任务单工作流程”;
TCComponentTaskTemplate template = templateType.find(tempName, 0);// 系统中查找workflow模板
TCComponentProcessType tccomponentprocesstype = (TCComponentProcessType) session.getTypeComponent(“Job”);
InterfaceAIFComponent[] components = AIFUtility.getTargetComponents();
TCComponent component = (TCComponent) components[0];
if(component instanceof TCComponentItemRevision)// 选定对应为rev
{
TCComponentProcess newProcess = (TCComponentProcess) tccomponentprocesstype.create(tempName, “workflowdesc”,
template, new TCComponent[]{component}, new int[] { 1 });//参数2:流程的描述
TCComponentSignoffType signoffType = (TCComponentSignoffType) session.getTypeComponent(“Signoff”);
TCComponentTask[] oneChildren = newProcess.getRootTask().getSubtasks();
TCComponentTask taskSignoffUser = null;
TCComponentTask taskSTemp = null;
for (int i = 0; i < oneChildren.length; i++)
{
taskSTemp = oneChildren[i];
System.out.println(“the name of first layer subtask is:”+taskSTemp.toDisplayString());// 第一层workflow节点名称
if(taskSTemp.getSubtasks()!=null) {
for(int j=0;j<taskSTemp.getSubtasks().length;j++) {
TCComponentTask secondChildren=taskSTemp.getSubtasks()[j];
System.out.println(“the name of second subtask is:”+secondChildren.toDisplayString()+";the taskType is:"+secondChildren.getTaskType());
if(secondChildren.getTaskType().equalsIgnoreCase(“EPMPerformSignoffTask”)) {
// find the signoffTask, I start signoff user
taskSignoffUser=secondChildren;
}
}
}
}
// 此例为只对最后一个签发节点选择用户
TCComponentUser currentUser = session.getUser();
TCComponentUser infodbaUser = currentUser.getTypeComponent().find(“infodba”);
TCComponentGroupMember[] members = new TCComponentGroupMember[2];
members[0] = currentUser.getGroupMembers()[0];
members[1] = currentUser.getGroupMembers()[0];
TCComponentSignoff[] signoffs = new TCComponentSignoff[2];
signoffs[0] = signoffType.create(members[0], TCSignoffOriginType.ADHOC_USER, null);
signoffs[1] = signoffType.create(members[1], TCSignoffOriginType.ADHOC_USER, null);
taskSignoffUser.setRelated(“valid_signoffs”, signoffs);// 签发
taskSignoffUser.setRelated(“signoff_attachments”, signoffs);// 有效签发
// taskSignoffUser.setProperty(“wait_for_all_reviewers”, “1”);// 等待所有审核者
}
}

public void createProcess() throws Exception {
		System.out.println("*******start run auto create workflow and assign user handler******");
		  TCSession session = (TCSession) AifrcpPlugin.getSessionService().getSession("com.teamcenter.rac.kernel.TCSession");
		  TCComponentTaskTemplateType templateType = (TCComponentTaskTemplateType) session.getTypeComponent("EPMTaskTemplate");
		  String tempName = "A自动发布流程指派用户";//   TCM Release Process
//		  String tempName = "A报价任务单工作流程";
		  TCComponentTaskTemplate template = templateType.find(tempName, 0);// 系统中查找workflow模板
		  TCComponentProcessType tccomponentprocesstype = (TCComponentProcessType) session.getTypeComponent("Job");
		  InterfaceAIFComponent[] components = AIFUtility.getTargetComponents();
		  TCComponent component = (TCComponent) components[0];
		  if(component instanceof TCComponentItemRevision)// 选定对应为rev
		  {
			  TCComponentProcess newProcess = (TCComponentProcess) tccomponentprocesstype.create(tempName, "workflowdesc",
			  template, new TCComponent[]{component}, new int[] { 1 });//参数2:流程的描述
			  TCComponentSignoffType signoffType = (TCComponentSignoffType) session.getTypeComponent("Signoff");
			  TCComponentTask[] oneChildren = newProcess.getRootTask().getSubtasks();
			  TCComponentTask taskSignoffUser = null;
			  TCComponentTask taskSTemp = null;
			  for (int i = 0; i < oneChildren.length; i++) 
			  {
				  taskSTemp = oneChildren[i];
				  System.out.println("the name of first layer subtask is:"+taskSTemp.toDisplayString());// 第一层workflow节点名称
				  if(taskSTemp.getSubtasks()!=null) {
					  for(int j=0;j<taskSTemp.getSubtasks().length;j++) {
						  TCComponentTask secondChildren=taskSTemp.getSubtasks()[j];
						  System.out.println("the name of second subtask is:"+secondChildren.toDisplayString()+";the taskType is:"+secondChildren.getTaskType());                    
						  if(secondChildren.getTaskType().equalsIgnoreCase("EPMPerformSignoffTask")) {
							  // find the signoffTask, I start signoff user
							  taskSignoffUser=secondChildren;
						  }
					  }
				  }
			  }
			  // 此例为只对最后一个签发节点选择用户
			  TCComponentUser currentUser = session.getUser();
			  TCComponentUser infodbaUser = currentUser.getTypeComponent().find("infodba");
			  TCComponentGroupMember[] members = new TCComponentGroupMember[2];
			  members[0] = currentUser.getGroupMembers()[0];
			  members[1] = currentUser.getGroupMembers()[0];
			  TCComponentSignoff[] signoffs = new TCComponentSignoff[2];
			  signoffs[0] = signoffType.create(members[0],  TCSignoffOriginType.ADHOC_USER, null);
			  signoffs[1] = signoffType.create(members[1],  TCSignoffOriginType.ADHOC_USER, null);
			  taskSignoffUser.setRelated("valid_signoffs", signoffs);// 签发
			  taskSignoffUser.setRelated("signoff_attachments", signoffs);// 有效签发
//			  taskSignoffUser.setProperty("wait_for_all_reviewers", "1");// 等待所有审核者
		  }
	}
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值