《Windchill API 培訓(xùn)ppt課件》由會(huì)員分享,可在線閱讀,更多相關(guān)《Windchill API 培訓(xùn)ppt課件(34頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、Windchill API 培訓(xùn)1Windchill API 培訓(xùn)Windchill API 培訓(xùn)2概述 只有掌握Windchill API,才能實(shí)施好方案. 本文介紹方案實(shí)施中最常使用的API WC API有框架,學(xué)習(xí)本文的基礎(chǔ),其它可舉一反三. 養(yǎng)成“驗(yàn)證、總結(jié)”的好習(xí)慣Windchill API 培訓(xùn)3目錄高級(jí)查詢基本查詢用戶、組、角色的查與改流程參數(shù)IBA操作設(shè)置生命周期狀態(tài)設(shè)置動(dòng)態(tài)權(quán)限部件與文檔之間持續(xù)化操作Windchill設(shè)計(jì)模式Windchill API 培訓(xùn)41、高級(jí)查詢 添加查詢類型 添加查詢條件 聯(lián)合查詢 添加生命周期條件 執(zhí)行查詢 過濾出最新小版本W(wǎng)indchill A
2、PI 培訓(xùn)5QuerySpec qs = new QuerySpec();/構(gòu)造Int index = qs.appendClassList(WTPart.class,true);/添加查詢類型,獲取類型索引,第2個(gè)參數(shù)表示“要查詢的類型、表”WhereExpression where = new SearchCondition(WTPart.class, WTPart.xx, “=”, xx);/泛型在WC API中的使用Windchill API 培訓(xùn)6/獲取查詢條件數(shù)目If(qs.getConditionCount()0 & qs.getWhere().endsWith(“)”)qs.a
3、ppendAnd();/添加查詢條件qs.appendWhere(where, new intindex);/* 以下是聯(lián)合查詢的API范例。LINK關(guān)系/ROLEA、ROLEB的INDEX被使用到。int linkIndex = qs.appendClassList(XXLink.class, false);qs.appendJoin(linkIndex, xxLink.RoleA, index_A);qs.appendJoin(linkIndex, xxLink.RoleB, index_B);Windchill API 培訓(xùn)7/添加“生命周期”查詢條件LifeCycleConfigSpe
4、c lcsp = new LifeCycleConfigSpec();lcsp.setLifeCycleState(State.toState(state);qs = lcsp.appendSearchCriteria(qs);/執(zhí)行查詢QueryResult qr = PersistenceHelper.manager.find(qs);/過濾出最新小版本LatestConfigSpec lcs = new LatestConfigSpec();qr = lcs.process(qr);Windchill API 培訓(xùn)8習(xí)題1 1、查詢部件輸入:部件編碼輸出:各小版本對(duì)象的集合 2、接上題,
5、添加條件:只得到最新小版本 3、查詢部件的參考文檔輸入:部件對(duì)象輸出:此部件的所有參考文檔Windchill API 培訓(xùn)92、基本查詢 建立數(shù)據(jù)庫連接 準(zhǔn)備SQL語句 執(zhí)行查詢 遍歷查詢結(jié)果 關(guān)閉數(shù)據(jù)庫連接Windchill API 培訓(xùn)10/建立數(shù)據(jù)庫連接PDSIfc pds = DataServicesRegistry.getDefault().getPdsFor(“Default”);Connection conn = null;if(pds!=null)conn = pds.getDataSource().getConnection();Windchill API 培訓(xùn)11/準(zhǔn)備SQ
6、L語句PreparedStatement query = conn. prepareStatement(SQL);/執(zhí)行查詢ResultSet rs = query.executeQuery();/關(guān)閉數(shù)據(jù)庫連接。conn.close();Windchill API 培訓(xùn)12習(xí)題2 1、查詢部件的最新小版本輸入:部件編碼輸出:部件的最新小版本W(wǎng)indchill API 培訓(xùn)133、用戶、組、角色的查與改 WC中承擔(dān)者的類型結(jié)構(gòu) 核心API:OrganizationServicesHelperWindchill API 培訓(xùn)14 承擔(dān)者的類型結(jié)構(gòu)WTPrincipalWTGroupWTOrgna
7、zitionWTUserWindchill API 培訓(xùn)15 查用戶OrganizationServicesHelper.manager.getAuthenticatedUser(String); 其它常用的方法。在OrganizationServicesHelper的設(shè)計(jì)中,提供了許多有關(guān)用戶、群組、團(tuán)隊(duì)的“服務(wù)”。Windchill中大量使用“Helper-服務(wù)模式” 。有關(guān)“Windchill的3大模式”,請(qǐng)?jiān)斠奧indchill 客制化手冊(cè)倒數(shù)第2章,本文略。Windchill API 培訓(xùn)16 其它常用方法:getGroup();getOrganization();isMember(
8、);members();rename();Windchill API 培訓(xùn)17習(xí)題3 1、查找用戶輸入:表示名稱的字符串輸出:用戶對(duì)象。若無此用戶則返回null。 2、驗(yàn)證用戶是否屬于組輸入:表示用戶的字符串,表示組的字符串輸出:若屬于則返回true其它返回false 3、驗(yàn)證用戶是否屬于某角色輸入:表示用戶的字符串,表示角色的字符串輸出:若屬于則返回true其它返回false 4、將用戶添加到組和角色輸入:表示用戶、組、角色的字符串輸出:若發(fā)生異常則拋出異常Windchill API 培訓(xùn)184、流程參數(shù) 進(jìn)程類型:WfProcess 活動(dòng)類型:WfAssignedActivity 進(jìn)程上下
9、文:ProcessData 進(jìn)程變量:WfVariableWindchill API 培訓(xùn)19/獲取活動(dòng)WfAssignedActivity activity = (WfAssignedActivity) workItem.getSource().getObject();/獲取進(jìn)程WfProcess process = activity.getParentProcess();/獲取進(jìn)程上下文ProcessData pPdata = wfProcess.getContext();Windchill API 培訓(xùn)20/獲取變量WfVariable xx = pData.getVariable(“x
10、x”);Windchill API 培訓(xùn)21習(xí)題4 1、創(chuàng)建一個(gè)問題報(bào)告,找到它的進(jìn)程輸入:?jiǎn)栴}報(bào)告的編碼輸出:相關(guān)進(jìn)程對(duì)象 2、接上題,查詢當(dāng)前活動(dòng)節(jié)點(diǎn)輸入:進(jìn)程對(duì)象輸出:進(jìn)程目前所在活動(dòng)節(jié)點(diǎn)的名稱 3、接上題,查詢進(jìn)程上下文輸入:進(jìn)程對(duì)象輸出:進(jìn)程上下文Windchill API 培訓(xùn)225、IBA操作 IBA=Instance Based Attribute 有現(xiàn)成的IBAUtility供使用 注意兩點(diǎn): 1)為每個(gè)對(duì)象構(gòu)造它自己的IBAUtility對(duì)象 2)set更新屬性后,需要updateAttributeContainer(); IBA名稱定義在:StringDefinition
11、表中。Windchill API 培訓(xùn)23習(xí)題5 1、使用現(xiàn)有的IBAUILITY,查詢部件的IBA屬性輸入:部件對(duì)象,指定IBA屬性的名稱輸出:IBA屬性值 2、接上題,設(shè)置此IBA屬性為新值輸入:部件對(duì)象,指定IBA屬性的名稱,新IBA屬性值輸出:若發(fā)生異常則返回異常Windchill API 培訓(xùn)246、設(shè)置生命周期狀態(tài)Helper-服務(wù)模式 核心API:LifeCycleHelper/設(shè)置生命周期狀態(tài)LifeCycleHelper.service.setLifeCycleState();Windchill API 培訓(xùn)25習(xí)題6 1、查詢部件的生命周期模板輸入:部件對(duì)象輸出:生命周期模
12、板對(duì)象 2、重新設(shè)置部件的生命周期狀態(tài)輸入:部件對(duì)象輸出:若發(fā)生異常則拋出異常Windchill API 培訓(xùn)267、設(shè)置動(dòng)態(tài)權(quán)限Helper-服務(wù)模式 核心API:AccessHelperWindchill API 培訓(xùn)27習(xí)題7 1、判斷某用戶是否能修改某對(duì)象輸入:用戶對(duì)象,部件對(duì)象輸出:能則返回true其它返回false。 2、為用戶添加修改權(quán)限輸入:用戶對(duì)象,部件對(duì)象輸出:若發(fā)生異常則拋出異常Windchill API 培訓(xùn)288、部件與文檔之間 部件與文檔之間的關(guān)系,Windchill API是WTPartReferenceLink 核心API:StructureHelper/查詢S
13、tructureHelper.service.navigateReference./構(gòu)造WTPartReferenceLink.new WTPartReferenceLink();Windchill API 培訓(xùn)29習(xí)題8 1、查詢部件的所有參考文檔輸入:部件對(duì)象輸出:所有參考文檔的集合 2、查詢文檔參考的部件輸入:文檔對(duì)象輸出:與之有參考關(guān)系的部件的集合Windchill API 培訓(xùn)309、持續(xù)化操作 核心API:PersistenceHelper 沒有持續(xù)化的對(duì)象不能使用此API。要操作不持續(xù)的對(duì)象,使用其它WC API。/刪除PersistenceHelper.manager.detele./存儲(chǔ)PersistenceHelper.manager.detele.Windchill API 培訓(xùn)31習(xí)題9 1、刪除部件輸入:部件對(duì)象輸出:若發(fā)生異常則拋出異常 2、更新部件的名稱輸入:部件對(duì)象輸出:若發(fā)生異常則拋出異常Windchill API 培訓(xùn)3210、Windchill設(shè)計(jì)模式 一起學(xué)習(xí)Windchill 客制化手冊(cè)倒數(shù)第2章Windchill API 培訓(xùn)33總結(jié) 1、習(xí)慣一:防止空指針異常。 2、多實(shí)踐、多驗(yàn)證 3、用JAVA OOP的思想來思考WC API。 4、規(guī)范的代碼是職業(yè)素養(yǎng)的體現(xiàn)。Windchill API 培訓(xùn)34謝謝!