向?qū)Ь幋a樹(shù)卡模型最佳實(shí)踐_第1頁(yè)
向?qū)Ь幋a樹(shù)卡模型最佳實(shí)踐_第2頁(yè)
向?qū)Ь幋a樹(shù)卡模型最佳實(shí)踐_第3頁(yè)
向?qū)Ь幋a樹(shù)卡模型最佳實(shí)踐_第4頁(yè)
向?qū)Ь幋a樹(shù)卡模型最佳實(shí)踐_第5頁(yè)
已閱讀5頁(yè),還剩63頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、一、環(huán)境準(zhǔn)備1二、創(chuàng)建工程22.1新建項(xiàng)目22.2新建組件項(xiàng)目32.3新增業(yè)務(wù)組件32.4工程目錄4模塊菜單6三、3.1前準(zhǔn)備63.2 功能. 83.2.1 一級(jí)模塊8模塊.3 模塊初始化93.3 菜單. 103.3.1 一級(jí)菜單10菜單113.3.2四、元數(shù)據(jù)設(shè)計(jì)114.1 新建元數(shù)據(jù)114.1.1 新增實(shí)體組件124.1.2 導(dǎo)入模型文件134.2 模型設(shè)計(jì)器說(shuō)明144.3 元數(shù)據(jù)設(shè)計(jì)說(shuō)明144.3.1 組件信息設(shè)置144.3.2 實(shí)體屬性設(shè)置154.3.3 實(shí)體模型視圖設(shè)置164.3.4 接口、枚舉等信息設(shè)置184.5 發(fā)布元數(shù)據(jù)194.5.1 發(fā)布元數(shù)據(jù)194.5.2

2、 生成 java 源代碼204.5.3生成 sql并執(zhí)行214.6 本章小結(jié)224.7 附:相關(guān)知識(shí)224.6.1 代碼風(fēng)格22器類(lèi)型.3 元數(shù)據(jù)常用接口234.6.4 發(fā)布元數(shù)據(jù)涉及到的數(shù)據(jù)庫(kù)表244.6.5 序列化文件文件. 294.6.6 生成 javaVO 源代碼分析294.6.7 生成 sql結(jié)構(gòu)目錄分析304.6.8 導(dǎo)出為 pdm(.xml)文件344.6.9 導(dǎo)出為圖片354.6.10 導(dǎo)入屬性354.6.11 導(dǎo)出多語(yǔ)364.6.12 導(dǎo)出特性37在 Wizard 生成代碼37五、5.1 新建主子表單據(jù)節(jié)點(diǎn)385.2 樹(shù)的類(lèi)型選擇385.3 基本信息設(shè)置3

3、95.3.1 通過(guò)“瀏覽”Excel 獲取相關(guān)功能和菜單信息405.3.2 手動(dòng)設(shè)置功能和菜單信息435.4功能設(shè)置445.5包名、接口信息設(shè)置455.5參數(shù)設(shè)置465.6多語(yǔ)設(shè)置485.7生成信息485.8走完向?qū)Тa結(jié)構(gòu)說(shuō)明495.8.1 公共類(lèi) public 代碼505.8.2 前臺(tái)類(lèi) client 代碼505.8.3 類(lèi) private 代碼515.8.4 resource 文件夾535.8.5 其他. 535.8.6 附:相關(guān)知識(shí)54六、節(jié)點(diǎn)權(quán)限分配55七、改造本案例587.1 單據(jù)模板的改造587.2代碼修改607.3配置文件修改637.4運(yùn)行效果如下64樹(shù)卡模式向?qū)е械氖亲髽?shù)右卡

4、的模式,并沒(méi)有左邊是樹(shù)、右邊是主子表的這種模式、現(xiàn)在通過(guò)向?qū)傻臉?shù)卡、通過(guò)改造可以支持左邊是樹(shù)、右邊是主子表的這種方式、效果如下圖所示:下面講解開(kāi)發(fā)的過(guò)程:一、環(huán)境準(zhǔn)備環(huán)境準(zhǔn)備主要涉及到數(shù)據(jù)庫(kù)和uap studio 的配置: 數(shù)據(jù)庫(kù):需要是 V63 版本的庫(kù)。Uap studio 配置:需要正確配置數(shù)據(jù)源、開(kāi)發(fā)者信息等其他信息;該項(xiàng)配置可在studio 界面菜單欄中窗口à首選項(xiàng)中配置。詳細(xì)請(qǐng)參閱UAP 環(huán)境初始化操作手冊(cè).docxUAP 培訓(xùn)案例系列 1 UAP-主子型開(kāi)發(fā)二、創(chuàng)建工程首先需要建立合適的項(xiàng)目,下面是如何建立項(xiàng)目的簡(jiǎn)單介紹:2.1 新建項(xiàng)目Uap studio 界面&

5、#224;文件à新建à其它àMDE 開(kāi)發(fā)à業(yè)務(wù)組件項(xiàng)目:選擇向?qū)I(yè)務(wù)組件項(xiàng)目和模塊項(xiàng)目的區(qū)別(環(huán)境安裝文檔)UAP 培訓(xùn)案例系列 2 UAP-主子型開(kāi)發(fā)UPM 文件:需要選定某個(gè)項(xiàng)目,為該項(xiàng)目新建UPM 文件新增業(yè)務(wù)組件:需要選定某個(gè)項(xiàng)目,為該項(xiàng)目新建業(yè)務(wù)組件。2.2 新建組件項(xiàng)目繼續(xù)下一步:創(chuàng)建新的模塊項(xiàng)目,填寫(xiě)項(xiàng)目名稱(chēng)、模塊名稱(chēng)信息,勾選是否開(kāi)發(fā)模塊信息以及模塊配置文件默認(rèn) module.xml。詳細(xì)配置,此處以 testdemo 為例。注意:項(xiàng)目名稱(chēng)和模塊名稱(chēng)不需要一致,它們沒(méi)有直接關(guān)系; 模塊名稱(chēng):部署環(huán)境里 modules 下的各個(gè)目錄,比如

