版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、CoreUtil1、如何根据零部件的编号查找零部件的主数据(master)?-WTPartMaster 实现(shxin)步骤:a、首先需要用定义查询条件类QueryResultqs QueryResultqs = new QuerySpec(WTPartMaster.class); b、定义搜索条件,以零部件编号方式在master中搜索 SearchCondition sc = new SearchCondition(WTPartMaster.class, WTPartMaster.NUMBER, SearchCondition.EQUAL, 零部件的编号); qs.appendSearch
2、Condition(sc); c、得到零部件的主数据 qr = PersistenceHelper.manager.find(qs); WTPartMaster master = (WTPartMaster) qr.nextElement();2、如何根据零部件主数据(master)和视图名称获取对应最新版本零部件?-WTPart 实现(shxin)步骤:a、根据视图名称获取视图对象 View viewObj = ViewHelper.service.getView(view); b、根据视图构造产品结构配置规范 WTPartStandardConfigSpec standardConfig
3、= WTPartStandardConfigSpec.newWTPartStandardConfigSpec(viewObj, null); standardConfig.setView(viewObj); c、根据master和视图获取对应最新的视图版本零部件 QueryResult qr1 = ConfigHelper.service.filteredIterationsOf(master, standardConfig); WTPart part = (WTPart) qr1.nextElement();第1页/共19页第一页,共20页。3、如何根据oid获取windchill对象? 实
4、现步骤:a、实例化一个ReferenceFactory ReferenceFactory rf=new ReferenceFactory(); b、根据ReferenceFactory的getReference(String oid)获取windchill对象 WTObject obj= (WTObject) rf.getReference(oid).getObject(); c、把obj转换为想要(xin yo)的windchill对象4、如何根据给定的父件part来查询子件及BOM信息(WTPartUsageLink)?-QueryResult 实现步骤:a、根据父件获取视图 View v
5、iewObj=(View) part.getView().getObject(); /* 如果视图已经给定用下面的代码 View viewObj = ViewHelper.service.getView(view); */ b、得到视图配置规范 WTPartConfigSpec config = WTPartHelper.service.findWTPartConfigSpec();WTPartStandardConfigSpec standardConfig = config.getStandard(); standardConfig.setView(viewObj);这行代码一般都会加上t
6、ry-catch c、开始查询用WTPartHelper帮助类 QueryResult qr = WTPartHelper.service.getUsesWTParts(part, standardConfig);第2页/共19页第二页,共20页。d、循环qr得到子件和BOM,主要qr.nextElement返回的是一个Persistable数组 需要判断得到的子件类型 while(qr.hasMoreElements() Persistable objects = (Persistable) qr.nextElement(); WTPartUsageLink link = (WTPartUs
7、ageLink) objects0;/BOM WTObject subPart = (WTObject) objects1;/子件 if (subPart instanceof WTPart) WTPart sub = (WTPart) subPart; else WTPartMaster sub = (WTPartMaster) subPart;5、如何根据给定的父件得到其BOM(WTPartUsageLink)?-Vector 实现步骤(bzhu):这里用部件part为例 a、得到part第一层子件 QueryResult links = WTPartHelper.service.getU
8、sesWTPartMasters(part); b、得到BOM WTPartUsageLink usageLink = (WTPartUsageLink) links.nextElement(); c、可以把b屏蔽,直接返回Vector集合 links.getObjectVectorIfc().getVector(); 第3页/共19页第三页,共20页。6、如何根据文档doc获取关联的零部件? 实现步骤:a、用PartDocServiceCommand类的getAssociatedParts(WTDocument doc)方法即可 QueryResult qr = PartDocService
9、Command.getAssociatedParts(doc);7、如何获取含有主文件内容的对象的主内容(如文档,CAD图档。注意:变更请求,变更通告等变更对象只有附件,没有主文件,因此不能作为输入!)? 实现步骤:a、初始化,首先(shuxin)根据对象将文件内容列表加载到内存中 ContentHolder holder = ContentHelper.service.getContents(对象); b、然后获取主文件 QueryResult qr = ContentHelper.service.getContentsByRole(holder, ContentRoleType.PRIMA
10、RY); ContentItem primaryContent =(ContentItem) qr.nextElement(); c、输出信息,需要判断primaryContent的类型 if (primaryContent instanceof ApplicationData) 第一种:ApplicationData,即主文件或附件都是提交的应用软件产生的文件; ApplicationData data = (ApplicationData) primaryContent; else if (primaryContent instanceof URLData) 第二种:URLData,即主文
11、件或附件都是添加的URL地址; URLData data = (URLData) primaryContent;第4页/共19页第四页,共20页。8、如何根据对象(duxing)获取其附件? 实现步骤:只需要把上面的7中的b步骤QueryResult qr = ContentHelper.service.getContentsByRole(holder, ContentRoleType.PRIMARY);当中的 ContentRoleType.PRIMARY 改为ContentRoleType.SECONDARY即可 9、如何根据带有带有文件内容的对象(duxing)(如文档,CAD图档)和主
12、文件或附件得到文件内容的下载地址? 实现步骤:结合上面的7的实现加上RedirectDownload.getPreferredURL(ApplicationData , 对象(duxing).toExternalForm()即可获得下载地址10、如何根据对象(duxing)Oid获取对象(duxing)的所有文件内容(包括主文件和附件)?-Vector 实现步骤:a、首先根据Oid获取相应的对象(duxing) b、根据对象(duxing)将其文件内容加载到内存中去 ContentHolder holder=ContentHelper.service.getContents(对象(duxing
13、); c、根据ContentHelper帮助类的getContentListAll(ContentHolder holder)获取文件内容列表 Vector contentList = ContentHelper.getContentListAll(holder); d、得到ContentItem类型(含有文件内容的类型) ContentItem contentItem = (ContentItem) contentList.elementAt(i); e、在输出信息时结合上面的7需要适当的判断一下第5页/共19页第五页,共20页。WorkflowUtil1、如何根据根据部件、文档等windc
14、hill对象的编号和视图名获取相关流程? 实现步骤: a、首先根据编号用定义查询条件类QuerySpec查询windchill对象的主数据master 如:SearchCondition sc = new SearchCondition(WTPartMaster.class, WTPartMaster.NUMBER, SearchCondition.EQUAL, partNumber); b、在根据主数据master查到到相应的windchill对象 根据核心代码包中CoreUtil的总结2可知master怎样得到windchill对象 c、首先把windchill对象类型转换为Persist
15、able持久(chji)化类型 Persistable p = (Persistable) windchill对象; d、构造一个NmOid对象 ObjectIdentifier oi = PersistenceHelper.getObjectIdentifier(p); NmOid nmoid = NmOid.newNmOid(oi) e、根据NmWorkflowHelper类getRoutingHistoryData(nmoid)对象就可得到流程对象WfProcess类 QueryResult qr = NmWorkflowHelper.service.getRoutingHistoryD
16、ata(nmoid); WfProcess process = (WfProcess) qr.nextElement();第6页/共19页第六页,共20页。2、如何根据部件、文档等windchill对象获取其相关流程对象? 实现步骤:a、首先把windchill对象类型转换为Persistable持久化类型 Persistable p = (Persistable) windchill对象; b、构造一个NmOid对象 ObjectIdentifier oi = PersistenceHelper.getObjectIdentifier(p); NmOid nmoid = NmOid.newN
17、mOid(oi) c、根据NmWorkflowHelper类getRoutingHistoryData(nmoid)对象就可得到流程对象WfProcess类 QueryResult qr = NmWorkflowHelper.service.getRoutingHistoryData(nmoid); WfProcess process = (WfProcess) qr.nextElement();3、如何根据流程实例获取流程团队?-Team 实现步骤: 直接(zhji)用团队帮助类TeamHelper.service的getTeam(TeamManaged process)方法 Team te
18、am=TeamHelper.service.getTeam(process);4、如何获得指定团队中指定角色的参与者?-Enumeration 实现步骤:直接(zhji)用团队对象的getPrincipalTarget(Role role)方法 Enumeration enu=team.getPrincipalTarget(Role role)5、如何根据工作流本身和特定角色得到流程团队中特定角色的所有参与者信息?-Vector 实现步骤:a、根据进程对象获取相关进程 WfProcess process =WorkflowUtil.getProcess(工作流本身); b、根据进程proces
19、s获取其所拥有的团队 Team team=TeamHelper.service.getTeam(process);第7页/共19页第七页,共20页。 c、根据团队team获取其指定角色(ju s)的所有参与者信息 Enumeration enu=team.getPrincipalTarget(Role role) d、循环enu得到WTPrincipalReference类 WTPrincipalReference principalRef = (WTPrincipalReference) enu.nextElement() e、根据WTPrincipalReference类的getPrinc
20、ipal()方法就可以得到参与者信息了 WTPrincipal participant = principalRef.getPrincipal(); f、获取参与者的名字 participant.getName();6、如何添加一个参与者到流程某一指定角色(ju s)?-boolean 实现步骤:a、首先根据进程对象得到相关进程 WfProcess process =WorkflowUtil.getProcess(processObj); b、根据进程process获取所属团队team wt.team.Team team = getTeam(process); c、根据团队team已经指定角色
21、(ju s)role获取指定角色(ju s)所有参与者 Enumeration enu=team.getPrincipalTarget(Role role) WTPrincipal participant = (WTPrincipalReference) enu.nextElement().getPrincipal(); d、要添加的参与者和角色(ju s)已存在的参与者比较,如果以存在则返回false f、把角色(ju s)名rolename转换为Role类,并把参与者添加到角色(ju s)中,调用团队team.addPrincipal()方法 ject.Role role =
22、(ject.Role) (ject.Role.toRole(rolename);team.addPrincipal(role, 添加的参与者);第8页/共19页第八页,共20页。7、如何添加多个参与者到流程某一指定角色? 实现步骤:a、首先把多个参与者添加到集合中 b、然后在上面f步使用循环添加参与者即可8、如何获得流程的创建者? 实现步骤:a、首先确定要查询的流程实例 WfProcess currentProcess = getProcess(流程实例); b、根据(gnj)流程实例获取其创建者,根据(gnj)流程的getCreator()方法 WTPrincipal
23、 curCreator = (WTPrincipal) (WTPrincipalReference) currentProcess.getCreator().getObject();第9页/共19页第九页,共20页。OrgUtil第10页/共19页第十页,共20页。2、如何获取当前登录的用户和组织? 实现步骤:a、获取当前用户 WTUser user=SessionHelper.manager.getPrincipal(); b、根据user获取其所属组织WTOrganization org=OrganizationServicesHelper.manager.getOrganization(
24、user)3、如何根据给定的用户id获得用户? 实现步骤: a、用查询类QuerySpec qs = new QuerySpec(WTUser.class); b、用查询条件id限定用户,如果用户id无效,则返回空 SearchCondition sc = new SearchCondition(WTUser.class, name, SearchCondition.LIKE, userid, false); c、把查询条件和查询类绑定qs.appendSearchCondition(sc); d、得到返回结果QueryResult qr=PersistenceHelper.manager.f
25、ind(qs); e、用qr.nextElement()得到用户WTUser 4、如何判断指定用户是否(sh fu)属于指定用户组的成员? 实现步骤:a、根据用户user获取其组织 WTOrganization org=OrganizationServicesHelper.manager.getOrganization(user) b、根据组织和组名查询到组 WTGroup group=OrgUtil.getGroupByName(WTOranization org, String groupName) c、根据WTGroup类的方法boolean flag= group.isMember(u
26、ser)判断 如果flag为true则指定用户是指定用户组的成员,反之则不是第11页/共19页第十一页,共20页。5、如何根据组名称获取组? 实现步骤:a、用定义查询条件类QuerySpec类和SearchCondition类来查询组 QuerySpec qs = new QuerySpec(WTGroup.class); b、根据组名groupName查询 SearchCondition sc = new SearchCondition(WTGroup.class, name, SearchCondition.EQUAL, groupName);qs.appendSearchConditio
27、n(sc); c、根据组的类型过滤(gul)SearchCondition sc2 = new SearchCondition(WTGroup.class, internal, SearchCondition.IS_FALSE);qs.appendAnd();qs.appendSearchCondition(sc2); d、得到结果QueryResult QueryResult qr =PersistenceHelper.manager.find(qs); e、得到组WTGroup WTGroup group=(WTGroup)qr.nextElement();6、如何根据组织来获得其下面的组
28、? 实现步骤:a、用定义查询条件类QuerySpec类和SearchCondition类来查询组 QuerySpec qsx = new QuerySpec(OrgContainer.class); b、根据组名groupName查询 SearchCondition scx = new SearchCondition(OrgContainer.class,OrgContainer.NAME,SearchCondition.EQUAL,org.getName());qs.appendSearchCondition(scx)第12页/共19页第十二页,共20页。c、得到结果orgContainer
29、 QueryResult qrx = PersistenceHelper.manager.find(qsx); WTContainer orgContainer = (WTContainer) qrx.nextElement(); d、根据ReferenceFactory类和orgContainer得到对象标识符类 ReferenceFactory rf = new ReferenceFactory();ObjectIdentifier objId = ObjectIdentifier.newObjectIdentifier(rf.getReferenceString(orgContainer
30、); e、根据objId就可以通过查询(chxn)条件得到组了 SearchCondition sc3 = new SearchCondition(WTGroup.class, containerReference.key, SearchCondition.EQUAL, objId); qsx.appendSearchCondition(sc3); f、通过得到结果QueryResult qs.appendAnd(); QueryResult qr = PersistenceHelper.manager.find(qsx); g、得到组WTGroup WTGroup group=(WTGrou
31、p)qr.nextElement();7、如何得到Ladp目录服务? 方法:OrgUtil._getAllServices()第13页/共19页第十三页,共20页。若要对IBA进行一些操作(cozu),首先我们必须了解几个定义:软属性:.软属性又称IBA属性,我们可以自己添加的属性。只是对象的的全局属性。软类型:软类型是一个对象的子类型。软类型是我们创建的子类型的对象。 例如:文档下面再创建一个描述文 档类型其中还有大类和小类的称呼,大类也就是软类型,小类就是软属性。第14页/共19页第十四页,共20页。1 、 如 何 根 据 对 象 的 O i d 获 取 ( h u q ) I B A 属
32、 性 值 、 I B A 名 称 和 I B A 显 示 名 称 ? 实 现 步 骤 : a 、 首 先 根 据 O i d 获 取 ( h u q ) 相 关 w i n d c h i l l 对 象 b 、 根 据 I B A V a l u e H e l p e r 帮 助 类 的 刷 新 没 有 约 束 的 属 性 容 器 方 法r e f r e s h A t t r i b u t e C o n t a i n e r W i t h o u t C o n s t r a i n t s ( 对 象 ) 得 到 I B A H o l d e r 储 存 器 类 型 I
33、B A H o l d e r i b a H o l d e r = I B A V a l u e H e l p e r . s e r v i c e . r e f r e s h A t t r i b u t e C o n t a i n e r W i t h o u t C o n s t r a i n t s ( 对 象 ) ; c 、 根 据 I B A H o l d e r 储 存 器 类 型 的 g e t A t t r i b u t e C o n t a i n e r ( ) 方 法 得 到 I B A 的 属 性 容 器 D e f a u l t
34、A t t r i b u t e C o n t a i n e r D e f a u l t A t t r i b u t e C o n t a i n e r d a c = ( D e f a u l t A t t r i b u t e C o n t a i n e r ) i b a H o l d e r . g e t A t t r i b u t e C o n t a i n e r ( ) ; d 、 根 据 d a c 的 g e t A t t r i b u t e V a l u e s ( ) 方 法 得 到 A b s t r a c t V a
35、l u e V i e w 类 型 的 数 组 A b s t r a c t V a l u e V i e w v a l u e V i e w s = d a c . g e t A t t r i b u t e V a l u e s ( ) ; e 、 循 环 数 组 v a l u e V i e w s 把 里 面 的 对 象 全 用 A b s t r a c t V a l u e V i e w 接 受 f o r ( i n t j = 0 ; j return Hashtable 实现步骤:可以参与上面的1和2,只需要把1中获取IBA属性值的方法改成 String
36、value = IBAValueUtility.getLocalizedIBAValueDisplayString(avv, locale);即可4、如何根据IBA的逻辑标识符获取其属性定义? 实现步骤:a、首先搜索逻辑标识符对象 QuerySpec qs = new QuerySpec(LogicalIdentifierMapEntry.class);SearchCondition sc = new SearchCondition (LogicalIdentifierMapEntry.class,LogicalIdentifierMapEntry.LOGICAL_IDENTIFIER, Se
37、archCondition.EQUAL, logicalId);qs.appendSearchCondition(sc);QueryResult qr = PersistenceHelper.manager.find(qs); b、从qr中取出逻辑标识符对象LogicalIdentifierMapEntry,然后根据逻辑标识符对象得到元数据类型SoftMetaData LogicalIdentifierMapEntry logicalIdentifier = (LogicalIdentifierMapEntry) qr.nextElement(); SoftMetaData softMetaD
38、ata = logicalIdentifier.getIdentifiedObject(); c、把softMetaData转成IBA属性定义类型AbstractAttributeDefinition AbstractAttributeDefinition attributeDef = (AbstractAttributeDefinition) softMetaData; d、根据attributeDef获取IBA属性定义视图AttributeDefDefaultView IBADefViewManager.getAttDefView(attributeDef);第16页/共19页第十六页,共
39、20页。5、如何根据IBA对象和IBA属性表更新软属性?-return IBA对象 实现步骤:a、首先根据IBA对象得到IBA属性容器 IBAHolder ibaHolder = (Typed) IBAValueHelper.service.refreshAttributeContainerWithoutConstraints(ibaHolder);DefaultAttributeContainer dac = (DefaultAttributeContainer) ibaHolder.getAttributeContainer(); b、根据dac和属性表更新软属性 dac =IBAUtil.setSoftTypeIBAValues(dac, attributes); ibaHolder.setAttributeContainer(dac); ibaHolder = (Ty
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 赣南医学院《园艺学实验》2023-2024学年第一学期期末试卷
- 甘肃中医药大学《种子检验技术》2023-2024学年第一学期期末试卷
- 《港口起重机械说》课件
- 小学生课件模板图片
- 安全取暖主题班会课件
- 七年级道德与法治上册第四单元生命的思考第八课探问生命第1框生命可以永恒吗说课稿新人教版
- 小学生观看党的课件
- 三年级科学上册第三单元天气与我们的生活第十五课一周的天气教案青岛版
- 矿区消防安全课件
- 校园课件安全事故
- 2024年国家能源集团招聘笔试参考题库含答案解析
- MOOC 管理学-郑州轻工业大学 中国大学慕课答案
- 军事理论智慧树知到期末考试答案2024年
- 2024年贵州贵安发展集团有限公司招聘笔试参考题库附带答案详解
- 《混凝土的检测》课件
- 卫生健康系统2024年安全生产和消防工作要点
- CNC数控编程述职报告
- 生产车间环境改善方案
- 2024年高考物理真题分类汇编(全一本附答案)
- 2024-2025年上海中考英语真题及答案解析
- 新疆喀什地区巴楚县2023-2024学年九年级上学期1月期末化学试题
评论
0/150
提交评论