常用開發(fā)大全演示文稿(共283張PPT)_第1頁
常用開發(fā)大全演示文稿(共283張PPT)_第2頁
常用開發(fā)大全演示文稿(共283張PPT)_第3頁
常用開發(fā)大全演示文稿(共283張PPT)_第4頁
常用開發(fā)大全演示文稿(共283張PPT)_第5頁
已閱讀5頁,還剩279頁未讀 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

1、常用開發(fā)大全演示文稿(共283張PPT)常用開發(fā)大全演示文稿(共283張PPT)開發(fā)規(guī)范JAVA開發(fā)規(guī)范,請遵守sun標準Windchill開發(fā)規(guī)范由于將來系統(tǒng)生產(chǎn)環(huán)境是Cluster架構,所以在編寫代碼時,要盡量避免使用Static的Class變量,測試環(huán)境配置多個Method Server,以防止編寫的代碼在Cluster環(huán)境中運行出現(xiàn)問題。系統(tǒng)運行的錯誤信息,要顯示在UI界面上,以便用戶和系統(tǒng)管理員了解,同時需要在系統(tǒng)log中記錄。Debug語句要有開關控制,避免直接使用打印,導致將來的生產(chǎn)環(huán)境產(chǎn)生大量日志。每個客制點之間,設定一個Debug開關,方便自身模塊的調(diào)試。Debug的開關,缺

2、省值設置為false。客制點之間的輸入和輸出部分,需要輸出Debug信息,方便客制點之間的調(diào)試。工作流中的表達式,具體實現(xiàn),都寫在WfUtil中,只在工作流中調(diào)用WfUtil中的方法。WfUtil中的方法注釋中,需要說明該段代碼,將在那些workflow中被調(diào)用。系統(tǒng)OOTB配置部分通過XML配置文件交付。方便新系統(tǒng)可以直接通過LoadFileSet導入配置。系統(tǒng)內(nèi)部值,例如IBA,全部由英文字母和數(shù)字組成,不能包含特殊字符。禁止反編譯系統(tǒng)OOTB的Class文件,然后在此基礎上修改做客制,導致系統(tǒng)無法升級。需要對出廠文件(HTML template等)修改時,需要保存原出廠文件的備份在wtS

3、afeAreaptcOrig目錄下,修改后的文件另存到wtSafeAreasiteMod目錄需要增加的properties屬性不要放置在perties中(service的注冊除外),其他都放置在codebasecomitbgperties。客制的新增Class文件放置在codebasecomitbg對應的目錄下。不要放在系統(tǒng)原有的包中。(除非使用了系統(tǒng)原有的Protected Method,這種用法要盡量避免).第2頁,共283頁。開發(fā)規(guī)范JAVA開發(fā)規(guī)范,請遵守sun標準第2頁,共283頁設計規(guī)范設計規(guī)范之建模僅對持久化對象建模 只有數(shù)據(jù)需要保存到數(shù)據(jù)庫中的持久化業(yè)務對象才允許進行建模。其余

4、的操作類(例如:Processor、Delegate、Helper類等) 不被允許進行建模。模型命名規(guī)則對象的名稱、屬性名稱、方法名稱應該滿足命名規(guī)則,同Java編碼規(guī)范的類命名、變量命名和方法命名。 例如:類名 TRApplyDoc 屬性名trPhase 方法名getFormData 說明: 的模型如果要更改將要做數(shù)據(jù)遷移。因此只要求對新建立的模型, 模型不做要求。第3頁,共283頁。設計規(guī)范設計規(guī)范之建模第3頁,共283頁。設計規(guī)范字段擴展 對于對象的屬性,一般情況下采用默認長度。建模時要求考慮屬性長度是否符合要求,如果需要加大長度,在模型中設置相應的值即可。選擇父類 對于建模,盡量繼承底

5、層的Windchill類,例如:ManagedItem等,繼承上層的具有實際業(yè)務含義的Windchill類(例如:WTPart、WTDocument)時,在業(yè)務上符合“是一個(As -is)”的含義,例如:EleadPart是一個WTPart不預留屬性 對象建模,不預留屬性。對于已有對象的預留屬性,因?qū)傩悦Q業(yè)務含義,也不允許使用。 模型已預留的屬性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等預留屬性第4頁,共283頁。設計規(guī)范字段擴展第4頁,共283頁。設計規(guī)范關聯(lián)關系 兩個對象關聯(lián)時,需要使用模型的關聯(lián)關系。盡量不要采用建模為兩個獨立對象,在一個對象的屬性中記錄