6、ua里的 module 是平級(jí)的。pbd,uapeai 等,部署環(huán)境從 CVS 檢出代碼:擇從 CVS 服務(wù)器中簽出代碼,在后續(xù)的向?qū)ы?yè)中會(huì)收集相關(guān)信息。是否開(kāi)發(fā)模塊信息:選擇是,會(huì)自表 md_module 中模塊信息;如果此處忘記勾選可以通過(guò)以下方式進(jìn)行手動(dòng)置的信息即可。,格式:只需要將涉及到的模塊信息換成設(shè)2.3 新增業(yè)務(wù)組件選擇新增業(yè)務(wù)組件:填寫(xiě)名稱(chēng)、顯示名稱(chēng)再確定,此處我們以codetreedemo為例。該操作主要是為了剛建立的項(xiàng)目新建業(yè)務(wù)組件,其中名稱(chēng)決定了生成的業(yè)務(wù)組件根目錄的名稱(chēng)也是其UAP 培訓(xùn)案例系列 3 UAP-主子型開(kāi)發(fā)insert into md_module (cre

7、atetime, creator, description, displayname, dr, help, id, isactive, modifier, modifytime, name, parentmoduleid, resid,resmodule, ts, versiontype)values ('2013-08-21 14:40:10', ' UAP-STUDIO ', 'testdemo', ' testdemo', 0, 'testdemo', 'testdemo', 'Y&#

8、39;, ' UAP-STUDIO ', '2013-08-21 14:40:10', 'testdemo', NULL, NULL, NULL, '2013-08-21 14:40:10', 0);標(biāo)識(shí)。點(diǎn)擊 完成 即完成業(yè)務(wù)組件項(xiàng)目的建立。2.4 工程目錄向?qū)瓿蓵?huì)生成以下圖示的項(xiàng)目結(jié)構(gòu):src 目錄下自動(dòng)生成 public、client、private、resource和 test 目錄。以及 module.xml 文件。·public:客戶端與服務(wù)器都要依賴的代碼放到這個(gè)目錄中,比如服務(wù)接口和 VO 等。

9、3;client:通常包含 UI 界面,處理,action 等代碼。·private:所有在服務(wù)器端運(yùn)行的代碼都放到這個(gè)目錄中。·resource:文件,如多語(yǔ)文件。·test:?jiǎn)卧獪y(cè)試等測(cè)試代碼。更為詳細(xì)的包結(jié)構(gòu)分析參見(jiàn)第四章“走完向?qū)Тa結(jié)構(gòu)說(shuō)明”。UAP 培訓(xùn)案例系列 4 UAP-主子型開(kāi)發(fā)module.xml 文件內(nèi)容如下所示:注意:在以上操作都完成之后,我們需要查看一下 uaphomemodulestestdemoMETA-INF 目錄下是否生成 module.xml 文件。uaphome 使用如下方式打開(kāi)即可:如果該文件沒(méi)有生成,可以自行添加。沒(méi)有該文

10、件在后期操作時(shí)會(huì)提示這時(shí)需要查看確認(rèn)該文件在該目錄下是否存在。服務(wù)找不到的問(wèn)題,UAP 培訓(xùn)案例系列 5 UAP-主子型開(kāi)發(fā)<?xml version="1.0" encoding="gb2312"?><module name="testdemo"><public></public><private></private></module>三、模塊菜單由于我們需要將開(kāi)發(fā)出來(lái)的功能節(jié)點(diǎn)顯示在客戶端上,所以我們需要提前將能夠顯示該功能的菜單等信息,如功能、菜

11、單。具體操作如下所示:3.1前準(zhǔn)備3.1.1 啟動(dòng)中間件在瀏覽器視圖下,右擊 testdemo 工程,選擇運(yùn)行方式à UAP 中間件直到server 啟動(dòng),啟動(dòng)客戶端:出現(xiàn)以下信息說(shuō)明 server 啟動(dòng)完成。3.1.2 啟動(dòng)客戶端在瀏覽器視圖下,右擊 testdemo 工程,選擇運(yùn)行方式-UAP 客戶端UAP 培訓(xùn)案例系列 6 UAP-主子型開(kāi)發(fā)3.1.3 啟動(dòng)客戶端之后,使用管理員登陸3.1.4 打開(kāi)功能節(jié)點(diǎn)功能導(dǎo)航>應(yīng)用管理平臺(tái)>開(kāi)發(fā)者配置工具>功能,雙擊進(jìn)入功能界面UAP 培訓(xùn)案例系列 7 UAP-主子型開(kāi)發(fā)3.2 功能以系統(tǒng)管理員登陸后,通過(guò)應(yīng)用管理平臺(tái)-

12、>系統(tǒng)管理工具->功能,打開(kāi)功能界面,首先需要的是添加一級(jí)模塊和模塊3.2.1 一級(jí)模塊一級(jí)模塊,如下圖所示,一級(jí)模塊號(hào)是 TE,模塊編碼是“TESTDEMO”,模塊名稱(chēng)“練習(xí)用例”,對(duì)應(yīng)模塊號(hào)必須與我們建的項(xiàng)目模塊名稱(chēng) testdemo 保持一致。1)模塊編碼:功能模塊的編碼2)模塊號(hào):功能模塊號(hào)UAP 培訓(xùn)案例系列 8 UAP-主子型開(kāi)發(fā)3)模塊名稱(chēng):功能模塊名稱(chēng)4)對(duì)應(yīng)模塊號(hào):對(duì)應(yīng)模塊,如:uap5)應(yīng)用范圍:或者 全局6)父模塊號(hào):的父層模塊編碼7)組織類(lèi)型:模塊所屬的組織類(lèi)型即主組織類(lèi)型。全局級(jí)節(jié)點(diǎn)是全局,級(jí)節(jié)點(diǎn)是,組織級(jí)節(jié)點(diǎn)是成本域、部門(mén)、業(yè)務(wù)單元等。為了保證節(jié)點(diǎn)限的主

13、組織只是節(jié)點(diǎn)所關(guān)心的類(lèi)型組織。8)多語(yǔ)字段:模塊的多語(yǔ) id,設(shè)置菜單的多語(yǔ)展示9)是否支持開(kāi)關(guān)帳設(shè)置:如果設(shè)置,會(huì)在該模塊下顯示關(guān)帳功能節(jié)點(diǎn)10)是否會(huì)計(jì)平臺(tái):標(biāo)記該模塊是否和會(huì)計(jì)平臺(tái)關(guān)聯(lián),需要會(huì)計(jì)平臺(tái)生成下游單據(jù)注意:關(guān)于功能編碼規(guī)則的詳細(xì)介紹參見(jiàn)UAPV61-XX公司公共約定.docx文檔。模塊3.2.2模塊,如下圖所示,在一級(jí)模塊是 TE 的基礎(chǔ)上建立模塊,模塊號(hào)是 TE10,對(duì)應(yīng)模塊號(hào)是 testdemo;界面功能同上簡(jiǎn)介。3.2.3 模塊初始化以開(kāi)發(fā)管理員登陸,應(yīng)用系統(tǒng)管理 à 系統(tǒng)初始化 à 業(yè)務(wù)初始化來(lái)打開(kāi)業(yè)務(wù)初始界面化,首先是增補(bǔ)模塊,然后選擇要增補(bǔ)的模塊

