一種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù)用方法
【專利摘要】本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,提供一種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù)用方法,用于解決Oracle Forms信息系統(tǒng)的業(yè)務(wù)邏輯被其他UI復(fù)用的問(wèn)題,所述方法包括以下步驟:在Oracle Forms信息系統(tǒng)數(shù)據(jù)庫(kù)中創(chuàng)建基表;用戶權(quán)限驗(yàn)證;從用戶提供的數(shù)據(jù)文件中獲取待校驗(yàn)數(shù)據(jù)并對(duì)待校驗(yàn)數(shù)據(jù)進(jìn)行封裝;查詢校驗(yàn)函數(shù);構(gòu)造校驗(yàn)函數(shù)對(duì)封裝的待校驗(yàn)數(shù)據(jù)進(jìn)行校驗(yàn);更新數(shù)據(jù)庫(kù)。本發(fā)明能夠把Oracle Forms信息系統(tǒng)的業(yè)務(wù)邏輯調(diào)整為UI可以復(fù)用的目標(biāo),而且不影響Oracle Forms信息系統(tǒng)的開(kāi)發(fā),并且具有較強(qiáng)的適應(yīng)性。
【專利說(shuō)明】-種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù)用方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及計(jì)算機(jī)【技術(shù)領(lǐng)域】,特別涉及一種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù) 用方法。
【背景技術(shù)】
[0002] Oracle Forms Developer是Oracle公司提供的用于開(kāi)發(fā)Web數(shù)據(jù)庫(kù)應(yīng)用程序的 工具集,其主要UI界面稱為Form。Oracle Forms Developer工具集具有開(kāi)發(fā)模式簡(jiǎn)單、可 實(shí)現(xiàn)邏輯功能強(qiáng)大等優(yōu)點(diǎn),目前,Oracle Forms Developer工具集得到了廣泛的應(yīng)用。
[0003] 隨著開(kāi)發(fā)技術(shù)的不斷發(fā)展,出現(xiàn)了基于網(wǎng)頁(yè)或移動(dòng)終端的Π 界面技術(shù),為了避免 重復(fù)開(kāi)發(fā),需要把以前使用Oracle Forms Developer工具開(kāi)發(fā)的Oracle Form形式的系統(tǒng) (本發(fā)明中簡(jiǎn)稱為"Oracle Forms信息系統(tǒng)"),調(diào)整為網(wǎng)頁(yè)或者移動(dòng)終端支持的Π 界面, 但是由于使用Oracle Forms Developer工具開(kāi)發(fā)過(guò)程中,許多業(yè)務(wù)邏輯都集成在Form中, 因此基于網(wǎng)頁(yè)或者移動(dòng)終端的Π 界面很難將集成在Form中的業(yè)務(wù)邏輯復(fù)用,這就導(dǎo)致開(kāi) 發(fā)者只能投入大量資源和冒著系統(tǒng)穩(wěn)定性風(fēng)險(xiǎn)來(lái)完成所有業(yè)務(wù)邏輯的重新開(kāi)發(fā)。
【發(fā)明內(nèi)容】
[0004] 本發(fā)明提供一種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù)用方法,用于解決Oracle Forms信息系統(tǒng)的業(yè)務(wù)邏輯被其他Π 復(fù)用的問(wèn)題。
[0005] 為了解決以上的技術(shù)問(wèn)題,本發(fā)明提供一種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù) 用方法,所述方法包括以下步驟:
[0006] 步驟A :在Oracle Forms信息系統(tǒng)數(shù)據(jù)庫(kù)中創(chuàng)建基表,所述基表至少包括第一基 表至第八基表,所述第一基表用于記錄權(quán)限代碼與Form代碼的對(duì)應(yīng)關(guān)系以及權(quán)限代碼對(duì) Form中數(shù)據(jù)的増刪改屬性;所述第二基表用于記錄用戶與權(quán)限代碼的對(duì)應(yīng)關(guān)系;所述第三 基表用于記錄基表與基表字段的對(duì)應(yīng)關(guān)系以及基表字段的増刪改屬性;所述第四基表用于 記錄基表字段的值列表及代碼輸入的規(guī)則;所述第五基表用于記錄對(duì)基表字段或整條數(shù)據(jù) 庫(kù)記錄進(jìn)行校驗(yàn)時(shí)使用的數(shù)據(jù)庫(kù)函數(shù)及數(shù)據(jù)庫(kù)函數(shù)執(zhí)行校驗(yàn)的順序;所述第六基表用于記 錄Form的基表信息;所述第七基表用于記錄執(zhí)行校驗(yàn)的所有數(shù)據(jù)庫(kù)函數(shù);所述第八基表用 于定義Oracle Forms信息系統(tǒng)的報(bào)錯(cuò)信息;
[0007] 步驟B :從用戶提供的參數(shù)中獲取用戶信息并判斷用戶及其請(qǐng)求的Form操作是否 合法,如果用戶及其請(qǐng)求的Form操作合法,則轉(zhuǎn)入步驟C ;反之則退出流程;
[0008] 步驟C :從用戶提供的數(shù)據(jù)文件中獲取待校驗(yàn)數(shù)據(jù)并對(duì)待校驗(yàn)數(shù)據(jù)進(jìn)行封裝;
[0009] 步驟D :在所述Oracle Forms信息系統(tǒng)中查詢校驗(yàn)函數(shù);
[0010] 步驟E :構(gòu)造校驗(yàn)函數(shù)對(duì)步驟C中封裝的待校驗(yàn)數(shù)據(jù)進(jìn)行校驗(yàn);
[0011] 步驟F :根據(jù)所述第三基表中的數(shù)據(jù)判斷用戶提供的數(shù)據(jù)文件中的必填字段是否 為空,如果必填字段不為空,則執(zhí)行步驟G ;反之則向用戶反饋錯(cuò)誤信息并退出流程;
[0012] 步驟G :更新Oracle Forms信息系統(tǒng)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
[0013] 根據(jù)本發(fā)明的一種優(yōu)選實(shí)施方式,所述步驟B具體包括:
[0014] 步驟Bl :驗(yàn)證用戶提供的用戶名和密碼是否能夠通過(guò)用戶登陸驗(yàn)證,如果驗(yàn)證通 過(guò)則執(zhí)行步驟B2,反之則退出流程;
[0015] 步驟B2 :根據(jù)第一基表和第二基表信息驗(yàn)證用戶是否有Form操作權(quán)限,如果有操 作權(quán)限則轉(zhuǎn)入步驟C,反之則退出流程。
[0016] 根據(jù)本發(fā)明的另一種優(yōu)選實(shí)施方式,所述步驟C具體包括:
[0017] 步驟Cl :創(chuàng)建DataService對(duì)象實(shí)例;
[0018] 步驟C2 :通過(guò)DataService讀取并封裝所述待校驗(yàn)數(shù)據(jù);
[0019] 步驟C3 :從用戶提供的數(shù)據(jù)文件中獲取程序編號(hào)、基表字段、基表描述字段及待 校驗(yàn)數(shù)據(jù);
[0020] 步驟C4 :將所述待校驗(yàn)數(shù)據(jù)與所述基表字段保存在一個(gè)Map對(duì)象里。
[0021] 根據(jù)本發(fā)明的另一種優(yōu)選實(shí)施方式,所述步驟D具體包括:
[0022] 步驟Dl :從第TK基表中犾取基表名和兀基表;
[0023] 步驟D2 :根據(jù)所述Map對(duì)象獲取基表字段名,然后根據(jù)所述基表字段名和步驟Dl 中得到的基表名,從第五基表中獲取當(dāng)前字段校驗(yàn)所必需的函數(shù)名、函數(shù)參數(shù)、函數(shù)返回參 數(shù)、函數(shù)執(zhí)行順序號(hào)以及報(bào)錯(cuò)類型;
[0024] 步驟D3 :從第四基表中獲取字段簡(jiǎn)碼;
[0025] 步驟D4 :從第七基表中獲取執(zhí)行校驗(yàn)的數(shù)據(jù)庫(kù)函數(shù)的函數(shù)名和函數(shù)參數(shù)個(gè)數(shù);
[0026] 步驟D5 :從第三基表中獲取所述基表名對(duì)應(yīng)字段是否為必填字段以及字段的増 刪改屬性。
[0027] 根據(jù)本發(fā)明的另一種優(yōu)選實(shí)施方式,所述步驟E具體包括:根據(jù)步驟D中得到的函 數(shù)的名稱和函數(shù)參數(shù)拼接得到可執(zhí)行的函數(shù)語(yǔ)句;執(zhí)行所述函數(shù)語(yǔ)句并返回執(zhí)行結(jié)果;根 據(jù)所述執(zhí)行結(jié)果判斷函數(shù)是否出現(xiàn)錯(cuò)誤,如果出現(xiàn)錯(cuò)誤,則從第八基表中獲取報(bào)錯(cuò)信息,并 提示用戶。
[0028] 根據(jù)本發(fā)明的另一種優(yōu)選實(shí)施方式,所述步驟G具體包括:根據(jù)基表名稱、基表字 段以及步驟E中校驗(yàn)后的數(shù)據(jù)拼接得到可執(zhí)行的DML語(yǔ)句;執(zhí)行所述DML語(yǔ)句并返回執(zhí)行 結(jié)果。
[0029] 下面將更詳細(xì)的描述本發(fā)明。
[0030] 本發(fā)明首先包括基礎(chǔ)數(shù)據(jù)的準(zhǔn)備,即需要在Oracle Forms信息系統(tǒng)數(shù)據(jù)庫(kù)中創(chuàng)建 基表,所述基表至少包括第一基表至第八基表,下面對(duì)本發(fā)明中使用的第一基表至第八基 表進(jìn)行詳細(xì)說(shuō)明。
[0031] 第一基表用于記錄權(quán)限代碼與Form代碼的對(duì)應(yīng)關(guān)系以及權(quán)限代碼對(duì)Form中數(shù)據(jù) 的増刪改屬性。如表1所示,表1為第一基表的字段設(shè)置以及字段說(shuō)明。
[0032] 表 1
[0033]
【權(quán)利要求】
1. 一種Oracle Forms信息系統(tǒng)業(yè)務(wù)邏輯的復(fù)用方法,其特征在于包括以下步驟: 步驟A :在Oracle Forms信息系統(tǒng)數(shù)據(jù)庫(kù)中創(chuàng)建基表,所述基表至少包括第一基表至 第八基表,所述第一基表用于記錄權(quán)限代碼與Form代碼的對(duì)應(yīng)關(guān)系以及權(quán)限代碼對(duì)Form 中數(shù)據(jù)的増刪改屬性;所述第二基表用于記錄用戶與權(quán)限代碼的對(duì)應(yīng)關(guān)系;所述第三基表 用于記錄基表與基表字段的對(duì)應(yīng)關(guān)系以及基表字段的増刪改屬性;所述第四基表用于記錄 基表字段的值列表及代碼輸入的規(guī)則;所述第五基表用于記錄對(duì)基表字段或整條數(shù)據(jù)庫(kù)記 錄進(jìn)行校驗(yàn)時(shí)使用的數(shù)據(jù)庫(kù)函數(shù)及數(shù)據(jù)庫(kù)函數(shù)執(zhí)行校驗(yàn)的順序;所述第六基表用于記錄 Form的基表信息;所述第七基表用于記錄執(zhí)行校驗(yàn)的所有數(shù)據(jù)庫(kù)函數(shù);所述第八基表用于 定義Oracle Forms信息系統(tǒng)的報(bào)錯(cuò)信息; 步驟B :從用戶提供的參數(shù)中獲取用戶信息并判斷用戶及其請(qǐng)求的Form操作是否合 法,如果用戶及其請(qǐng)求的Form操作合法,則轉(zhuǎn)入步驟C ;反之則退出流程; 步驟C :從用戶提供的數(shù)據(jù)文件中獲取待校驗(yàn)數(shù)據(jù)并對(duì)待校驗(yàn)數(shù)據(jù)進(jìn)行封裝; 步驟D :在所述Oracle Forms信息系統(tǒng)中查詢校驗(yàn)函數(shù); 步驟E :構(gòu)造校驗(yàn)函數(shù)對(duì)步驟C中封裝的待校驗(yàn)數(shù)據(jù)進(jìn)行校驗(yàn); 步驟F:根據(jù)所述第三基表中的數(shù)據(jù)判斷用戶提供的數(shù)據(jù)文件中的必填字段是否為 空,如果必填字段不為空,則執(zhí)行步驟G ;反之則向用戶反饋錯(cuò)誤信息并退出流程; 步驟G :更新Oracle Forms信息系統(tǒng)的數(shù)據(jù)庫(kù)中的數(shù)據(jù)。
2. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟B具體包括: 步驟B1 :驗(yàn)證用戶提供的用戶名和密碼是否能夠通過(guò)用戶登陸驗(yàn)證,如果驗(yàn)證通過(guò)則 執(zhí)行步驟B2,反之則退出流程; 步驟B2 :根據(jù)第一基表和第二基表信息驗(yàn)證用戶是否有Form操作權(quán)限, 如果有操作權(quán)限則轉(zhuǎn)入步驟C,反之則退出流程。
3. 根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟C具體包括: 步驟C1 :創(chuàng)建DataService對(duì)象實(shí)例; 步驟C2 :通過(guò)DataService讀取并封裝所述待校驗(yàn)數(shù)據(jù); 步驟C3 :從用戶提供的數(shù)據(jù)文件中獲取程序編號(hào)、基表字段、基表描述字段及待校驗(yàn) 數(shù)據(jù); 步驟C4 :將所述待校驗(yàn)數(shù)據(jù)與所述基表字段保存在一個(gè)Map對(duì)象里。
4. 根據(jù)權(quán)利要求3所述的方法,其特征在于所述步驟D具體包括: 步驟D1 :從第六基表中獲取基表名和元基表; 步驟D2 :根據(jù)所述Map對(duì)象獲取基表字段名,然后根據(jù)所述基表字段名和步驟D1中得 到的基表名,從第五基表中獲取當(dāng)前字段校驗(yàn)所必需的函數(shù)名、函數(shù)參數(shù)、函數(shù)返回參數(shù)、 函數(shù)執(zhí)行順序號(hào)以及報(bào)錯(cuò)類型; 步驟D3 :從第四基表中獲取字段簡(jiǎn)碼; 步驟D4 :從第七基表中獲取執(zhí)行校驗(yàn)的數(shù)據(jù)庫(kù)函數(shù)的函數(shù)名和函數(shù)參數(shù)個(gè)數(shù); 步驟D5 :從第三基表中獲取所述基表名對(duì)應(yīng)字段是否為必填字段以及字段的増刪改 屬性。
5. 根據(jù)權(quán)利要求1或4所述的方法,其特征在于所述步驟E具體包括:根據(jù)步驟D中 得到的函數(shù)的名稱和函數(shù)參數(shù)拼接得到可執(zhí)行的函數(shù)語(yǔ)句;執(zhí)行所述函數(shù)語(yǔ)句并返回執(zhí)行 結(jié)果;根據(jù)所述執(zhí)行結(jié)果判斷函數(shù)是否出現(xiàn)錯(cuò)誤,如果出現(xiàn)錯(cuò)誤,則從第八基表中獲取報(bào)錯(cuò) 信息,并提示用戶。
6.根據(jù)權(quán)利要求1所述的方法,其特征在于所述步驟G具體包括:根據(jù)基表名稱、基表 字段以及步驟E中校驗(yàn)后的數(shù)據(jù)拼接得到可執(zhí)行的DML語(yǔ)句;執(zhí)行所述DML語(yǔ)句并返回執(zhí) 行結(jié)果。
【文檔編號(hào)】G06F9/44GK104239048SQ201410455974
【公開(kāi)日】2014年12月24日 申請(qǐng)日期:2014年9月9日 優(yōu)先權(quán)日:2014年9月9日
【發(fā)明者】何文, 毛磊, 夏明珠, 張睿, 熊水玲 申請(qǐng)人:中國(guó)長(zhǎng)江三峽集團(tuán)公司