




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、常用開(kāi)發(fā)大全演示文稿(共283張PPT)常用開(kāi)發(fā)大全演示文稿(共283張PPT)開(kāi)發(fā)規(guī)范JAVA開(kāi)發(fā)規(guī)范,請(qǐng)遵守sun標(biāo)準(zhǔn)Windchill開(kāi)發(fā)規(guī)范由于將來(lái)系統(tǒng)生產(chǎn)環(huán)境是Cluster架構(gòu),所以在編寫代碼時(shí),要盡量避免使用Static的Class變量,測(cè)試環(huán)境配置多個(gè)Method Server,以防止編寫的代碼在Cluster環(huán)境中運(yùn)行出現(xiàn)問(wèn)題。系統(tǒng)運(yùn)行的錯(cuò)誤信息,要顯示在UI界面上,以便用戶和系統(tǒng)管理員了解,同時(shí)需要在系統(tǒng)log中記錄。Debug語(yǔ)句要有開(kāi)關(guān)控制,避免直接使用打印,導(dǎo)致將來(lái)的生產(chǎn)環(huán)境產(chǎn)生大量日志。每個(gè)客制點(diǎn)之間,設(shè)定一個(gè)Debug開(kāi)關(guān),方便自身模塊的調(diào)試。Debug的開(kāi)關(guān),缺
2、省值設(shè)置為false??椭泣c(diǎn)之間的輸入和輸出部分,需要輸出Debug信息,方便客制點(diǎn)之間的調(diào)試。工作流中的表達(dá)式,具體實(shí)現(xiàn),都寫在WfUtil中,只在工作流中調(diào)用WfUtil中的方法。WfUtil中的方法注釋中,需要說(shuō)明該段代碼,將在那些workflow中被調(diào)用。系統(tǒng)OOTB配置部分通過(guò)XML配置文件交付。方便新系統(tǒng)可以直接通過(guò)LoadFileSet導(dǎo)入配置。系統(tǒng)內(nèi)部值,例如IBA,全部由英文字母和數(shù)字組成,不能包含特殊字符。禁止反編譯系統(tǒng)OOTB的Class文件,然后在此基礎(chǔ)上修改做客制,導(dǎo)致系統(tǒng)無(wú)法升級(jí)。需要對(duì)出廠文件(HTML template等)修改時(shí),需要保存原出廠文件的備份在wtS
3、afeAreaptcOrig目錄下,修改后的文件另存到wtSafeAreasiteMod目錄需要增加的properties屬性不要放置在perties中(service的注冊(cè)除外),其他都放置在codebasecomitbgperties。客制的新增Class文件放置在codebasecomitbg對(duì)應(yīng)的目錄下。不要放在系統(tǒng)原有的包中。(除非使用了系統(tǒng)原有的Protected Method,這種用法要盡量避免).第2頁(yè),共283頁(yè)。開(kāi)發(fā)規(guī)范JAVA開(kāi)發(fā)規(guī)范,請(qǐng)遵守sun標(biāo)準(zhǔn)第2頁(yè),共283頁(yè)設(shè)計(jì)規(guī)范設(shè)計(jì)規(guī)范之建模僅對(duì)持久化對(duì)象建模 只有數(shù)據(jù)需要保存到數(shù)據(jù)庫(kù)中的持久化業(yè)務(wù)對(duì)象才允許進(jìn)行建模。其余
4、的操作類(例如:Processor、Delegate、Helper類等) 不被允許進(jìn)行建模。模型命名規(guī)則對(duì)象的名稱、屬性名稱、方法名稱應(yīng)該滿足命名規(guī)則,同Java編碼規(guī)范的類命名、變量命名和方法命名。 例如:類名 TRApplyDoc 屬性名trPhase 方法名getFormData 說(shuō)明: 的模型如果要更改將要做數(shù)據(jù)遷移。因此只要求對(duì)新建立的模型, 模型不做要求。第3頁(yè),共283頁(yè)。設(shè)計(jì)規(guī)范設(shè)計(jì)規(guī)范之建模第3頁(yè),共283頁(yè)。設(shè)計(jì)規(guī)范字段擴(kuò)展 對(duì)于對(duì)象的屬性,一般情況下采用默認(rèn)長(zhǎng)度。建模時(shí)要求考慮屬性長(zhǎng)度是否符合要求,如果需要加大長(zhǎng)度,在模型中設(shè)置相應(yīng)的值即可。選擇父類 對(duì)于建模,盡量繼承底
5、層的Windchill類,例如:ManagedItem等,繼承上層的具有實(shí)際業(yè)務(wù)含義的Windchill類(例如:WTPart、WTDocument)時(shí),在業(yè)務(wù)上符合“是一個(gè)(As -is)”的含義,例如:EleadPart是一個(gè)WTPart不預(yù)留屬性 對(duì)象建模,不預(yù)留屬性。對(duì)于已有對(duì)象的預(yù)留屬性,因?qū)傩悦Q業(yè)務(wù)含義,也不允許使用。 模型已預(yù)留的屬性不做要求。 例如:不再使用以前建模留下的reserv1、reserv2等預(yù)留屬性第4頁(yè),共283頁(yè)。設(shè)計(jì)規(guī)范字段擴(kuò)展第4頁(yè),共283頁(yè)。設(shè)計(jì)規(guī)范關(guān)聯(lián)關(guān)系 兩個(gè)對(duì)象關(guān)聯(lián)時(shí),需要使用模型的關(guān)聯(lián)關(guān)系。盡量不要采用建模為兩個(gè)獨(dú)立對(duì)象,在一個(gè)對(duì)象的屬性中記錄
6、另一個(gè)對(duì)象的某個(gè)標(biāo)志屬性的方式。 例如: 錯(cuò)誤的建模方法:CBBCounter類有一個(gè)屬性cbbNumber,記錄CBB的編碼。 正確的建模方法:引入一個(gè)Link對(duì)象,記錄CBBCounter類和WTPartMaster類的關(guān)系。布局 類圖中盡量保證各部分分布均勻,連線盡量不要交叉,整個(gè)類圖能夠顯示在一個(gè)屏幕范圍之內(nèi)(標(biāo)準(zhǔn)1024*768分辨率),對(duì)于引用的其他包的類、接口,可以將其屬性、方法隱藏起來(lái)。避免占用過(guò)大的顯示空間。第5頁(yè),共283頁(yè)。設(shè)計(jì)規(guī)范關(guān)聯(lián)關(guān)系第5頁(yè),共283頁(yè)。建模搭建環(huán)境進(jìn)入到Windchill+Information+Modeler-091_F000lRational_
7、Rose_for_Windowssetup.exe安裝安裝完成之后,load注冊(cè)文件進(jìn)入到WT_HOMEroseAddIn,將和文件中的路徑修訂為個(gè)人本機(jī)環(huán)境的路徑并注冊(cè) 第6頁(yè),共283頁(yè)。建模搭建環(huán)境進(jìn)入到Windchill+Informatio建模搭建環(huán)境啟動(dòng)rose,點(diǎn)擊“Edit Path Map”查看注冊(cè)信息 第7頁(yè),共283頁(yè)。建模搭建環(huán)境啟動(dòng)rose,點(diǎn)擊“Edit Path MapRose模型介紹打開(kāi)Rose模型,點(diǎn)擊FileOpen選擇srcwtWTdesigner.mdl第8頁(yè),共283頁(yè)。Rose模型介紹打開(kāi)Rose模型,點(diǎn)擊FileOpen第8Rose模型使用點(diǎn)擊【是
8、】,系統(tǒng)會(huì)加載其中Logical View是系統(tǒng)核心 邏輯顯示,其中3rd是Windchilll 中使用了哪些Java技術(shù)模塊、ext 是系統(tǒng)客制化擴(kuò)展模型目錄、wnc是Windchill核心業(yè)務(wù)邏輯組成點(diǎn)擊Save AS,重新命名為HelloWorld.mdl文件,彈出框選擇No,環(huán)境搭建好后,即可創(chuàng)建模型第9頁(yè),共283頁(yè)。Rose模型使用點(diǎn)擊【是】,系統(tǒng)會(huì)加載第9頁(yè),共283頁(yè)。擴(kuò)展模型第10頁(yè),共283頁(yè)。擴(kuò)展模型第10頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))針對(duì)上面的圖示,自定義個(gè)模型EleadDocs,繼承WTDocument,該模型自定義方法getEleadDocName()和屬性elea
9、dDocType,且將其屬性設(shè)置constrain=false,點(diǎn)擊保存(遇到提示,點(diǎn)擊No)選擇菜單Units.Control docs,保存為docs.cat第11頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))針對(duì)上面的圖示,自定義個(gè)模型EleadDocs模型擴(kuò)展(續(xù))生成系統(tǒng)文件,選中docs包第12頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))生成系統(tǒng)文件,選中docs包第12頁(yè),共283模型擴(kuò)展(續(xù))生成系統(tǒng)文件.mData和EleadDocs.java文件在src目錄下自動(dòng)生成包路徑和文件 docs.mData和EleadDocs.java第13頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))生成系統(tǒng)文件.mData和EleadD
10、ocs.模型擴(kuò)展(續(xù))系統(tǒng)會(huì)自動(dòng)生成SQL【W(wǎng)T_HOME】dbsql3exteleaddocs生成.ser文件【W(wǎng)T_HOME】codebaseexteleaddocs執(zhí)行SQL語(yǔ)句進(jìn)入到 Oracle SQL*Plus路徑,執(zhí)行命令:操作完成之后,即可使用EleadDocs對(duì)象了!第14頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))系統(tǒng)會(huì)自動(dòng)生成SQL【W(wǎng)T_HOME】db模型擴(kuò)展(續(xù))第15頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))第15頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))完整的例子說(shuō)明在windchill/src/目錄下建立一個(gè)helloWorld目錄,在windchill/codebase/目錄下也建立一個(gè)hello
11、World目錄打開(kāi)rose軟件,依次打開(kāi)fileopen定位到windchill/src/wt/WTdesigner.mdl,打開(kāi)出現(xiàn)這個(gè)對(duì)話框,選擇是,然后就耐心等待系統(tǒng)加載完這個(gè)文件。當(dāng)完全加載完以后把這個(gè)文件保存到上面建立的windchill/src/helloWorld目錄下,名稱為helloWorld第16頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))完整的例子說(shuō)明第16頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))打開(kāi)helloWorld. Mdl,打開(kāi)后如下圖你可以發(fā)現(xiàn)你打開(kāi)的時(shí)候是沒(méi)有wt,java,helloWorld這3個(gè)package的,因?yàn)檫@3個(gè)package中wt和java是從左邊的方框中拖過(guò)來(lái)的,
12、而helloWorld這個(gè)是我自己建立的,然后把helloWorld和wt,java這2個(gè)package建立關(guān)系如上圖。然后雙擊helloWorld這個(gè)package在這個(gè)package中開(kāi)始創(chuàng)建類。第17頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))打開(kāi)helloWorld. Mdl,打開(kāi)后如下模型擴(kuò)展(續(xù))打開(kāi)helloWorld這個(gè)package后會(huì)出現(xiàn)下圖第18頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))打開(kāi)helloWorld這個(gè)package后會(huì)模型擴(kuò)展(續(xù))你打開(kāi)的時(shí)候是什么都沒(méi)有的,這里面person,personLink這2個(gè)類是自己建立的,可以從中間的那個(gè)條中選擇到的,然后對(duì)這2個(gè)類進(jìn)行編輯,選中per
13、son這個(gè)類,點(diǎn)右鍵,會(huì)出現(xiàn)點(diǎn)擊第一個(gè),然后就會(huì)出現(xiàn)第19頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))你打開(kāi)的時(shí)候是什么都沒(méi)有的,這里面person模型擴(kuò)展(續(xù))第20頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))第20頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))選擇attributes這個(gè)標(biāo)簽第21頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))選擇attributes這個(gè)標(biāo)簽第21頁(yè),共2模型擴(kuò)展(續(xù))然后在空白的地方點(diǎn)右鍵就會(huì)出現(xiàn)一個(gè)快捷菜單,在這個(gè)菜單中可以創(chuàng)建一個(gè)變量,然后雙擊變量會(huì)出現(xiàn)第22頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))然后在空白的地方點(diǎn)右鍵就會(huì)出現(xiàn)一個(gè)快捷菜單,在模型擴(kuò)展(續(xù))在這個(gè)里面會(huì)對(duì)這個(gè)變量的類型進(jìn)行設(shè)置,然后點(diǎn)windchill標(biāo)
14、簽找到constrain這項(xiàng),設(shè)置value為false,每個(gè)變量都需要這樣進(jìn)行設(shè)置,然后讓這個(gè)類繼承這個(gè)抽象類,這樣就表明person這個(gè)類現(xiàn)在是持久的。同理把person這個(gè)類和wtpart這個(gè)類建立關(guān)聯(lián),關(guān)聯(lián)的類為PersonLink然后讓personLink繼承ObjectToObjectLink這個(gè)類,然后把這個(gè)helloWorld. mdl保存一下,然后依次打開(kāi)fileunitscontrol,然后再依次打開(kāi),toolswindchillsystem generation第23頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))在這個(gè)里面會(huì)對(duì)這個(gè)變量的類型進(jìn)行設(shè)置,然后點(diǎn)w模型擴(kuò)展(續(xù))選中前3項(xiàng)點(diǎn)OK
15、,然后這個(gè)時(shí)候你就可以在windchill/src/helloWorld這個(gè)目錄下看到有Person.java和PersonLink.java這2個(gè)java文件,并且在windchill/db/sql3/helloWorld這個(gè)目錄下面也會(huì)產(chǎn)生幾個(gè)sql文件,把這幾個(gè)sql文件導(dǎo)入到數(shù)據(jù)庫(kù)中建立相關(guān)的表,要注意建立的先后順序:只用操作以create開(kāi)頭的3個(gè)sql文件第24頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))選中前3項(xiàng)點(diǎn)OK,然后這個(gè)時(shí)候你就可以在win模型擴(kuò)展(續(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這兩個(gè)文件放到windchill/codebase/helloWorld/目錄下進(jìn)行編譯。第25頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))修改Person.java加入下面的代碼第25模型擴(kuò)展(續(xù))寫測(cè)試代碼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頁(yè),共283頁(yè)
18、。模型擴(kuò)展(續(xù))寫測(cè)試代碼public class Hello模型擴(kuò)展(續(xù))測(cè)試代碼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頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))測(cè)試代碼public void
20、 test()模型擴(kuò)展(續(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頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))public static WTPart ge模型擴(kuò)展(續(xù))把這個(gè)測(cè)試類在windchill shell 中運(yùn)行,運(yùn)行結(jié)果為下圖然后我們現(xiàn)在看下數(shù)據(jù)庫(kù)中的情況第29頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))把這個(gè)測(cè)試類在windchill shell 模型擴(kuò)展(續(xù))在person和personlink這兩張表中都有了數(shù)據(jù),測(cè)試結(jié)果正確注意事項(xiàng)在進(jìn)行建模之前要對(duì)一些參
22、數(shù)進(jìn)行設(shè)置,也就是把rose的操作目錄指向windchill的目錄第30頁(yè),共283頁(yè)。模型擴(kuò)展(續(xù))在person和personlink這兩張表中開(kāi)發(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)當(dāng)前版本的文件;ptcOrig放系統(tǒng)最原始的文件 ant -f bin/swmaint.xml installSiteChanges3、codebase是運(yùn)行時(shí)目錄,放編譯后的.class文件、放WEB相關(guān)文件、放模板文件(.html)4、src目錄放客制化的源文件,放國(guó)際化.rbInfo文件。5、tasks目錄放系統(tǒng)服務(wù)文件.xml文件,Info*Engine配置文件6、loadFiles目錄,放置需要導(dǎo)入到系統(tǒng)的工作流、生命周期等 7、loadXMLFiles目錄,放置配置系統(tǒng)的信息
24、的.xml文件8、DB目錄,放置建立模型后生成的SQL語(yǔ)句第31頁(yè),共283頁(yè)。開(kāi)發(fā)目錄介紹WT_HOMEwtCustom wtSafeArWindchill類的介紹1.如何在系統(tǒng)中查找對(duì)象對(duì)應(yīng)的類2.如何通過(guò)類在數(shù)據(jù)庫(kù)中查找相關(guān)的表 第32頁(yè),共283頁(yè)。Windchill類的介紹1.如何在系統(tǒng)中查找對(duì)象對(duì)應(yīng)的類第如何在系統(tǒng)中查找對(duì)象對(duì)應(yīng)的類打開(kāi)類型管理器,選擇部件,這個(gè)部件就對(duì)應(yīng)了系統(tǒng)中的一個(gè)對(duì)象,頁(yè)面的右部就會(huì)顯示這個(gè)類的具體信息,在名稱這欄中的就是系統(tǒng)中部件對(duì)應(yīng)的類,wt.part是包名,WTPart就是類的名稱,這個(gè)時(shí)候就可以在Eclipse中查看這個(gè)類有那些相關(guān)的函數(shù),同時(shí)也可以到
25、wt.part這個(gè)包中查看其它的一些類,這些類也都是和WTPart有關(guān)。第33頁(yè),共283頁(yè)。如何在系統(tǒng)中查找對(duì)象對(duì)應(yīng)的類打開(kāi)類型管理器,選擇部件,這個(gè)部如何通過(guò)在系統(tǒng)中查找對(duì)象對(duì)應(yīng)的類系統(tǒng)中的業(yè)務(wù)對(duì)象在Rose模型中都可以看到相應(yīng)的方法第34頁(yè),共283頁(yè)。如何通過(guò)在系統(tǒng)中查找對(duì)象對(duì)應(yīng)的類系統(tǒng)中的業(yè)務(wù)對(duì)象在Rose模系統(tǒng)類的設(shè)計(jì)系統(tǒng)中的服務(wù)類設(shè)計(jì)為xxHelper.java文件和xxService.java是組合關(guān)系,系統(tǒng)中的所有業(yè)務(wù)對(duì)象對(duì)應(yīng)的方法在對(duì)應(yīng)的service中,通過(guò)xxHelper.serivce.方法 部件操作:WTPartHelper.service.方法文檔操作:WTDoc
26、umentHelper.service.方法EC操作:ChangeHelper2.service.方法文件夾的操作:FolderHelper.service.方法生命周期的操作:LifeCycleHelper.manager.方法推進(jìn)流程對(duì)象的操作:MaturityHelper.service.方法通知機(jī)制對(duì)象的操作:NotificationHelper.service.方法位號(hào)的操作:OccurrenceHelper.service.方法參與者的操作:OrganizationServicesHelper.manager.方法版本的操作:VersionControlHelper.service
27、.方法第35頁(yè),共283頁(yè)。系統(tǒng)類的設(shè)計(jì)系統(tǒng)中的服務(wù)類設(shè)計(jì)為xxHelper.java文如何通過(guò)類在數(shù)據(jù)庫(kù)中查找相關(guān)的表在類型管理器中定義的那些對(duì)象在數(shù)據(jù)庫(kù)中都有相對(duì)應(yīng)的表存在,表的名稱也就是類的名稱。例如:部件對(duì)象的類名稱是WTPart,則數(shù)據(jù)庫(kù)中就對(duì)應(yīng)了一張名為WTPart的表。WINDCHILL的數(shù)據(jù)庫(kù)中的一張表其實(shí)對(duì)應(yīng)的就是系統(tǒng)中的一個(gè)類名,所以有很多開(kāi)發(fā)可以以數(shù)據(jù)庫(kù)的表為入手點(diǎn),如果你知道系統(tǒng)中的某個(gè)信息是存儲(chǔ)在數(shù)據(jù)庫(kù)中的具體表中的時(shí)候,就可以根據(jù)表的名稱去系統(tǒng)中查找相關(guān)的類,來(lái)獲取你需要的數(shù)據(jù) 第36頁(yè),共283頁(yè)。如何通過(guò)類在數(shù)據(jù)庫(kù)中查找相關(guān)的表在類型管理器中定義的那些對(duì)象如何通
28、過(guò)類在數(shù)據(jù)庫(kù)中查找相關(guān)的表上面就是數(shù)據(jù)庫(kù)中WTPart的表,這里面的數(shù)據(jù)在WTPart這個(gè)類中就可以獲取,例如你如果想要獲取一個(gè)部件的生命周期狀態(tài),數(shù)據(jù)庫(kù)中對(duì)應(yīng)的字段是STATESTATE這個(gè)字段,那么你就可以在在代碼中通過(guò)part.getLifeCycleState().getDisplay()這個(gè)函數(shù)來(lái)獲取,所以在學(xué)習(xí)WINDCHILL系統(tǒng)的開(kāi)發(fā)的時(shí)候一定不能忽略數(shù)據(jù)庫(kù)的作用。 第37頁(yè),共283頁(yè)。如何通過(guò)類在數(shù)據(jù)庫(kù)中查找相關(guān)的表第37頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹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頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹PackageFun
32、ctionWindchill各個(gè)包的介紹第39頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹第39頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹第40頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹第40頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹第41頁(yè),共283頁(yè)。Windchill各個(gè)包的介紹第41頁(yè),共283頁(yè)。Windchill中的Model簡(jiǎn)介Document CustomizersWindchill中的Model簡(jiǎn)介Windchill Document客制方法介紹Windchill中UI介紹第42頁(yè),共283頁(yè)。Windchill中的Model簡(jiǎn)介Document CusWind
33、chill各個(gè)業(yè)務(wù)對(duì)象的模型介紹第43頁(yè),共283頁(yè)。Windchill各個(gè)業(yè)務(wù)對(duì)象的模型介紹第43頁(yè),共283頁(yè)Windchill Document客制方法介紹文檔屬性在Windchill document中WTDocumentMaster和WTDocument是兩個(gè)主要對(duì)象:在WTDocumentMaster中對(duì)于文件中所有的版本版序有相同的值。 如果文件已建立很多版本版序,當(dāng)master改變時(shí)將影響所有的版本版序。 在 WTDocument每一個(gè)版序有不同的值對(duì)應(yīng),因此WTDocument的改變只影響一種版序。 如果想規(guī)定一個(gè)從一個(gè)版序到另一個(gè)版序變化的屬性,則需要擴(kuò)展 WTDocume
34、nt。 第44頁(yè),共283頁(yè)。Windchill Document客制方法介紹文檔屬性第4Windchill Document客制方法介紹類型枚舉類型(值列表)領(lǐng)域,在windchill中讓用戶能夠進(jìn)行分類管理的文件 。 類型的值被定義在 中。如果有一個(gè)要求不顯示doctype屬性,只需要把類型管理中設(shè)置類型的實(shí)例化中的勾去掉即可,不可刪除。第45頁(yè),共283頁(yè)。Windchill Document客制方法介紹類型第45頁(yè)Windchill Document客制方法介紹Department在Windchill中允許用戶選擇區(qū)域,負(fù)責(zé)文件的管理枚舉類型值都被定義在 中。第46頁(yè),共283頁(yè)。Wi
35、ndchill Document客制方法介紹DepartWindchill Document客制方法介紹文件與文件之間的關(guān)系:文件結(jié)構(gòu) : 一個(gè)文件可以使用很多其它子文件,其下層子文件也可以被其它文件使用。(使用與被使用的關(guān)系)文件參考 :一個(gè)文件涉及的信息存在于其他文件中。(參考與被參考的關(guān)系)第47頁(yè),共283頁(yè)。Windchill Document客制方法介紹文件與文件之Windchill Document客制方法介紹文件結(jié)構(gòu)第48頁(yè),共283頁(yè)。Windchill Document客制方法介紹文件結(jié)構(gòu)第4Windchill Document客制方法介紹文件參考第49頁(yè),共283頁(yè)。Wi
36、ndchill Document客制方法介紹文件參考第4Windchill Document客制方法介紹創(chuàng)建文件以及文件的主文檔、刪除文件添加文件的附件、刪除附件文件的出庫(kù)、入庫(kù)以及修改主文檔文件下載文件與文件之間創(chuàng)建關(guān)聯(lián)(文件參考、文件結(jié)構(gòu))第50頁(yè),共283頁(yè)。Windchill Document客制方法介紹創(chuàng)建文件以及Windchill Document客制方法介紹三種創(chuàng)建文件的構(gòu)造方法:newWTDocument ();newWTDocument(WTDocumentMastermaster) ;newWTDocument(Stringnumber,Stringname, Docume
37、ntTypetype) 第51頁(yè),共283頁(yè)。Windchill Document客制方法介紹三種創(chuàng)建文件Windchill Document客制方法介紹創(chuàng)建文件實(shí)例WTDocument newDoc = null;newDoc = WTDocument.newWTDocument();newDoc.setName(創(chuàng)建主文檔22);/文件的名稱必設(shè)項(xiàng)newDoc.setNumber(888822);/文件編號(hào)必設(shè)項(xiàng)newDoc.setDepartment(DepartmentList.toDepartmentList(ENG);/設(shè)置departmentlist即文件所屬的部門,必設(shè)項(xiàng)Doc
38、umentType doctype=DocumentType.toDocumentType($Document);/必設(shè)項(xiàng),文件類型為一般文件newDoc.setDocType(doctype);/保存文件第52頁(yè),共283頁(yè)。Windchill Document客制方法介紹創(chuàng)建文件實(shí)例Windchill Document客制方法介紹以上只是對(duì)文件的基本信息進(jìn)行了設(shè)置也就相當(dāng)在創(chuàng)建文件的模板中只是填寫了基本信息沒(méi)有上傳文檔時(shí)生成的不含主文檔的文件。以下是創(chuàng)建主文檔: ContentHolder contentHolder/獲得文件的ContentHolderApplicationData ap
39、pdata =ApplicationData.newApplicationData(contentHolder);appdata.setRole(ContentRoleType.PRIMARY);通過(guò)ApplicationData 去設(shè)置主文檔的名稱、大小、以及文件上傳路徑等.(contentHolder,appdata,fileStream);/主文檔創(chuàng)建成功參數(shù)fileStream是要上傳的文件輸入流。第53頁(yè),共283頁(yè)。Windchill Document客制方法介紹以上只是對(duì)文Windchill Document客制方法介紹刪除文件只刪除主文檔ContentItem contenti
40、tem =ContentHelper.getPrimary(FormatContentHolder)contentHolder);刪除文件和主文檔都刪除第54頁(yè),共283頁(yè)。Windchill Document客制方法介紹刪除文件第5Windchill Document客制方法介紹添加附件文件添加附件和文件添加主文檔方法類似,唯一不同的就是ContentRoleType類型。主文檔的類型是ContentRoleType. PRIMARY附件的類型是ContentRoleType.SECONDARY第55頁(yè),共283頁(yè)。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頁(yè),共283頁(yè)。Windchill Document客制方法介紹刪除附件第5Windchill Document客制方法介紹文件出庫(kù)入庫(kù)為什么要對(duì)文件出庫(kù)入庫(kù)?什么情況下對(duì)文件進(jìn)行出庫(kù)入庫(kù)?對(duì)文件的出庫(kù)主要的目的之一是為了防止一個(gè)文件同時(shí)兩
42、個(gè)人修改,由此可以看出只要是和文件更新相關(guān)的操作都要對(duì)文件進(jìn)行出庫(kù),然后對(duì)出庫(kù)后的副本進(jìn)行更新操作,最后入庫(kù)。第57頁(yè),共283頁(yè)。Windchill Document客制方法介紹文件出庫(kù)入庫(kù)Windchill Document客制方法介紹文件出庫(kù)文件出庫(kù)時(shí), Windchil會(huì)自動(dòng)將一個(gè)工作復(fù)本放入資料夾中的Checked Out文件夾中。首先得到文件夾中的checkout文件夾:;然后對(duì)文件出庫(kù)放入checkout文件夾中:;最后得到工作復(fù)本:doc = (WTDocument) checkout_link.getWorkingCopy();第58頁(yè),共283頁(yè)。Windchill Doc
43、ument客制方法介紹文件出庫(kù)第5Windchill Document客制方法介紹出庫(kù)實(shí)例/判斷文件是不是出庫(kù)狀態(tài)if (!FolderHelper.inPersonalCabinet(CabinetBased) doc) & !WorkInProgressHelper.isWorkingCopy(Workable) doc) doc = (WTDocument) checkout_link.getWorkingCopy();第59頁(yè),共283頁(yè)。Windchill Document客制方法介紹出庫(kù)實(shí)例第5Windchill Document客制方法介紹文件的入庫(kù)對(duì)文件復(fù)本進(jìn)行入庫(kù):updat
44、eDoc=參數(shù)updateDoc出庫(kù)的副本文件;comment入庫(kù)時(shí)的版序注解第60頁(yè),共283頁(yè)。Windchill Document客制方法介紹文件的入庫(kù)第Windchill Document客制方法介紹入庫(kù)實(shí)例WTDocument updateDoc = null;if(WorkInProgressHelper.isWorkingCopy(doc)updateDoc = doc;elseupdateDoc = (WTDocument) else第61頁(yè),共283頁(yè)。Windchill Document客制方法介紹入庫(kù)實(shí)例第6Windchill Document客制方法介紹修改主文檔主文檔
45、的修改是主文檔的刪除和創(chuàng)建組合,在修改主文檔時(shí)應(yīng)該找到原來(lái)的主文檔刪除之后再創(chuàng)建新的主文檔。具體實(shí)例見(jiàn)前面的主文檔創(chuàng)建和刪除方法。第62頁(yè),共283頁(yè)。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頁(yè),共283頁(yè)。Windchill Document客制方法介紹文件下載第6Windchill Document客制方法介紹然后取得文件的主文檔或附件下載ContentItem contentitem =ContentHelper.getPrimary(FormatContentHolder) contentholder);/得到主文檔ApplicationData applicationd
47、ata = (ApplicationData) contentitem;a, sourcePath);參數(shù)Applicationdata是下載的文件,參數(shù)sourcePath為下載文件要存放的路徑和文件名。第64頁(yè),共283頁(yè)。Windchill Document客制方法介紹然后取得文件StringBuffer localStringBuffer = new StringBuffer(64);toRole(role);手動(dòng)獨(dú)占(Manual exclusive)僅允許用戶選取此標(biāo)簽內(nèi)指定的其中selectable=falsefor (int j = 0; j roleList.public s
48、tatic void updateProcess(WfProcess process)PartTypeRB_zh_TW.WTPartMaster alertPartMaster = (WTPartMaster) alertPart.需要用到對(duì)象時(shí),通過(guò)Reference獲取。對(duì)象建模,不預(yù)留屬性。無(wú)(None)是指沒(méi)有路由。第209頁(yè),共283頁(yè)。Vector sr =new Vector();VersionControlHelper.The name of the scope to export theWindchill Document客制方法介紹文件的關(guān)聯(lián)-文件結(jié)構(gòu)文件與文件的使用關(guān)系創(chuàng)
49、建(刪除類似):首先 判斷有沒(méi)有關(guān)聯(lián),得到文件之間關(guān)聯(lián)是通過(guò):查找得到;然后創(chuàng)建uselink關(guān)聯(lián):WTDocumentUsageLink usageLink = WTDocumentUsageLink.newWTDocumentUsageLink(WTDocument,WTDocumentMaster);關(guān)聯(lián)創(chuàng)建成功第65頁(yè),共283頁(yè)。StringBuffer localStringBufferWindchill Document客制方法介紹文件的關(guān)聯(lián)-文件參考文件與文件之間參考關(guān)系的創(chuàng)建(刪除類似):首先查看是不是兩者之間已有此關(guān)系:ent);其次創(chuàng)建DependencyLink關(guān)聯(lián):W
50、TDocumentDependencyLink.newWTDocumentDependencyLink(WTDocument,WTDocument);最后把創(chuàng)建的關(guān)聯(lián)插入數(shù)據(jù)庫(kù):WTDocumentDependencyLink);第66頁(yè),共283頁(yè)。Windchill Document客制方法介紹文件的關(guān)聯(lián)-Windchill Document客制方法介紹/* * 獲取一個(gè)文檔的各個(gè)大版本的最新小版本 * param docNumber String對(duì)象,就是獲取這個(gè)編碼對(duì)應(yīng)的對(duì)象的各個(gè)大版本的最新小版本 * return Vector對(duì)象,這個(gè)對(duì)象中的元素都是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頁(yè),共283頁(yè)。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頁(yè),共283頁(yè)。Windchill Document客制方法介紹修改WTDoWindchill Document客制方法介紹/* * 設(shè)定文檔檔狀態(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頁(yè),共283頁(yè)。Windchill Document客制方法介紹/*第69Windchill Document客制方法介紹通過(guò)EPMDocument得到相應(yīng)的推進(jìn)流程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關(guān)系的名稱第107頁(yè),共283頁(yè)。獲取AXLContext首先介紹AXLContext的獲取,建立AML與part的關(guān)聯(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頁(yè),共283頁(yè)。建立AML與part的關(guān)聯(lián)if (wtpart != nul建立AVL與part的關(guān)聯(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頁(yè),共283頁(yè)。建立AVL與part的關(guān)聯(lián)AXLEntry axlentry刪除AML、AVL關(guān)聯(lián)/從Default中刪除AML關(guān)系WTContainerRef wtcontainerref = WTContainerRef.newWTContainerRef(orgcontainer);if (!wtcollection.isEmpty() for (Iterator iterator = wtcollecti
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 自我提升大學(xué)化學(xué)考試試題及答案
- 水電行業(yè)投資環(huán)境優(yōu)化與大型水電項(xiàng)目投資風(fēng)險(xiǎn)評(píng)估報(bào)告
- 數(shù)量和空間感知試題及答案2025
- 奇經(jīng)八脈知識(shí)試題及答案
- 班組長(zhǎng)述職報(bào)告
- 裝備制造業(yè)自主創(chuàng)新能力提升的技術(shù)創(chuàng)新戰(zhàn)略目標(biāo)與路徑研究報(bào)告
- 智慧港口自動(dòng)化裝卸設(shè)備與智能搬運(yùn)設(shè)備市場(chǎng)潛力預(yù)測(cè)報(bào)告
- 江蘇省南京棲霞區(qū)重點(diǎn)名校2024-2025學(xué)年初三生物試題第三次診斷考試試題含解析
- 安全檢查表與評(píng)估試題及答案
- 小學(xué)教師的反思日常管理策略試題及答案
- 2025年高考?xì)v史答題技巧與答題模板專題08影響、作用類(答題模版)(學(xué)生版+解析)
- 韻達(dá)加盟合同協(xié)議
- 2025-2030中國(guó)藥物遞送系統(tǒng)行業(yè)市場(chǎng)深度分析及發(fā)展前景與投資研究報(bào)告
- 泰康集團(tuán)入職測(cè)評(píng)題庫(kù)及答案
- 第四章 問(wèn)題解決策略:特殊化 課件 2024-2025學(xué)年北師大版七年級(jí)數(shù)學(xué)下冊(cè)
- 2025-2030全球及中國(guó)普拉提和瑜伽館行業(yè)市場(chǎng)現(xiàn)狀供需分析及市場(chǎng)深度研究發(fā)展前景及規(guī)劃可行性分析研究報(bào)告
- 預(yù)防AI換臉詐騙
- 針對(duì)項(xiàng)目實(shí)施的重點(diǎn)、難點(diǎn)的分析和解決方案
- 2025年甘肅省定西市渭源縣中考數(shù)學(xué)第一次模擬試題(原卷版+解析版)
- 古詩(shī)詞誦讀《鵲橋仙(纖云弄巧)》課件(共37張) 2024-2025學(xué)年統(tǒng)編版高中語(yǔ)文必修上冊(cè)
- (高清版)DBJ33∕T 1286-2022 住宅工程質(zhì)量常見(jiàn)問(wèn)題控制標(biāo)準(zhǔn)
評(píng)論
0/150
提交評(píng)論