歡迎來到天拓雲(yun) 課堂,今天和大家一起分享關(guan) 於(yu) Teamcenter二次開發技巧。
天拓說:Teamcenter的實施,並不是簡單地安裝使用。它需要軟件銷售商和軟件購買(mai) 單位密切合作,製定一個(ge) 完善的信息化製度和規範,原則上要求軟件購買(mai) 單位按照Teamcenter的內(nei) 定規則來實現生產(chan) 。但是,不同的企業(ye) 有著各自的不同,這就要求銷售商有針對性地進行定製軟件。因此Teamcenter提供很強的定製能力。
Teamcenter的定製能力,一方麵是通過軟件本身的配置來實現的;另一方麵是根據對軟件的二次開發來實現的。一般我們(men) 把'根據客戶要求定製'稱之為(wei) '客戶化';Teamcenter主要使用C/C++和JAVA來進行二次開發。
目前項目上開發的種類
1、菜單客製化開發:用戶點擊菜單欄、工具欄、右鍵、視圖、應用等;
2、渲染開發:屬性渲染、表單渲染、視圖渲染;
3、TC內(nei) 部對象操作;
4、 Handler開發:rule handler、action handler;
5、集成開發:webservice、中間表、工具(POI、ITextPDF等);
6、AWC開發;
7、擴展點開發 ...
01 RAC開發
RAC開發,指的是TC的胖客戶端開發。通過plugin in project項目實現對TC胖客戶端的修改。
02 ITK開發
ITK開發,是對Teamcenter的服務器端進行開發,多用於(yu) 審批流程中對業(ye) 務邏輯的定製開發,全稱為(wei) :Integration Toolkit。
03 SOA開發
SOA開發,多用與(yu) PLM多個(ge) 係統之間的集成,發布WebService服務供調用進行數據之間的交戶。
一、RAC開發
1)定義(yi) 菜單、工具條、郵件菜單添加三要素
Command
有一個(ge) 唯一的ID號,它代表了一個(ge) 動作的抽象意義(yi) ,例如拷貝,粘貼,保存。它不代表 一個(ge) 動作的實施。
Menu contributions
代表一個(ge) 特定的視圖或者一個(ge) 命令的視圖話呈現。它創建了菜單和工具條的結構框架並 且把他們(men) 插入到Eclipse的正確位置。每個(ge) 位置都是用URI( Uniform Resource Identifier ) 來標識的。Menu contribution能夠定義(yi) 一個(ge) 菜單的標簽,助記符和圖標。它和已經被定義(yi) 的Command之間相互關(guan) 聯。一個(ge) 菜單可以通過 visibleWhen來控製它的顯示。
Handlers
大多數是繼承於(yu) AbstractHandler類。Handlers在它的execute(*)方法中提供了一個(ge) 應用程 序上下文。如果一個(ge) 命令沒有一個(ge) 激活的handlers被定義(yi) ,任何一個(ge) Menu contributions中 定義(yi) 的Command都不可見。一個(ge) Command可以定義(yi) 一個(ge) 默認的handler來確保它能夠有一 個(ge) 可被激活的handler。handler可以通過ActiveWhen語句來被顯示的激活聲明或者被編程的 形式激活。Handler也可以在任何一個(ge) Menu contributions中用enabledWhen表達式,顯示的定義(yi) 一個(ge) 按鈕什麽(me) 時候可顯示。
2)表單渲染
XML Style Sheet
允許利用Predefined XML style sheet 的方式控製表單的顯示,包含顯示的順序與(yu) 渲染的方式。
Automatic forms
不需要任何定義(yi) ,係統自動顯示所有的表單屬性,包含繼承下來的POM class 屬性。
JavaBean
允許使用JavaBean 與(yu) 一個(ge) IDE (譬如Eclipse)去顯示表單屬性。每一個(ge) JavaBean 知道如何取顯示與(yu) 保存指定的屬性類型。這方法稍微複雜,但是仍舊需要 編寫(xie) 程序。
Abstract Rendering
允許延伸AbstractRendering 類編寫(xie) 表單顯示。這是最有彈性的做法,同時也是最 複雜且需要寫(xie) 程序的方法。
二、ITK開發
1)定義(yi) Handler 的步驟
先在 site-name_register_callbacks() 函式內(nei) 定義(yi)
CUSTOM_register_exit('site-name', 'USER_gs_shell_init_module', (CUSTOM_EXIT_ftn_t)CUST_init_module);
在 cust_init.c 文件中,編寫(xie) 新的函數 CUST_init_module(),注冊(ce) handlers
√ 使用 EPM_register_action_handler() 注冊(ce) action handler
EPM_register_action_handler(“your-action-handler-namer',“your action handler description',(EPM_action_handler_t) your-action-handler-function)
√ 使用 EPM_register_rule_handler() 注冊(ce) rule handler
EPM_register_rule_handler(' your-action-rule-namer ',' your rule handler description ',(EPM_rule_handler_t) your-rule-handler-function)
編寫(xie) action handler/rule handler 要執行的函式
√ Action Handler 函數的格式為(wei) int your-action-handler-function-name (EPM_action_message_t msg)
√ Rule Handler 函數的格式為(wei) EPM_decision_t your-rule-handler-function-name (EPM_rule_message_t msg)
三、SOA開發
1)常用類
CredentialManager(憑證理器)
SOA客戶端框架使用此接口從(cong) 客戶端應用程序獲取身份驗證憑證。SOA框架支持兩(liang) 種模式的身份驗證,標準憑證(用戶/密碼/組/角色/鑒別器)和SSO憑證。
SessionService
SessionService公開用於(yu) 管理與(yu) Teamcenter服務器的客戶端會(hui) 話的操作。所有客戶端會(hui) 話必須從(cong) 登錄操作開始,並以注銷操作結束。在整個(ge) 客戶端會(hui) 話中,SessionService可用於(yu) 更改狀態,如組、角色等。
DataManagementService
數據管理服務提供了廣泛的操作,在Teamcenter的整個(ge) 生命周期中,從(cong) 數據創建到數據檢索。應用程序或客戶端可以使用任何操作,如創建、存儲(chu) 、檢索和操作數據。數據可以是任何業(ye) 務對象,如項目、項目修訂、數據集、表單、文件夾等。
1.創建、刪除、修改業(ye) 務對象
2.加載/刷新/修訂/另存/驗證業(ye) 務對象
3.通過GRM 關(guan) 係找到相關(guan) 的業(ye) 務對象
4.獲取業(ye) 務對象的詳細信息,例如類型,屬性值,數據集文件,組織信息等。
5.移除數據集的引用
6.添加和刪除參與(yu) 者,更改所有權