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