6、另一個對象的某個標志屬性的方式。 例如: 錯誤的建模方法:CBBCounter類有一個屬性cbbNumber,記錄CBB的編碼。 正確的建模方法:引入一個Link對象,記錄CBBCounter類和WTPartMaster類的關系。布局 類圖中盡量保證各部分分布均勻,連線盡量不要交叉,整個類圖能夠顯示在一個屏幕范圍之內(nèi)(標準1024*768分辨率),對于引用的其他包的類、接口,可以將其屬性、方法隱藏起來。避免占用過大的顯示空間。第5頁,共283頁。設計規(guī)范關聯(lián)關系第5頁,共283頁。建模搭建環(huán)境進入到Windchill+Information+Modeler-091_F000lRational_

7、Rose_for_Windowssetup.exe安裝安裝完成之后,load注冊文件進入到WT_HOMEroseAddIn,將和文件中的路徑修訂為個人本機環(huán)境的路徑并注冊 第6頁,共283頁。建模搭建環(huán)境進入到Windchill+Informatio建模搭建環(huán)境啟動rose,點擊“Edit Path Map”查看注冊信息 第7頁,共283頁。建模搭建環(huán)境啟動rose,點擊“Edit Path MapRose模型介紹打開Rose模型,點擊FileOpen選擇srcwtWTdesigner.mdl第8頁,共283頁。Rose模型介紹打開Rose模型,點擊FileOpen第8Rose模型使用點擊【是

8、】,系統(tǒng)會加載其中Logical View是系統(tǒng)核心 邏輯顯示,其中3rd是Windchilll 中使用了哪些Java技術模塊、ext 是系統(tǒng)客制化擴展模型目錄、wnc是Windchill核心業(yè)務邏輯組成點擊Save AS,重新命名為HelloWorld.mdl文件,彈出框選擇No,環(huán)境搭建好后,即可創(chuàng)建模型第9頁,共283頁。Rose模型使用點擊【是】,系統(tǒng)會加載第9頁,共283頁。擴展模型第10頁,共283頁。擴展模型第10頁,共283頁。模型擴展(續(xù))針對上面的圖示,自定義個模型EleadDocs,繼承WTDocument,該模型自定義方法getEleadDocName()和屬性elea

9、dDocType,且將其屬性設置constrain=false,點擊保存(遇到提示,點擊No)選擇菜單Units.Control docs,保存為docs.cat第11頁,共283頁。模型擴展(續(xù))針對上面的圖示,自定義個模型EleadDocs模型擴展(續(xù))生成系統(tǒng)文件,選中docs包第12頁,共283頁。模型擴展(續(xù))生成系統(tǒng)文件,選中docs包第12頁,共283模型擴展(續(xù))生成系統(tǒng)文件.mData和EleadDocs.java文件在src目錄下自動生成包路徑和文件 docs.mData和EleadDocs.java第13頁,共283頁。模型擴展(續(xù))生成系統(tǒng)文件.mData和EleadD

10、ocs.模型擴展(續(xù))系統(tǒng)會自動生成SQL【W(wǎng)T_HOME】dbsql3exteleaddocs生成.ser文件【W(wǎng)T_HOME】codebaseexteleaddocs執(zhí)行SQL語句進入到 Oracle SQL*Plus路徑,執(zhí)行命令:操作完成之后,即可使用EleadDocs對象了!第14頁,共283頁。模型擴展(續(xù))系統(tǒng)會自動生成SQL【W(wǎng)T_HOME】db模型擴展(續(xù))第15頁,共283頁。模型擴展(續(xù))第15頁,共283頁。模型擴展(續(xù))完整的例子說明在windchill/src/目錄下建立一個helloWorld目錄,在windchill/codebase/目錄下也建立一個hello

11、World目錄打開rose軟件,依次打開fileopen定位到windchill/src/wt/WTdesigner.mdl,打開出現(xiàn)這個對話框,選擇是,然后就耐心等待系統(tǒng)加載完這個文件。當完全加載完以后把這個文件保存到上面建立的windchill/src/helloWorld目錄下,名稱為helloWorld第16頁,共283頁。模型擴展(續(xù))完整的例子說明第16頁,共283頁。模型擴展(續(xù))打開helloWorld. Mdl,打開后如下圖你可以發(fā)現(xiàn)你打開的時候是沒有wt,java,helloWorld這3個package的,因為這3個package中wt和java是從左邊的方框中拖過來的,