14、,在點(diǎn)擊下一步后,在點(diǎn)擊完成即可,如下圖所示:UAP 培訓(xùn)案例系列 9 UAP-主子型開(kāi)發(fā)增補(bǔ)模塊:后續(xù)增加的業(yè)務(wù)模塊可以采用增補(bǔ)模塊的方式進(jìn)行啟用。3.3 菜單這里一級(jí)菜單和菜單,一級(jí)菜單是模塊菜單,菜單是業(yè)務(wù)組件菜單,以系統(tǒng)管理員登陸后,通過(guò)應(yīng)用管理平臺(tái)->系統(tǒng)管理工具->菜單,步驟如下:3.3.1 一級(jí)菜單一級(jí)菜單,菜單編碼 TE,菜單項(xiàng)名稱(chēng)是用來(lái)界面顯示的菜單此處設(shè)置為“練習(xí)用例”,同時(shí)勾選是否虛菜單UAP 培訓(xùn)案例系列 10 UAP-主子型開(kāi)發(fā)1)菜單項(xiàng)編碼:功能節(jié)點(diǎn)菜單編碼,數(shù)據(jù)庫(kù)中及當(dāng)前項(xiàng)目中唯一2)菜單項(xiàng)名稱(chēng):功能節(jié)點(diǎn)的菜單名稱(chēng)3)虛菜單:如果為 true 表示:對(duì)

15、菜單進(jìn)行分類(lèi),用戶無(wú)法點(diǎn)擊來(lái)打開(kāi)一個(gè)頁(yè)面;如果是 false:表示:需要關(guān)聯(lián)功能,用戶點(diǎn)擊后打開(kāi)一個(gè)頁(yè)面。4)關(guān)聯(lián)功能編碼:是這個(gè)菜單需要關(guān)聯(lián)功能中的節(jié)點(diǎn)的功能節(jié)點(diǎn)編碼5)圖標(biāo)相對(duì)路徑:可以設(shè)置菜單圖標(biāo),是參照選擇圖標(biāo)路徑6)多語(yǔ)字段:是可以設(shè)置菜單的多語(yǔ)展示菜單3.3.2菜單:在一級(jí)菜單基礎(chǔ)上建立菜單,菜單編碼為 TE10 菜單項(xiàng)名稱(chēng)是“案例”,同時(shí)勾選是否虛菜單;界面功能同上簡(jiǎn)介。四、元數(shù)據(jù)設(shè)計(jì)此處簡(jiǎn)單介紹元數(shù)據(jù)設(shè)計(jì)以及期間涉及到的相關(guān)知識(shí),元數(shù)據(jù)設(shè)計(jì),具體可參考元數(shù)據(jù)開(kāi)發(fā)紅皮書(shū)。在該設(shè)計(jì)中我們使用的元數(shù)據(jù)是 team3.bmf 文件,這里我們只需要將該文件導(dǎo)入到項(xiàng)目中即可,但同時(shí)關(guān)于元數(shù)

16、據(jù)方面的相關(guān)知識(shí)也會(huì)簡(jiǎn)單介紹。具體步驟如下:4.1 新建元數(shù)據(jù)建立元數(shù)據(jù):建立元數(shù)據(jù)有兩種方式,第一種可以通過(guò)“新建實(shí)體組件”的方式建立 bmf文件,然后設(shè)計(jì)元數(shù)據(jù)。第二種方式可以通過(guò)導(dǎo)入現(xiàn)有的 bmf 文件至項(xiàng)目工程中,此處我UAP 培訓(xùn)案例系列 11 UAP-主子型開(kāi)發(fā)們使用第二種方式導(dǎo)入現(xiàn)有的 team3.bmf 文件。4.1.1 新增實(shí)體組件首先,我們需要切換視圖至 uap MDP 視圖,需要在工具欄最右側(cè)“打開(kāi)圖”,選擇“uapMDP 視圖”。圖選擇框視圖如下圖所示:切換視圖之后,在 MDP瀏覽器視圖中,右擊工程的業(yè)務(wù)組件,選擇新建實(shí)體組件,如下例圖所示(項(xiàng)目名稱(chēng)為 testdemo

17、 目錄為 codetreedemo):注意:1)新建業(yè)務(wù)操作組件:模型文件的文件格式是*.bpf ,詳細(xì)使用方法參考幫助文檔。2)新增目錄:新建一個(gè)文件目錄3)刪除只能刪除組件以及文件夾,決不隨意刪除已經(jīng)發(fā)布的文件。選中“新建實(shí)體組件”點(diǎn)擊會(huì)彈出“新增實(shí)體組件”輸入框。需要設(shè)置新建文件名,如下圖所示:UAP 培訓(xùn)案例系列 12 UAP-主子型開(kāi)發(fā)說(shuō)明:這里會(huì)通過(guò)與 UAP Studio 進(jìn)行交互,獲得當(dāng)前開(kāi)發(fā)者的信息, 其中包括行業(yè)名稱(chēng)、開(kāi)發(fā)維度(行業(yè)級(jí)(1)、領(lǐng)域級(jí)(0)等)以及開(kāi)發(fā)組織(基礎(chǔ)行業(yè) 0,行業(yè) 31,地產(chǎn)行業(yè) 32)。注意:組件描述的是一個(gè)相對(duì)和完整的業(yè)務(wù)塊,主要是從業(yè)務(wù)層次上

18、進(jìn)行劃分,比如“銷(xiāo)售訂單”可以作為一個(gè)組件,“客商”也可以作為一個(gè)組件,劃分組件時(shí),注意組件間的重用,且注意不要形成相互依賴。組件屬于模塊,一個(gè)模塊可以包含多個(gè)組件。4.1.2 導(dǎo)入模型文件第二種方式:選擇“導(dǎo)入模型文件”,導(dǎo)入現(xiàn)有的 bmf 文件,會(huì)將本機(jī)上存在的文件導(dǎo)入到系統(tǒng)中來(lái),這屬于文件。注意:1. 如果該模型文件本身已在項(xiàng)目中存在,則不能導(dǎo)入,否則在發(fā)布、保存等操作時(shí)出現(xiàn)嚴(yán) 重問(wèn)題!2. 確保模型文件的模塊號(hào)與所在工程的模塊號(hào)一致3. 確保名稱(chēng)全局唯一UAP 培訓(xùn)案例系列 13 UAP-主子型開(kāi)發(fā)4.2 模型設(shè)計(jì)器說(shuō)明以下視圖是模型設(shè)計(jì)器的界面,圖中簡(jiǎn)單介紹了界面的功能區(qū)域,簡(jiǎn)單認(rèn)識(shí)

