W i n d c h i l l二次开发
常用A P I
1.1.根据零件名称/编码得到该零件
2.wt.clients.prodmgmt.WTPartHelper.findPartByName(name) ;
3.wt.clients.prodmgmt.WTPartHelper.findPartByNumber(number);
4.2.根据WTpart得到WTparMaster
5.WtPart wtpart;
6.WTPartMaster wtmaster=(WTPartMster)part.getMaster();
7.3.获取codebase下配置文件wt.properties属性信息
8.WTProperties wtproperties = WTProperties.getLocalProperties();
9.String wthome = wtproperties.getProperty("wt.home", "");
//codebase的文件夹路径
10.4.获取part被借用的所有父部件
11.QueryResult qr=
wt.part.WTPartHelper.service.getUsedByWTParts(WTPartMster
wtMaster);
12.注:此方法得到的结果为该part被使用情况的全部父部件,包括了Design视
图及Manufacturing视图更包括了父部件使用part的所有修订版本,打印出来可以看到会有相同的部件编号,不同的修订版本.
13.5.根据OID 获取Wtpart
14.wt.fc.WTReference partRef = new
wt.fc.ReferenceFactory().getReference( oid );
15.WTPart wtpart=(WTPart)partRef;
16.6.得到零件最新版本
17.WTPart wtpart= (WTPart)
VersionControlHelper.getLatestIteration(part);
18.7.通过过滤得到零件最新版本
19.QuerySpec querysearch = new QuerySpec(WTPartMaster.class);
20.//查询所有的WTPartMaster
21.QueryResult queryresult =
PersistenceHelper.manager.find(querysearch);
testConfigSpec latestconfigspec = new
LatestConfigSpec();
23.//根据WTPartMaster查询所有最新版本的零部件
24.QueryResult allWTPart =
ConfigHelper.service.filteredIterationsOf(queryresult,latestc onfigspec)
25.8.查询某用户某段时间范围内创建的零件
26.QuerySpec qs = new QuerySpec(WTPart.class);
27.qs.appendSearchCondition(new
SearchCondition(WTPart.class,WTPart.CREATE_TIMESTAMP, true,
new AttributeRange(begintime, endtime)));//删选条件时间范围内
28.qs.appendAnd();//一定要加上不然下一个条件不能删选
29.qs.appendSearchCondition(new SearchCondition(WTPart.class,
30."iterationInfo.creator.key",
SearchCondition.EQUAL,PersistenceHelper.getObjectIdentifier(n ame)));//删选条件用户
31.QueryResult qr = PersistenceHelper.manager.find(qs);
32.//今后持续更新
if (enumUser.hasMoreElements())
user = (WTUser) enumUser.nextElement();
}
if (user == null) {
throw new WTException("系统中不存在用户名为'" + name + "'的用户!");
}
return user;
}
}
10.windchill 中查询,高级查询,基本查询
QuerySpec qs = new QuerySpec();//构造
Int index = qs.appendClassList(WTPart.class,true);//添加查询类型,获取类型索引,第2个参数表示“要查询的类型、表”
WhereExpression where = new SearchCondition(WTPart.class, WTPart.xx, “=”, xx);//泛型在WC API中的使用
//获取查询条件数目
If(qs.getConditionCount()>0 && qs.getWhere().endsWith(“"))
{
qs.appendAnd();
}
//添加查询条件
qs.appendWhere(where, new int[]{index});
//** 以下是联合查询的API范例。
LINK关系//ROLEA、ROLEB的INDEX被使用到。
int linkIndex = qs.appendClassList(XXLink.class, false);
qs.appendJoin(linkIndex, xxLink.RoleA, index_A);
qs.appendJoin(linkIndex, xxLink.RoleB, index_B);
//添加“生命周期”查询条件
LifeCycleConfigSpec lcsp = new LifeCycleConfigSpec();
lcsp.setLifeCycleState(State.toState(state));
qs = lcsp.appendSearchCriteria(qs);
//执行查询
QueryResult qr = PersistenceHelper.manager.find(qs);
//过滤出最新小版本
LatestConfigSpec lcs = new LatestConfigSpec();
qr = lcs.process(qr);
/**
* 根据WTPartMaster对象获得最新的WTPart
* @param partmaster WTPartMaster对象
* @return 最新的WTPart
* @throws WTException
*/
public static WTPart getLastPart(WTPartMaster partmaster) throws WTException{ WTPart part=null;
if(partmaster==null){
return part;
}
ConfigSpec configSpec=ConfigHelper.service.getDefaultConfigSpecFor(WTPart.class);
QueryResult qr=ConfigHelper.service.filteredIterationsOf(partmaster, configSpec); if(qr!=null){
while(qr.hasMoreElements()){
part=(WTPart) qr.nextElement();
}
}
return part;
}。