12、而helloWorld這個是我自己建立的,然后把helloWorld和wt,java這2個package建立關系如上圖。然后雙擊helloWorld這個package在這個package中開始創(chuàng)建類。第17頁,共283頁。模型擴展(續(xù))打開helloWorld. Mdl,打開后如下模型擴展(續(xù))打開helloWorld這個package后會出現(xiàn)下圖第18頁,共283頁。模型擴展(續(xù))打開helloWorld這個package后會模型擴展(續(xù))你打開的時候是什么都沒有的,這里面person,personLink這2個類是自己建立的,可以從中間的那個條中選擇到的,然后對這2個類進行編輯,選中per

13、son這個類,點右鍵,會出現(xiàn)點擊第一個,然后就會出現(xiàn)第19頁,共283頁。模型擴展(續(xù))你打開的時候是什么都沒有的,這里面person模型擴展(續(xù))第20頁,共283頁。模型擴展(續(xù))第20頁,共283頁。模型擴展(續(xù))選擇attributes這個標簽第21頁,共283頁。模型擴展(續(xù))選擇attributes這個標簽第21頁,共2模型擴展(續(xù))然后在空白的地方點右鍵就會出現(xiàn)一個快捷菜單,在這個菜單中可以創(chuàng)建一個變量,然后雙擊變量會出現(xiàn)第22頁,共283頁。模型擴展(續(xù))然后在空白的地方點右鍵就會出現(xiàn)一個快捷菜單,在模型擴展(續(xù))在這個里面會對這個變量的類型進行設置,然后點windchill標

14、簽找到constrain這項,設置value為false,每個變量都需要這樣進行設置,然后讓這個類繼承這個抽象類,這樣就表明person這個類現(xiàn)在是持久的。同理把person這個類和wtpart這個類建立關聯(lián),關聯(lián)的類為PersonLink然后讓personLink繼承ObjectToObjectLink這個類,然后把這個helloWorld. mdl保存一下,然后依次打開fileunitscontrol,然后再依次打開,toolswindchillsystem generation第23頁,共283頁。模型擴展(續(xù))在這個里面會對這個變量的類型進行設置,然后點w模型擴展(續(xù))選中前3項點OK

15、,然后這個時候你就可以在windchill/src/helloWorld這個目錄下看到有Person.java和PersonLink.java這2個java文件,并且在windchill/db/sql3/helloWorld這個目錄下面也會產(chǎn)生幾個sql文件,把這幾個sql文件導入到數(shù)據(jù)庫中建立相關的表,要注意建立的先后順序:只用操作以create開頭的3個sql文件第24頁,共283頁。模型擴展(續(xù))選中前3項點OK,然后這個時候你就可以在win模型擴展(續(xù))修改Person.java加入下面的代碼protected void initialize() throws WTExceptionD