19、下設(shè)計(jì)器:模型設(shè)計(jì)器包括以下五個(gè)重要部分:瀏覽器、模型繪制畫(huà)布、工具面板、屬性面板、模型視圖。瀏覽器中組件所屬的目錄和組件的模塊沒(méi)有關(guān)系,目錄只是為了更好的組織和管理bmf 文件。 組件是部署的基本單元,一個(gè)典型的組件會(huì)包含若干個(gè)有相互關(guān)系的實(shí)體(但只能有一個(gè)主實(shí)體),以及業(yè)務(wù)接口、枚舉類(lèi)型等,另外組件里還可以有服務(wù)和操作。注:該圖只為模型設(shè)計(jì)器說(shuō)明,請(qǐng)不要參考圖中元數(shù)據(jù)等信息。4.3 元數(shù)據(jù)設(shè)計(jì)說(shuō)明4.3.1 組件信息設(shè)置點(diǎn)間畫(huà)布空白區(qū)域,可以在視圖的右側(cè)屬性頁(yè)中設(shè)置組件信息:此處代碼風(fēng)格設(shè)置為自定義樣式,名稱(chēng)設(shè)置為 team3,顯示名稱(chēng)為團(tuán)隊(duì)信息,名稱(chēng)空間設(shè)置為 testdemo,所屬模塊

20、必須設(shè)置與項(xiàng)目模塊一致為 testdemo,主實(shí)體必須設(shè)置,這里設(shè)置為“團(tuán)隊(duì)信息”實(shí)體,其中名稱(chēng)空間與所屬模塊可以不一致。:UAP 培訓(xùn)案例系列 14 UAP-主子型開(kāi)發(fā)版本號(hào):組件當(dāng)前版本,防止舊版本覆蓋新版本。版本號(hào)是自動(dòng)生成的,每點(diǎn)擊一次保存,就會(huì)增加 1。代碼風(fēng)格:有 NC 傳統(tǒng)樣式、標(biāo)準(zhǔn)樣式和自定義樣式三種;NC 傳統(tǒng)樣式:生成 AGGVO,標(biāo)準(zhǔn)樣式:SuperVO,自定義樣式:則按 PubApp 規(guī)則生成 VO 代碼多語(yǔ)言模塊:對(duì)應(yīng)以前多語(yǔ)言里的文件夾名,現(xiàn)在按照組件劃分是否預(yù)加載:默認(rèn) false。如果選擇 true,而且所用的數(shù)據(jù)源也配置為預(yù)加載元數(shù)據(jù)(在uaphomeierp

21、perties 中配置),那么該組件就會(huì)在中間件啟動(dòng)時(shí)被預(yù)先加載。主實(shí)體: 一個(gè)組件里如果有實(shí)體,則必須設(shè)置一個(gè)主實(shí)體名稱(chēng):該組件的名稱(chēng)。必須全局唯一。名稱(chēng)空間:一種標(biāo)識(shí),讓某些元數(shù)據(jù)可以集合起來(lái)。行業(yè)和修改人:默認(rèn)從配置的開(kāi)發(fā)者中獲取。4.3.2 實(shí)體屬性設(shè)置在模型繪制畫(huà)布中選中主實(shí)體“團(tuán)隊(duì)信息”,設(shè)置實(shí)體屬性:本模型中的主實(shí)體“團(tuán)隊(duì)信息”需要將器類(lèi)型設(shè)置為AggVO,即聚合 VO器,其他子實(shí)體的一律選擇 NCVO。還需要設(shè)置包裝類(lèi)名、類(lèi)名稱(chēng)、名稱(chēng)、缺省表名、顯示名稱(chēng)都需要設(shè)置,主屬性需要設(shè)置為“團(tuán)UAP 培訓(xùn)案例系列 15 UAP-主子型開(kāi)

22、發(fā)隊(duì)主鍵”。并且子實(shí)體也要類(lèi)似設(shè)置,但子實(shí)體的器類(lèi)型設(shè)為NCVO,主實(shí)體與子實(shí)體之間的組合關(guān)系要設(shè)置好“源屬性”為主實(shí)體的“子表主鍵”,具體設(shè)置可見(jiàn):器:器的作用在于適配模型與java 代碼的不一致性。器類(lèi)型有 POJO,NCVO,AggVO。包裝類(lèi)名:如果器類(lèi)型是AggVO,則需要一個(gè)聚合 VO 類(lèi)型的包裝類(lèi)。指明主子實(shí)體的關(guān)系,說(shuō)明誰(shuí)是主誰(shuí)是子。動(dòng)態(tài)信息修改類(lèi):用于動(dòng)態(tài)修改實(shí)體,比如運(yùn)行時(shí)增加或者設(shè)置某些屬性。可見(jiàn)性:public,protected,default,private擴(kuò)展:可以給實(shí)體加任意的,時(shí)可根據(jù)過(guò)濾。缺省表名:生成數(shù)據(jù)庫(kù)時(shí)對(duì)應(yīng)的表名。是否繼承類(lèi):是否繼承自另外一個(gè)實(shí)體,

23、默認(rèn)false。是否生成建庫(kù):該實(shí)體是否生成建庫(kù)的 sql,否的話需要寫(xiě)是否:該實(shí)體是否使用。顯示名稱(chēng):畫(huà)布上實(shí)體的顯示名稱(chēng)修改人:行業(yè)和修改人:默認(rèn)從配置的開(kāi)發(fā)者中獲取。業(yè)務(wù)接口實(shí)現(xiàn)類(lèi):如果實(shí)體實(shí)現(xiàn)了業(yè)務(wù)接口,這里可以實(shí)現(xiàn)類(lèi)。在“創(chuàng)建接口”小節(jié)中,將詳細(xì)介紹接口實(shí)現(xiàn)類(lèi)的四種情況。主屬性:實(shí)體必須設(shè)置主屬性(對(duì)應(yīng)數(shù)據(jù)庫(kù)表的主鍵)。4.3.3 實(shí)體模型視圖設(shè)置在視圖界面的下方,可以看見(jiàn)模型視圖,此處我們選中主實(shí)體以主實(shí)體進(jìn)行分析;可以看UAP 培訓(xùn)案例系列 16 UAP-主子型開(kāi)發(fā)見(jiàn)“模型視圖(實(shí)體)”中有三個(gè)頁(yè)簽分別是“屬性”、“業(yè)務(wù)接口屬性”、“參照”。關(guān)于實(shí)體的信息我們可以在此一一詳細(xì)設(shè)置