16、ate today = new Date();super.initialize();System.out.println(Person - initialize executing!);String s = String.valueOf(today.toLocaleString();setId(s); 然后把person.java和personLink.java這兩個文件放到windchill/codebase/helloWorld/目錄下進行編譯。第25頁,共283頁。模型擴展(續(xù))修改Person.java加入下面的代碼第25模型擴展(續(xù))寫測試代碼public class HelloWo

17、rldTest public static void main(String args) String userName = args0; String password = args1; RemoteMethodServer methodserver = RemoteMethodServer.getDefault(); methodserver.setUserName(userName); methodserver.setPassword(password); HelloWorldTest test = new HelloWorldTest(); test.test();第26頁,共283頁

18、。模型擴展(續(xù))寫測試代碼public class Hello模型擴展(續(xù))測試代碼public void test()tryPerson p = Person.newPerson();p.setName(111);p.setTitle(222);p.setAge(1111);p = (WTPart part = getPartByNumber(D3_0000000064);if(part=null)Debug.P(part is null);return;PersonLink link = PersonLink.newPersonLink(part, p);link = (if(link=n

19、ull)Debug.P(link is null);return;WTPart part1 = link.getUse();Person p1 = link.getUsed();if(part1=null)Debug.P(part1 is null);elseDebug.P(part1 is +part1.getNumber();if(p1=null)Debug.P(p1 is null);elseDebug.P(p1 is +p1.getName();catch(Exception e)e.printStackTrace();第27頁,共283頁。模型擴展(續(xù))測試代碼public void

20、 test()模型擴展(續(xù))public static WTPart getPartByNumber(String number) WTPart part = null; try QuerySpec qs = new QuerySpec(WTPart.class); SearchCondition sc = new SearchCondition(WTPart.class, WTPart.NUMBER, =, number); qs.appendWhere(sc); QueryResult qr1 = PersistenceHelper.manager.find(qs); while(qr1.

21、hasMoreElements() part = (WTPart)qr1.nextElement(); catch(Exception e) e.printStackTrace(); return part;第28頁,共283頁。模型擴展(續(xù))public static WTPart ge模型擴展(續(xù))把這個測試類在windchill shell 中運行,運行結(jié)果為下圖然后我們現(xiàn)在看下數(shù)據(jù)庫中的情況第29頁,共283頁。模型擴展(續(xù))把這個測試類在windchill shell 模型擴展(續(xù))在person和personlink這兩張表中都有了數(shù)據(jù),測試結(jié)果正確注意事項在進行建模之前要對一些參

22、數(shù)進行設置,也就是把rose的操作目錄指向windchill的目錄第30頁,共283頁。模型擴展(續(xù))在person和personlink這兩張表中開發(fā)目錄介紹WT_HOMEwtCustom wtSafeAreasrc db siteModptcCurrentptcOrigsql comitbgitbgtasks comitbgcomtemplatesloadfilesloadXMLFilescomitbgcomitbgcodebase com itbgcom itbgjspnetmarkets comitbg1、wtCustom 放入修改系統(tǒng)的rbInfo文件2、wtSateArea 下的s

23、iteMod文件中放入修改后的系統(tǒng)文件,比如.jspf文件、html、xml;ptcCurrent文件放系統(tǒng)當前版本的文件;ptcOrig放系統(tǒng)最原始的文件 ant -f bin/swmaint.xml installSiteChanges3、codebase是運行時目錄,放編譯后的.class文件、放WEB相關文件、放模板文件(.html)4、src目錄放客制化的源文件,放國際化.rbInfo文件。5、tasks目錄放系統(tǒng)服務文件.xml文件,Info*Engine配置文件6、loadFiles目錄,放置需要導入到系統(tǒng)的工作流、生命周期等 7、loadXMLFiles目錄,放置配置系統(tǒng)的信息

24、的.xml文件8、DB目錄,放置建立模型后生成的SQL語句第31頁,共283頁。開發(fā)目錄介紹WT_HOMEwtCustom wtSafeArWindchill類的介紹1.如何在系統(tǒng)中查找對象對應的類2.如何通過類在數(shù)據(jù)庫中查找相關的表 第32頁,共283頁。Windchill類的介紹1.如何在系統(tǒng)中查找對象對應的類第如何在系統(tǒng)中查找對象對應的類打開類型管理器,選擇部件,這個部件就對應了系統(tǒng)中的一個對象,頁面的右部就會顯示這個類的具體信息,在名稱這欄中的就是系統(tǒng)中部件對應的類,wt.part是包名,WTPart就是類的名稱,這個時候就可以在Eclipse中查看這個類有那些相關的函數(shù),同時也可以到

25、wt.part這個包中查看其它的一些類,這些類也都是和WTPart有關。第33頁,共283頁。如何在系統(tǒng)中查找對象對應的類打開類型管理器,選擇部件,這個部如何通過在系統(tǒng)中查找對象對應的類系統(tǒng)中的業(yè)務對象在Rose模型中都可以看到相應的方法第34頁,共283頁。如何通過在系統(tǒng)中查找對象對應的類系統(tǒng)中的業(yè)務對象在Rose模系統(tǒng)類的設計系統(tǒng)中的服務類設計為xxHelper.java文件和xxService.java是組合關系,系統(tǒng)中的所有業(yè)務對象對應的方法在對應的service中,通過xxHelper.serivce.方法 部件操作:WTPartHelper.service.方法文檔操作:WTDoc

26、umentHelper.service.方法EC操作:ChangeHelper2.service.方法文件夾的操作:FolderHelper.service.方法生命周期的操作:LifeCycleHelper.manager.方法推進流程對象的操作:MaturityHelper.service.方法通知機制對象的操作:NotificationHelper.service.方法位號的操作:OccurrenceHelper.service.方法參與者的操作:OrganizationServicesHelper.manager.方法版本的操作:VersionControlHelper.service

27、.方法第35頁,共283頁。系統(tǒng)類的設計系統(tǒng)中的服務類設計為xxHelper.java文如何通過類在數(shù)據(jù)庫中查找相關的表在類型管理器中定義的那些對象在數(shù)據(jù)庫中都有相對應的表存在,表的名稱也就是類的名稱。例如:部件對象的類名稱是WTPart,則數(shù)據(jù)庫中就對應了一張名為WTPart的表。WINDCHILL的數(shù)據(jù)庫中的一張表其實對應的就是系統(tǒng)中的一個類名,所以有很多開發(fā)可以以數(shù)據(jù)庫的表為入手點,如果你知道系統(tǒng)中的某個信息是存儲在數(shù)據(jù)庫中的具體表中的時候,就可以根據(jù)表的名稱去系統(tǒng)中查找相關的類,來獲取你需要的數(shù)據(jù) 第36頁,共283頁。如何通過類在數(shù)據(jù)庫中查找相關的表在類型管理器中定義的那些對象如何通

28、過類在數(shù)據(jù)庫中查找相關的表上面就是數(shù)據(jù)庫中WTPart的表,這里面的數(shù)據(jù)在WTPart這個類中就可以獲取,例如你如果想要獲取一個部件的生命周期狀態(tài),數(shù)據(jù)庫中對應的字段是STATESTATE這個字段,那么你就可以在在代碼中通過part.getLifeCycleState().getDisplay()這個函數(shù)來獲取,所以在學習WINDCHILL系統(tǒng)的開發(fā)的時候一定不能忽略數(shù)據(jù)庫的作用。 第37頁,共283頁。如何通過類在數(shù)據(jù)庫中查找相關的表第37頁,共283頁。Windchill各個包的介紹PackageFunctionalityaccess Functionality for access co

29、ntrol; used to define access policies and object ownership (that is, define rules for what users or groups have access to what information).admin Functionality to create administrative domains and policies.change2Functionality to manipulate change items (change issue, request, investigation, proposa

30、l, order, and change activity). container.batch Functionality for a client application to gather a group of create, modify, and delete assertions, and submit them to a service method for processing in one transaction. content Functionality for handling content data (attaching files and URLs to conte

31、nt holders, such as documents and change objects) and associating business information metadata (such as the author) with content.docFunctionality for document management. effectivity Functionality to assert that a PDM object is effective under certain conditions.第38頁,共283頁。Windchill各個包的介紹PackageFun

32、ctionWindchill各個包的介紹第39頁,共283頁。Windchill各個包的介紹第39頁,共283頁。Windchill各個包的介紹第40頁,共283頁。Windchill各個包的介紹第40頁,共283頁。Windchill各個包的介紹第41頁,共283頁。Windchill各個包的介紹第41頁,共283頁。Windchill中的Model簡介Document CustomizersWindchill中的Model簡介Windchill Document客制方法介紹Windchill中UI介紹第42頁,共283頁。Windchill中的Model簡介Document CusWind

33、chill各個業(yè)務對象的模型介紹第43頁,共283頁。Windchill各個業(yè)務對象的模型介紹第43頁,共283頁Windchill Document客制方法介紹文檔屬性在Windchill document中WTDocumentMaster和WTDocument是兩個主要對象:在WTDocumentMaster中對于文件中所有的版本版序有相同的值。 如果文件已建立很多版本版序,當master改變時將影響所有的版本版序。 在 WTDocument每一個版序有不同的值對應,因此WTDocument的改變只影響一種版序。 如果想規(guī)定一個從一個版序到另一個版序變化的屬性,則需要擴展 WTDocume

34、nt。 第44頁,共283頁。Windchill Document客制方法介紹文檔屬性第4Windchill Document客制方法介紹類型枚舉類型(值列表)領域,在windchill中讓用戶能夠進行分類管理的文件 。 類型的值被定義在 中。如果有一個要求不顯示doctype屬性,只需要把類型管理中設置類型的實例化中的勾去掉即可,不可刪除。第45頁,共283頁。Windchill Document客制方法介紹類型第45頁Windchill Document客制方法介紹Department在Windchill中允許用戶選擇區(qū)域,負責文件的管理枚舉類型值都被定義在 中。第46頁,共283頁。Wi

35、ndchill Document客制方法介紹DepartWindchill Document客制方法介紹文件與文件之間的關系:文件結(jié)構 : 一個文件可以使用很多其它子文件,其下層子文件也可以被其它文件使用。(使用與被使用的關系)文件參考 :一個文件涉及的信息存在于其他文件中。(參考與被參考的關系)第47頁,共283頁。Windchill Document客制方法介紹文件與文件之Windchill Document客制方法介紹文件結(jié)構第48頁,共283頁。Windchill Document客制方法介紹文件結(jié)構第4Windchill Document客制方法介紹文件參考第49頁,共283頁。Wi

36、ndchill Document客制方法介紹文件參考第4Windchill Document客制方法介紹創(chuàng)建文件以及文件的主文檔、刪除文件添加文件的附件、刪除附件文件的出庫、入庫以及修改主文檔文件下載文件與文件之間創(chuàng)建關聯(lián)(文件參考、文件結(jié)構)第50頁,共283頁。Windchill Document客制方法介紹創(chuàng)建文件以及Windchill Document客制方法介紹三種創(chuàng)建文件的構造方法:newWTDocument ();newWTDocument(WTDocumentMastermaster) ;newWTDocument(Stringnumber,Stringname, Docume

37、ntTypetype) 第51頁,共283頁。Windchill Document客制方法介紹三種創(chuàng)建文件Windchill Document客制方法介紹創(chuàng)建文件實例WTDocument newDoc = null;newDoc = WTDocument.newWTDocument();newDoc.setName(創(chuàng)建主文檔22);/文件的名稱必設項newDoc.setNumber(888822);/文件編號必設項newDoc.setDepartment(DepartmentList.toDepartmentList(ENG);/設置departmentlist即文件所屬的部門,必設項Doc

38、umentType doctype=DocumentType.toDocumentType($Document);/必設項,文件類型為一般文件newDoc.setDocType(doctype);/保存文件第52頁,共283頁。Windchill Document客制方法介紹創(chuàng)建文件實例Windchill Document客制方法介紹以上只是對文件的基本信息進行了設置也就相當在創(chuàng)建文件的模板中只是填寫了基本信息沒有上傳文檔時生成的不含主文檔的文件。以下是創(chuàng)建主文檔: ContentHolder contentHolder/獲得文件的ContentHolderApplicationData ap

39、pdata =ApplicationData.newApplicationData(contentHolder);appdata.setRole(ContentRoleType.PRIMARY);通過ApplicationData 去設置主文檔的名稱、大小、以及文件上傳路徑等.(contentHolder,appdata,fileStream);/主文檔創(chuàng)建成功參數(shù)fileStream是要上傳的文件輸入流。第53頁,共283頁。Windchill Document客制方法介紹以上只是對文Windchill Document客制方法介紹刪除文件只刪除主文檔ContentItem contenti

40、tem =ContentHelper.getPrimary(FormatContentHolder)contentHolder);刪除文件和主文檔都刪除第54頁,共283頁。Windchill Document客制方法介紹刪除文件第5Windchill Document客制方法介紹添加附件文件添加附件和文件添加主文檔方法類似,唯一不同的就是ContentRoleType類型。主文檔的類型是ContentRoleType. PRIMARY附件的類型是ContentRoleType.SECONDARY第55頁,共283頁。Windchill Document客制方法介紹添加附件第5Windchil

41、l Document客制方法介紹刪除附件Vector vData =ContentHelper.getApplicationData(contentHolder);if (vData != null & vData.size() 0)for (int i = 0; i 0&strFilename.equals(appData.getFileName()第56頁,共283頁。Windchill Document客制方法介紹刪除附件第5Windchill Document客制方法介紹文件出庫入庫為什么要對文件出庫入庫?什么情況下對文件進行出庫入庫?對文件的出庫主要的目的之一是為了防止一個文件同時兩

42、個人修改,由此可以看出只要是和文件更新相關的操作都要對文件進行出庫,然后對出庫后的副本進行更新操作,最后入庫。第57頁,共283頁。Windchill Document客制方法介紹文件出庫入庫Windchill Document客制方法介紹文件出庫文件出庫時, Windchil會自動將一個工作復本放入資料夾中的Checked Out文件夾中。首先得到文件夾中的checkout文件夾:;然后對文件出庫放入checkout文件夾中:;最后得到工作復本:doc = (WTDocument) checkout_link.getWorkingCopy();第58頁,共283頁。Windchill Doc

43、ument客制方法介紹文件出庫第5Windchill Document客制方法介紹出庫實例/判斷文件是不是出庫狀態(tài)if (!FolderHelper.inPersonalCabinet(CabinetBased) doc) & !WorkInProgressHelper.isWorkingCopy(Workable) doc) doc = (WTDocument) checkout_link.getWorkingCopy();第59頁,共283頁。Windchill Document客制方法介紹出庫實例第5Windchill Document客制方法介紹文件的入庫對文件復本進行入庫:updat

44、eDoc=參數(shù)updateDoc出庫的副本文件;comment入庫時的版序注解第60頁,共283頁。Windchill Document客制方法介紹文件的入庫第Windchill Document客制方法介紹入庫實例WTDocument updateDoc = null;if(WorkInProgressHelper.isWorkingCopy(doc)updateDoc = doc;elseupdateDoc = (WTDocument) else第61頁,共283頁。Windchill Document客制方法介紹入庫實例第6Windchill Document客制方法介紹修改主文檔主文檔

45、的修改是主文檔的刪除和創(chuàng)建組合,在修改主文檔時應該找到原來的主文檔刪除之后再創(chuàng)建新的主文檔。具體實例見前面的主文檔創(chuàng)建和刪除方法。第62頁,共283頁。Windchill Document客制方法介紹修改主文檔第Windchill Document客制方法介紹文件下載首先得到要下載文件的最新版本(Iterated iter = null;boolean flag = false;LatestConfigSpec latestconfigspec = new LatestConfigSpec();master, latestconfigspec);while (queryresult.hasMo

46、reElements() & (!flag)iter = (Iterated) (queryresult.nextElement();flag = iter.isLatestIteration();)第63頁,共283頁。Windchill Document客制方法介紹文件下載第6Windchill Document客制方法介紹然后取得文件的主文檔或附件下載ContentItem contentitem =ContentHelper.getPrimary(FormatContentHolder) contentholder);/得到主文檔ApplicationData applicationd

47、ata = (ApplicationData) contentitem;a, sourcePath);參數(shù)Applicationdata是下載的文件,參數(shù)sourcePath為下載文件要存放的路徑和文件名。第64頁,共283頁。Windchill Document客制方法介紹然后取得文件StringBuffer localStringBuffer = new StringBuffer(64);toRole(role);手動獨占(Manual exclusive)僅允許用戶選取此標簽內(nèi)指定的其中selectable=falsefor (int j = 0; j roleList.public s

48、tatic void updateProcess(WfProcess process)PartTypeRB_zh_TW.WTPartMaster alertPartMaster = (WTPartMaster) alertPart.需要用到對象時,通過Reference獲取。對象建模,不預留屬性。無(None)是指沒有路由。第209頁,共283頁。Vector sr =new Vector();VersionControlHelper.The name of the scope to export theWindchill Document客制方法介紹文件的關聯(lián)-文件結(jié)構文件與文件的使用關系創(chuàng)

49、建(刪除類似):首先 判斷有沒有關聯(lián),得到文件之間關聯(lián)是通過:查找得到;然后創(chuàng)建uselink關聯(lián):WTDocumentUsageLink usageLink = WTDocumentUsageLink.newWTDocumentUsageLink(WTDocument,WTDocumentMaster);關聯(lián)創(chuàng)建成功第65頁,共283頁。StringBuffer localStringBufferWindchill Document客制方法介紹文件的關聯(lián)-文件參考文件與文件之間參考關系的創(chuàng)建(刪除類似):首先查看是不是兩者之間已有此關系:ent);其次創(chuàng)建DependencyLink關聯(lián):W

50、TDocumentDependencyLink.newWTDocumentDependencyLink(WTDocument,WTDocument);最后把創(chuàng)建的關聯(lián)插入數(shù)據(jù)庫:WTDocumentDependencyLink);第66頁,共283頁。Windchill Document客制方法介紹文件的關聯(lián)-Windchill Document客制方法介紹/* * 獲取一個文檔的各個大版本的最新小版本 * param docNumber String對象,就是獲取這個編碼對應的對象的各個大版本的最新小版本 * return Vector對象,這個對象中的元素都是WTDocument類型的 *

51、/public static Vector getDocMaxVersion(WTDocuemntMaster docMaster) throws WTException Vector v=new Vector(); while(qr1.hasMoreElements() Object obj = qr1.nextElement(); if(VersionControlHelper.isLatestIteration(Iterated) obj) v.add(obj); return v;第67頁,共283頁。Windchill Document客制方法介紹/*第67Windchill Doc

52、ument客制方法介紹修改WTDocument的編碼、名稱方法:WTDocumentHelper.service.changeWTDocumentIdentity(existDocument, name, number, null);doc = (WTDocument) PersistenceHelper.manager.save(doc);修改EPMDocument的名稱、編碼方法:Identified identified = (Identified) epm.getMaster();EPMDocumentMasterIdentity epmMI = (EPMDocumentMasterI

53、dentity) identified.getIdentificationObject();epmMI.setName(cadName);epmMI.setNumber(newNumber);第68頁,共283頁。Windchill Document客制方法介紹修改WTDoWindchill Document客制方法介紹/* * 設定文檔檔狀態(tài) * param epm * return */public String setDocumentState(WTObject obj) try State state = State.toState(RELEASED); String lifeStat

54、e=; if(obj instanceof EPMDocument) EPMDocument tempEPM=(EPMDocument)obj; lifeState=tempEPM.getLifeCycleState().toString(); obj=tempEPM; if(obj instanceof WTDocument) WTDocument tempDoc=(WTDocument)obj; lifeState= tempDoc.getLifeCycleState().toString(); obj=tempDoc; if(!lifeState.equals(RELEASED)retu

55、rn 1; catch (WTException ex) ex.printStackTrace();return setEPMDocumentState error: + ex.toString();return ;第69頁,共283頁。Windchill Document客制方法介紹/*第69Windchill Document客制方法介紹通過EPMDocument得到相應的推進流程WTHashSet epmHashSet = new WTHashSet();epmHashSet.add(epm);Object promoteObject = collection.toArray();for

56、 (int i = 0; i 0)QuerySpec criteria = new QuerySpec(AXLContext.class);criteria.appendSearchCondition(newSearchCondition(AXLContext.class, AXLContext.NAME,SearchCondition.EQUAL, sourcingcontext.toUpperCase(), false);if (results.hasMoreElements()axlcontext = (AXLContext) results.nextElement();/ sourci

57、ngcontext為source關系的名稱第107頁,共283頁。獲取AXLContext首先介紹AXLContext的獲取,建立AML與part的關聯(lián)if (wtpart != null & mpart != null) ManufacturerPartMaster manufacturermaster = (ManufacturerPartMaster)mpart.getMaster();AXLContext sourcingcontext =getAXLContextByName(OtherAttribute.SOURCING_CONTEXT_DEFAULT,“ELEAD);AXLPre

58、ference axlpreference = AXLPreference.toAXLPreference(isnull);/ (OtherAttribute.PREFERENCE_NA);manufacturermaster);if (is = false) );/方法的入?yún)⑹荳TPart和ManufacturerPart第108頁,共283頁。建立AML與part的關聯(lián)if (wtpart != nul建立AVL與part的關聯(lián)AXLEntry axlentry = null;if (wtpart != null & vpart != null) VendorPartMaster vpar

59、tmaster = (VendorPartMaster) vpart.getMaster();AXLContext sourcingcontext = getAXLContextByName(context);AXLPreference axlpreference =AXLPreferenc.toAXLPreference(preferred);/(OtherAttribute.PREFERENCE_RECOMMENDif (wtpart != null & vpart != null & sourcingcontext != null& axlpreference != null) vpar

60、tmaster, false);if (axlentry = null) /方法的入?yún)⑹荢tringcontext,WTPart wtpart,VendorPart vpart第109頁,共283頁。建立AVL與part的關聯(lián)AXLEntry axlentry刪除AML、AVL關聯(lián)/從Default中刪除AML關系WTContainerRef wtcontainerref = WTContainerRef.newWTContainerRef(orgcontainer);if (!wtcollection.isEmpty() for (Iterator iterator = wtcollecti

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論