24、。包括實(shí)體中每個(gè)字段的詳細(xì)信息、實(shí)體需要實(shí)現(xiàn)的接口以及接口的屬性還有參照等。關(guān)于代碼中元數(shù)據(jù)的屬性的獲取可以通過(guò)以下方式:List<IAttribute> nc.md.m.impl.MDBean.getAttributes(String tag)實(shí)體中屬性的設(shè)置要點(diǎn)如下:對(duì)于設(shè)置為 AggVO 樣式的實(shí)體,請(qǐng)檢查子表屬性(1-n 聚合關(guān)系),比如上圖中的子表主鍵,策略要設(shè)置為 BodyOfAggVOAccessor。類(lèi)型樣式:目前支持 Single、REF、ARRAY、LIST 四種。類(lèi)型:可以自行選擇,當(dāng)建立實(shí)體間關(guān)系時(shí),也會(huì)自動(dòng)設(shè)置;主鍵一定要設(shè)置為 UFID類(lèi)型。目前元數(shù)據(jù)支

25、持如下基本類(lèi)型:String, UFID, Integer, UFDouble, UFBoolean, UFDate,UFDateTime, UFTime, UFMoney, IMAGE, BLOB, CLOB, CUSTOM, MEMO字段名稱(chēng):生成數(shù)據(jù)庫(kù)表列的名稱(chēng)。計(jì)算屬性:由其他屬性計(jì)算得到,本身不需要保存到數(shù)據(jù)庫(kù),生成數(shù)據(jù)庫(kù)的列??眨菏欠窨梢詾榭?。:用于權(quán)限。擴(kuò)展:可以自由的給屬性加上標(biāo)注,比如uniqueCheck,在程序中便可以通過(guò)這個(gè)來(lái)過(guò)濾屬性。注意:元數(shù)據(jù)中,創(chuàng)建人,創(chuàng)建時(shí)間,修改人,修改時(shí)間字段的名稱(chēng)應(yīng)該分別為:creator,creationtime,modifier ,m

26、odifiedtime。元數(shù)據(jù)中字段創(chuàng)建避免關(guān)鍵字如:是 status,file若使用該向?qū)纱a,元數(shù)據(jù)中若包含“單據(jù)狀態(tài)”字段,則單據(jù)狀態(tài)類(lèi)型必須設(shè)置為 uap->pf->pfbizitf.bmf 下的“單據(jù)狀態(tài)”枚舉類(lèi)型。如:fstatusflagUAP 培訓(xùn)案例系列 17 UAP-主子型開(kāi)發(fā)4.3.4 接口、枚舉等信息設(shè)置業(yè)務(wù)接口屬性:在此案例中因?yàn)槭堑拈_(kāi)發(fā),只需要以下接口,IBDObject、IAuditInfo、IOrgInfo 三個(gè)接口,并且接口中的相關(guān)屬性也要與實(shí)體的屬性上。如:IBDObject 需要id、code、name,IAuditInfo、IOrgInf

27、o 都上。具體的詳細(xì)如下圖所示:元數(shù)據(jù)需要實(shí)現(xiàn)的接口說(shuō)明:必須接口:IBDObject(目錄為 Ref M/uap/meta/general_interface.bmf)元數(shù)據(jù)有審批需求需要實(shí)現(xiàn)的接口:流程信息獲取、回寫(xiě),單據(jù)主子 VO,業(yè)務(wù) PK鎖(目錄為 Ref M/uap/pf/pfbizitf.bmf)元數(shù)據(jù)中,有創(chuàng)建人,創(chuàng)建時(shí)間,修改人,修改時(shí)間字段需要實(shí)現(xiàn)的接口:IAuditInfo(目錄為 Ref M/uap/bill/IBillInterface.bmf)元數(shù)據(jù)中有組織,組織多版本,業(yè)務(wù)日期字段需要實(shí)現(xiàn)的接口:IOrgInfo,IBillDate(目錄為 Ref M/uap/b

28、ill/IBillInterface.bmf)元數(shù)據(jù)中有行號(hào)字段的時(shí)候,需要實(shí)現(xiàn)的接口:IRowNo(目錄為 RefM/uap/bill/IBillInterface.bmf)注:關(guān)于接口方面的知識(shí)信息見(jiàn) 4.6 附:相關(guān)知識(shí);4.3.5 子實(shí)體屬性設(shè)置選中子實(shí)體“團(tuán)隊(duì)成員信息”在右側(cè)的屬性框中設(shè)置其子實(shí)體的屬性,需要設(shè)置名稱(chēng)、缺省表名、類(lèi)名稱(chēng)、主屬性等,具體設(shè)置可參閱下圖:UAP 培訓(xùn)案例系列 18 UAP-主子型開(kāi)發(fā)4.3.6 子實(shí)體模型視圖設(shè)置選中子實(shí)體,在畫(huà)布的下方模型視圖設(shè)置框中我們可以設(shè)置子實(shí)體中的字段的屬性,具體設(shè)置可如下設(shè)置,此外我們還需要勾選動(dòng)態(tài)屬性:4.5 發(fā)布元數(shù)據(jù)在元數(shù)

29、據(jù)設(shè)計(jì)完成之后,需要將元數(shù)據(jù)發(fā)布,期間包括三步操作:發(fā)布元數(shù)據(jù)、生成java源代碼、生成 sql并執(zhí)行。具體操作見(jiàn)下文:4.5.1 發(fā)布元數(shù)據(jù)元數(shù)據(jù)發(fā)布的最小單元是組件。在模型繪制畫(huà)布上選中實(shí)體組件右鍵,或者在畫(huà)布中點(diǎn)擊右鍵,選擇“發(fā)布元數(shù)據(jù)”選項(xiàng)即可發(fā)布元數(shù)據(jù),此處建議不要選擇“發(fā)布元數(shù)據(jù)(忽略版本)”。如下圖所示:UAP 培訓(xùn)案例系列 19 UAP-主子型開(kāi)發(fā)發(fā)布元數(shù)據(jù)需要注意以下幾點(diǎn):必須保存后才能發(fā)布V63 開(kāi)發(fā)環(huán)境中發(fā)布時(shí)不必啟動(dòng)中間件,因?yàn)樵獢?shù)據(jù)會(huì)發(fā)布到數(shù)據(jù)庫(kù)中發(fā)布時(shí)會(huì)一起發(fā)布被依賴的組件,支持雙向依賴,循環(huán)依賴如果發(fā)布元數(shù)據(jù)時(shí)忽略版本,則完全以本地的模型文件,可能造成庫(kù)中新版本的

30、模型被覆蓋,非特殊情況不推薦使用。開(kāi)發(fā)環(huán)境的發(fā)布只是為了開(kāi)發(fā)測(cè)試需要,提交時(shí)只需要將 bmf 文件(位于組件METADATA 目錄)提交到相應(yīng)組件的 METADATA 目錄下,安裝時(shí)會(huì)自行發(fā)布到數(shù)據(jù)庫(kù)中查看元數(shù)據(jù)發(fā)布是否,查看錯(cuò)誤日志。4.5.2生成 java 源代碼右擊實(shí)體,選擇生成 java 源代碼選項(xiàng)即可生成 java 源代碼,會(huì)根據(jù)元數(shù)據(jù)組件的設(shè)定的代碼風(fēng)格生成相應(yīng)的 VO,詳細(xì)參見(jiàn) javaVO 代碼分析。如下圖所示:UAP 培訓(xùn)案例系列 20 UAP-主子型開(kāi)發(fā)生成 java 代碼注意事項(xiàng):可以在組件屬里設(shè)置代碼風(fēng)格生成 Java 源代碼時(shí),V63 可以不必啟動(dòng)中間件生成 Java

31、 源代碼前,必須確保最新修改的組件已經(jīng)被發(fā)布生成的代碼都實(shí)現(xiàn)了 SuperVO4.5.3生成 sql并執(zhí)行右擊實(shí)體,選擇生成 sql并執(zhí)行即可,會(huì)彈出如下框,如下圖所示:UAP 培訓(xùn)案例系列 21 UAP-主子型開(kāi)發(fā)選擇生成 sql的位置2)export sql with foreignkey Info:3)Unicode charactor:該過(guò)程會(huì)根據(jù)屬性表md_property生成相應(yīng)的建庫(kù)4.6 本章小結(jié)本章是元數(shù)據(jù)來(lái)展開(kāi)敘述,從新建元數(shù)據(jù)到元數(shù)據(jù)設(shè)計(jì)到發(fā)布元數(shù)據(jù)的整個(gè)過(guò)程,以及操作過(guò)程中涉及到的相關(guān)信息與知識(shí)展開(kāi)敘述,主線可以從每小節(jié)的標(biāo)題可以看出先后操作過(guò)程。其中元數(shù)據(jù)設(shè)計(jì)環(huán)節(jié)是很

32、重要的,所以該環(huán)節(jié)的展開(kāi)敘述較多。對(duì)于相關(guān)信息在操作中不便展示的,都在 4.7 附:相關(guān)知識(shí)中見(jiàn)。關(guān)于常用接口:IBDObject 是每種應(yīng)用都需要實(shí)現(xiàn)的,關(guān)于 IFlowBizItf 流程信息獲取回寫(xiě)、businInterface 單據(jù)主子 VO、IPfBillLock 業(yè)務(wù) PK 鎖屬于流程操作中的接口,需要據(jù)此分析應(yīng)用中是否需要流程來(lái)決定是否繼承這些接口。需要注意的是這些接口不僅要使實(shí)體繼承,還得在相對(duì)應(yīng)的實(shí)體的業(yè)務(wù)接口屬性中設(shè)置。IAuditInfo、IOrgInfo應(yīng)用在需要審計(jì)信息和設(shè)計(jì)到組織的場(chǎng)景。由于元數(shù)據(jù)設(shè)計(jì)這塊有很多知識(shí),這里也只能簡(jiǎn)單的將涉及到的部分簡(jiǎn)單呈現(xiàn),關(guān)于元數(shù)據(jù)設(shè)

33、計(jì)的知識(shí)請(qǐng)參閱元數(shù)據(jù)開(kāi)發(fā)紅皮書(shū)。4.7 附:相關(guān)知識(shí)4.6.1 代碼風(fēng)格代碼風(fēng)格有:NC 傳統(tǒng)樣式、標(biāo)準(zhǔn)樣式和自定義樣式三種。NC 傳統(tǒng)樣式:屬于較早 5 系列的應(yīng)用,目前不推薦使用。標(biāo)準(zhǔn)樣式:一般對(duì)于單表的應(yīng)用。自定義樣式:器類(lèi)型4.6.2器類(lèi)型:POJO、NCVO、AggVO 三種:POJO 為普通的BEANUAP 培訓(xùn)案例系列 22 UAP-主子型開(kāi)發(fā)主要主子表及多子表結(jié)構(gòu)的應(yīng)用,多用于單據(jù)的應(yīng)用。NCVO 是面向?qū)ο蟮姆绞?,即如果存在主子表關(guān)系,則主表 VO 存在子表 VO 的數(shù)組引用AggVO 是聚合 VO器說(shuō)明:組件代碼風(fēng)格選擇自定義樣式時(shí),主子表或者多子表中主表對(duì)應(yīng)的實(shí)體,器要設(shè)

34、置為 AggVO,其他的一律選擇 NCVO;還有目前 POJO 與 NCVO 不做區(qū)別,推薦使用 NCVO。器的作用在于適配模型與 java 代碼的不一致性。如果組件中存在主子關(guān)系,并且器類(lèi)型設(shè)置為了”AggVO”類(lèi)型,則主表中的聚合屬性字段“策略” 屬性必須設(shè)置為“nc.md.m.access.BodyOfAggVOAccessor”,否則無(wú)法進(jìn)行屬性值的正確設(shè)置。4.6.3 元數(shù)據(jù)常用接口IBDObject:位置:uapmetageneral_interface.bmfIBDObject接口類(lèi):nc.vo.bd.meta.IBDObject說(shuō)明:在所有的基本組件中,主實(shí)體必須實(shí)現(xiàn) IBDO

35、bject 接口,此業(yè)務(wù)接口提供了獲取實(shí)體基本特征(包括所屬pk_group、所屬組織 pk_org、主鍵 id、名稱(chēng) name、編碼 code、父實(shí)體主鍵 pid)的一些方法。IFlowBizItf 流程信息獲取、回寫(xiě)位置:uappfpfbizitf.bmfIFlowBizItf接口類(lèi):nc.itf.uap.pf.metadata.IFlowBizItf默認(rèn)實(shí)現(xiàn)類(lèi):nc.uap.pf.metadata.FlowBizImpl說(shuō)明:審批流流轉(zhuǎn)過(guò)程中,需要把單據(jù)的審批狀態(tài)回寫(xiě)到單據(jù)數(shù)據(jù)庫(kù)表以及單據(jù) VO 中,必須讓元數(shù)據(jù)實(shí)體實(shí)現(xiàn)業(yè)務(wù)接口IFlowBizItf。此業(yè)務(wù)接口提供了獲取實(shí)體基本特征(包

36、括單據(jù) ID billid、單據(jù)號(hào) billno、所屬組織 pkorg、業(yè)務(wù)類(lèi)型 busitype、制單人 billmaker、審批人approver、審批狀態(tài)approvestatus、審批批語(yǔ)approvenote、審批時(shí)間approvedate、類(lèi)型 transtype、單據(jù)類(lèi)型 billtype、類(lèi)型 pk transtypepk、來(lái)源單據(jù)類(lèi)型srcbilltype、來(lái)源單據(jù) idsrcbillid、修訂枚舉 emendenum、單據(jù)版本 pk billversionpk)的一些方法。IHeadBodyQueryItf 單據(jù)主子 VObusinInterfaceUAP 培訓(xùn)案例系列23

37、 UAP-主子型開(kāi)發(fā)位置:uappfpfbizitf.bmfbusinInterface接口類(lèi):nc.itf.uap.pf.metadata.IHeadBodyQueryItf默認(rèn)實(shí)現(xiàn)類(lèi):nc.uap.pf.metadata.HeadBodyQueryImpl說(shuō)明:流程平臺(tái)需要根據(jù)一些條件單據(jù) VO。目前,多子表時(shí)默認(rèn)默認(rèn)實(shí)現(xiàn)類(lèi)只查第一個(gè)子表!單據(jù)主子 VO,流程平臺(tái)用于當(dāng)前正在審批的單據(jù)。IPfBillLock 業(yè)務(wù) PK 鎖位置:uappfpfbizitf.bmfIPfBillLock接口類(lèi):nc.vo.pub.pf.IPfBillLock默認(rèn)實(shí)現(xiàn)類(lèi):nc.uap.pf.metadata.

38、GetLockDataImpl說(shuō)明:用于單據(jù)在進(jìn)行審批操作的過(guò)程中對(duì)單據(jù)進(jìn)行加鎖,防止并發(fā)。實(shí)現(xiàn)了實(shí)體的基本特征(PK 鎖)的一些方法。IOrgInfo 組織多版本位置:uapbillIBillInterface.bmfIOrgInfo接口類(lèi):nc.itf.pubapp.pub.bill.IOrgInfo說(shuō)明:此接口實(shí)現(xiàn)了實(shí)體的基本特征(包括組織pk_org、組織多版本 pk_org_v)的方法。IAuditInfo 自動(dòng)填充審計(jì)信息位置:uapbillIBillInterface.bmfIAuditInfo接口類(lèi):nc.itf.pubapp.pub.bill.IAuditInfo說(shuō)明:該接口

39、實(shí)現(xiàn)了實(shí)體的基本特征(創(chuàng)建人 creator、創(chuàng)建時(shí)間 creationtime、修改人modifiedtime、修改時(shí)間 modifier)的一些方法。IRowNo 行號(hào)位置:uapbillIBillInterface.bmfIRowNo接口類(lèi):nc.itf.pubapp.pub.bill.IRowNo說(shuō)明:該接口提供了實(shí)體的基本特征(行號(hào))的方法。詳細(xì)參見(jiàn)元數(shù)據(jù)開(kāi)發(fā)紅皮書(shū)。4.6.4 發(fā)布元數(shù)據(jù)涉及到的數(shù)據(jù)庫(kù)表發(fā)布元數(shù)據(jù)會(huì)發(fā)布到數(shù)據(jù)庫(kù)中,涉及到 40 多張表,主要是以下三張表:組件表md_component:發(fā)布元數(shù)據(jù),會(huì)向該表元數(shù)據(jù)組件的信息元數(shù)據(jù)組件信息:UAP 培訓(xùn)案例系列 24 U

40、AP-主子型開(kāi)發(fā)到 md_component 表中的信息組件表md_component的表結(jié)構(gòu):元數(shù)據(jù)組件信息與組件表 md_component對(duì)照UAP 培訓(xùn)案例系列 25 UAP-主子型開(kāi)發(fā)元數(shù)據(jù)組件信息組件表 md_component說(shuō)明創(chuàng)建時(shí)間createtime創(chuàng)建人creator描述description顯示名稱(chēng)displaynamedrfromsourcebmf擴(kuò)展helpIDid主鍵行業(yè)industry主鍵isbizm修改人modifier修改時(shí)間modifytime名稱(chēng)name名稱(chēng)空間namespace所屬模塊ownmodule是否預(yù)加載preload多語(yǔ)idresidres

41、module數(shù)據(jù)類(lèi)型及實(shí)體表md_class:將元數(shù)據(jù)中的實(shí)體到該表中元數(shù)據(jù)中實(shí)體的信息:到 md_class 表中的信息數(shù)據(jù)類(lèi)型及實(shí)體表md_class的表結(jié)構(gòu):元數(shù)據(jù)組件信息與數(shù)據(jù)類(lèi)型及實(shí)體表md_class對(duì)照UAP 培訓(xùn)案例系列 26 UAP-主子型開(kāi)發(fā)元數(shù)據(jù)實(shí)體信息數(shù)據(jù)類(lèi)型及實(shí)體表md_class說(shuō)明器類(lèi)型accessorclassnamets系統(tǒng)時(shí)間版本versionversiontype主鍵屬性表md_property1)表中的實(shí)體有哪些屬性2)生成的 sql就是根據(jù)這些屬性生成的。實(shí)體屬性信息:到屬性表md_property表中的信息UAP 培訓(xùn)案例系列 27 UAP-主子型開(kāi)

42、發(fā)bizitfimpclassnameclasstype元數(shù)據(jù)組件 IDcomponentidmd_component 表中的ID創(chuàng)建時(shí)間createtime創(chuàng)建人creator默認(rèn)表名稱(chēng)defaulttablename描述description顯示名稱(chēng)displaynamedrfixedlength類(lèi)名稱(chēng)fullclassname擴(kuò)展HelpIDId主鍵行業(yè)industry主鍵isactiveisauthen是否生成建庫(kù)iscreatesqlisextendbeanisprimary主表主鍵keyattribute實(shí)體主鍵值修改人modifier修改時(shí)間modifytimemodinfocl

43、assname名稱(chēng)nameparentclassidpreciserefmname多語(yǔ)idresidreturntypestereotypetsuserdefclassnameversiontype主鍵屬性表md_property的表結(jié)構(gòu):實(shí)體屬性與屬性表md_property對(duì)照1)對(duì)照信息類(lèi)似于組件表md_compoment和數(shù)據(jù)類(lèi)型及實(shí)體表md_class2)屬性表md_property中的 classid 字段對(duì)應(yīng)實(shí)體表md_class的 id 字段。UAP 培訓(xùn)案例系列 28 UAP-主子型開(kāi)發(fā)元數(shù)據(jù)發(fā)布相關(guān)的其他的表與元數(shù)據(jù)相關(guān)的表參見(jiàn)V6 數(shù)據(jù)庫(kù)結(jié)構(gòu).xls4.6.5 序列化文件

44、文件發(fā)布元數(shù)據(jù)之后,點(diǎn)擊畫(huà)布的空白處,在模型視圖(組件)視圖下可查看序列化文件,如下圖所示:序列化文件的,詳細(xì)參見(jiàn)UAP-元數(shù)據(jù)建模說(shuō)明.docx4.6.6 生成 javaVO 源代碼分析對(duì)于不同的代碼風(fēng)格和器類(lèi)型會(huì)產(chǎn)生不同的JavaVO,此處生成的 JavaVO 的名稱(chēng)以及路徑都是由元數(shù)據(jù)設(shè)計(jì)中的類(lèi)名稱(chēng)和包裝類(lèi)名來(lái)決定的。NC 傳統(tǒng)樣式下生成的 JavaVO:標(biāo)準(zhǔn)樣式下生成的 JavaVO:?jiǎn)伪砩梢粋€(gè) JavaVO。自定義樣式下生成的 JavaVO:以主子表單據(jù)為例,代碼風(fēng)格自定義樣式,器類(lèi)型為 AggVo,會(huì)產(chǎn)生以下四個(gè) VO:QuotationHVO、QuotationBVO、Quot

45、ationVO、QuotationVOMeta表頭 VO:表體 VO:UAP 培訓(xùn)案例系列 29 UAP-主子型開(kāi)發(fā)包裝類(lèi) VO:QuotationHVO、QuotationBVO 分別是元數(shù)據(jù)中主實(shí)體以及子實(shí)體對(duì)應(yīng)的值對(duì)象,他們都繼承了 SuperVO,此處需要說(shuō)明的是這里關(guān)于實(shí)體間的關(guān)系:在畫(huà)布上,主實(shí)體與子實(shí)體的關(guān)系顯示在主實(shí)體中,但是 VO 中子實(shí)體 QuotationBVO 含有主實(shí)體 QuotationHVO 的主表主鍵,并具有相應(yīng)的 get、set 方法,在數(shù)據(jù)庫(kù)表中同樣是子表含有主表的主鍵作為外鍵來(lái)建立關(guān)聯(lián)。QuotationVO 為包裝類(lèi)組合 VO,該類(lèi)繼承了 Abstrac

46、tBill,故能夠支持頁(yè)簽級(jí) VO,能夠?qū)崿F(xiàn)多個(gè)子實(shí)體在不同的頁(yè)簽中顯示,還指明了 parentVO;QuotationVOMeta 繼承AbstractBillMeta,設(shè)置主實(shí)體與子實(shí)體的關(guān)聯(lián),需要注意的是如果建立了多個(gè)子實(shí)體,需要在 QuotationVOMeta 中手動(dòng)的添加 addChildren(子實(shí)體 VO.class)。4.6.7 生成 sql結(jié)構(gòu)目錄分析執(zhí)行“生成 sql并執(zhí)行”操作之后,會(huì)在相應(yīng)的目錄中產(chǎn)生以下目錄結(jié)構(gòu)其中 Dtype 文件夾下有三個(gè) xml 文件,如上圖所示SQLSERVER 文件夾下有兩個(gè)文件UAP 培訓(xùn)案例系列 30 UAP-主子型開(kāi)發(fā)00001 文件

47、下的 TADATA_quotation_table.sql(以主子表為例,quotation 是元數(shù)據(jù)的多語(yǔ)模塊名),對(duì)應(yīng)的是元數(shù)據(jù)中實(shí)體的建庫(kù)UAP 培訓(xùn)案例系列 31 UAP-主子型開(kāi)發(fā)create table example_first_h ( pk_salequotation CHAR(20) NOT NULL, pk_group VARCHAR(20) default '' NULL, pk_org_v VARCHAR(20) default '' NULL, pk_org VARCHAR(20) default '' NULL, vb

48、illcode VARCHAR(40) NULL,ctrantypeid VARCHAR(20) default '' NULL, vtrantypecode VARCHAR(50) NULL, dbilldate CHAR(19) NULL,dquotedate CHAR(19) NULL, denddate VARCHAR(19) NULL, fstatusflag INT default '-1' NOT NULL,pk_customer VARCHAR(20) default '' NULL, pk_channeltype VARCHAR

49、(20) default '' NULL, pk_currtype VARCHAR(20) default '' NULL, pk_balatype VARCHAR(20) default '' NULL, pk_dept_v VARCHAR(20) default '' NULL, pk_dept VARCHAR(20) default '' NULL, cemployeeid VARCHAR(20) NULL,pk_payterm VARCHAR(20) default '' NULL, cse

50、ndtypeid VARCHAR(20) default '' NULL, ndiscount DECIMAL(28,8) NULL,ntotalnum DECIMAL(28,8) NULL, ntotalmny DECIMAL(28,8) NULL, operator VARCHAR(20) default '' NULL, creator VARCHAR(20) default '' NULL, creationtime CHAR(19) NULL,modifier VARCHAR(20) default '' NULL, m

51、odifiedtime CHAR(19) NULL,approver VARCHAR(20) default '' NULL, taudittime CHAR(19) NULL,vnote VARCHAR(181) NULL, vdef1 VARCHAR(101) NULL, vdef2 VARCHAR(101) NULL, vdef3 VARCHAR(101) NULL, vdef4 VARCHAR(101) NULL, vdef5 VARCHAR(101) NULL, vdef6 VARCHAR(101) NULL, vdef7 VARCHAR(101) NULL, vde

52、f8 VARCHAR(101) NULL, vdef9 VARCHAR(101) NULL,UAP 培訓(xùn)案例系列 32 UAP-主子型開(kāi)發(fā)vdef10 VARCHAR(101) NULL, vdef11 VARCHAR(101) NULL, vdef12 VARCHAR(101) NULL, vdef13 VARCHAR(101) NULL, vdef14 VARCHAR(101) NULL, vdef15 VARCHAR(101) NULL, vdef16 VARCHAR(101) NULL, vdef17 VARCHAR(101) NULL, vdef18 VARCHAR(101) NULL, vdef19 VARCHAR(101) NULL, vdef20 VARCHAR(101) NULL,cbiztypeid VARCHAR(20) default '' NULL,CONSTRAINT PK_EXAMPLE_FIRST_H PRIMARY KEY (pk_salequotation), ts char(19) default convert(c

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論