專利名稱:表單編號(hào)生成方法和系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及表單編號(hào)生成技術(shù),尤其涉及表單編號(hào)生成方法和系統(tǒng)。
背景技術(shù):
在企業(yè)管理軟件中包括許多具有不同業(yè)務(wù)邏輯的表單類型,每個(gè)表單類型通常都 需要為該類型的每一個(gè)表單實(shí)例生成全局唯一的編號(hào)作為標(biāo)識(shí)。雖然不同的表單類型具有 不同的業(yè)務(wù)處理邏輯,但在編號(hào)生成的處理中,大都是預(yù)先定義特定的編號(hào)規(guī)則,隨著表單 實(shí)例的增加生成遞增的編號(hào)。而且由于不同類型表單的業(yè)務(wù)處理邏輯、用戶需求等具有很多差異,表單編號(hào)規(guī) 則的定義就變得非常復(fù)雜;除此之外,企業(yè)管理軟件具有多用戶并發(fā)操作等特性,在生成編 號(hào)時(shí)需要考慮多客戶端協(xié)調(diào)同步等因素。因此,表單編號(hào)處理是管理軟件開發(fā)中一項(xiàng)重要 且具有很高復(fù)雜度的技術(shù)。在一般的管理軟件開發(fā)中,表單編號(hào)的處理技術(shù)方案往往難以完善地解決規(guī)則定 義和編號(hào)生成中可能出現(xiàn)的問題。主要體現(xiàn)在以下方面1.無法適應(yīng)多變的用戶需求和應(yīng)用場(chǎng)景。編號(hào)規(guī)則的定義方式常常受限于固定的 業(yè)務(wù)數(shù)據(jù)或應(yīng)用場(chǎng)景,難以針對(duì)不同行業(yè)特性、企業(yè)特性的用戶提供統(tǒng)一的適用方案,實(shí)現(xiàn) 用戶的特殊業(yè)務(wù)需求。在相關(guān)表單編號(hào)處理技術(shù)中,存在著分別使用了基于組織優(yōu)先級(jí)選 擇編碼規(guī)則、在多個(gè)可用的編碼規(guī)則中啟用和停用的方法,來解決規(guī)則的適用性問題,但這 兩個(gè)方法的前提都是基于預(yù)先已定義好的一系列編碼規(guī)則,從中選擇最適用的,而沒有提 供如何基于用戶特性和應(yīng)用場(chǎng)景,由用戶自主定義編號(hào)規(guī)則的解決方案。2.在生成編號(hào)時(shí),由于多用戶并發(fā)、手工改動(dòng)、批處理等操作,經(jīng)常會(huì)造成跳號(hào)、重 號(hào)等異常數(shù)據(jù),一般的編號(hào)生成技術(shù)只是針對(duì)并發(fā)情況進(jìn)行處理,缺少完善的機(jī)制控制各 種可能情況下編號(hào)的有效性。在相關(guān)編號(hào)生成的技術(shù)中,存在著分別提供生成預(yù)覽編號(hào)用 于顯示,正式編號(hào)用于保存的客戶端/服務(wù)器系統(tǒng),解決了網(wǎng)絡(luò)并發(fā)環(huán)境下可能出現(xiàn)的編 號(hào)異常,但未提供在手工改動(dòng)、批處理等非正常業(yè)務(wù)流程下保證編號(hào)有效性的方法,也未提 供在出現(xiàn)錯(cuò)誤數(shù)據(jù)后的異常處理措施。根據(jù)上述內(nèi)容可知,企業(yè)管理軟件中不同業(yè)務(wù)的表單類型和不同用戶需求、應(yīng)用 場(chǎng)景需要更完善的表單生成方法,但是目前的技術(shù)難以完成下列技術(shù)效果1.編號(hào)規(guī)則的適用性規(guī)則可靈活變更或擴(kuò)展以適用不同用戶需求、不同應(yīng)用場(chǎng)景;2.生成編號(hào)的有效性生成的編號(hào)符合預(yù)定義的規(guī)則、在業(yè)務(wù)數(shù)據(jù)中保證唯一性 和連續(xù)性,能夠準(zhǔn)確無誤地反映對(duì)應(yīng)的業(yè)務(wù)含義。因此,需要一種更完善的表單生成方法和系統(tǒng)來解決上述的問題,能夠保證編號(hào) 規(guī)則的適用性和生成編號(hào)的有效性。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題在于,提供一種表單編號(hào)生成方法和系統(tǒng),能夠保證編號(hào)規(guī)則的適用性,即根據(jù)不同用戶需求、不同應(yīng)用場(chǎng)景可靈活變更或擴(kuò)展編號(hào)規(guī)則,同時(shí) 也能夠保證生成編號(hào)的有效性,即生成的編號(hào)符合預(yù)定義的編號(hào)規(guī)則,在業(yè)務(wù)數(shù)據(jù)中保證 唯一性和連續(xù)性。有鑒于此,本發(fā)明提供了一種表單編號(hào)生成方法,包括步驟102,根據(jù)用戶的輸 入數(shù)據(jù),制定編號(hào)規(guī)則;步驟104,根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。在上述技術(shù)方案中,優(yōu)選地,所述輸入數(shù)據(jù)包括編號(hào)規(guī)則參數(shù),所述編號(hào)規(guī)則參 數(shù)包括所述用戶指定的業(yè)務(wù)數(shù)據(jù);編號(hào)規(guī)則參數(shù)類型,用于確認(rèn)所述編號(hào)規(guī)則參數(shù)在所述 編號(hào)中的角色,所述角色包括前綴和/或流水依據(jù)。通過該技術(shù)方案,用戶根據(jù)需要靈活制 定編號(hào)規(guī)則,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,用于制定編號(hào)規(guī)則的數(shù)據(jù)包括但不限于編號(hào)規(guī) 則參數(shù)和編號(hào)規(guī)則參數(shù)類型。在上述技術(shù)方案中,優(yōu)選地,所述步驟104中,為每張表單生成編號(hào)時(shí),同時(shí)根據(jù) 所述每張表單的編號(hào)生成最大流水?dāng)?shù)字,以用于為下一張表單生成編號(hào)。在上述技術(shù)方案中,優(yōu)選地,所述步驟104中,首先為所述每張表單生成臨時(shí)編 號(hào),根據(jù)所述用戶的選擇將所述臨時(shí)編號(hào)保存為編號(hào)時(shí),更新所述最大流水?dāng)?shù)字。通過該技 術(shù)方案,使得最大流水?dāng)?shù)字根據(jù)臨時(shí)編號(hào)保存為編號(hào)的時(shí)間記錄更新,有效地消除了傳統(tǒng) 技術(shù)中對(duì)表單的并發(fā)操作帶來的跳號(hào)、重號(hào)的影響。在上述技術(shù)方案中,優(yōu)選地,還包括步驟106,讀取指定表單的編號(hào)規(guī)則,根據(jù)所 述指定表單的編號(hào)規(guī)則和所述指定表單對(duì)應(yīng)的其他表單實(shí)例的編號(hào),更新所述最大流水?dāng)?shù) 字,以用于為所述指定表單生成編號(hào)。通過該技術(shù)方案,可以在如編號(hào)異常的特定時(shí)間,確 定最大流水?dāng)?shù)字,以保證后續(xù)表單編號(hào)生成的準(zhǔn)確性。通過上述技術(shù)方案,可以實(shí)現(xiàn)一種表單生成方法,能夠?qū)崿F(xiàn)基于用戶特性和應(yīng)用 場(chǎng)景的自主定義編號(hào)規(guī)則,根據(jù)自主定義編號(hào)規(guī)則生成符合預(yù)定義的規(guī)則的表單編號(hào),且 在業(yè)務(wù)數(shù)據(jù)中保證唯一性和連續(xù)性。本發(fā)明還提供了一種表單編號(hào)生成系統(tǒng),包括編號(hào)規(guī)則制定模塊,根據(jù)用戶的輸 入數(shù)據(jù),制定編號(hào)規(guī)則;編號(hào)生成模塊,根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。在上述技術(shù)方案中,優(yōu)選地,所述輸入數(shù)據(jù)包括編號(hào)規(guī)則參數(shù),所述編號(hào)規(guī)則參 數(shù)包括所述用戶指定的業(yè)務(wù)數(shù)據(jù);編號(hào)規(guī)則參數(shù)類型,用于確認(rèn)所述編號(hào)規(guī)則參數(shù)在所述 編號(hào)中的角色,所述角色包括前綴和/或流水依據(jù)。通過該技術(shù)方案,用戶根據(jù)需要靈活制 定編號(hào)規(guī)則,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,用于制定編號(hào)規(guī)則的數(shù)據(jù)包括但不限于編號(hào)規(guī) 則參數(shù)和編號(hào)規(guī)則參數(shù)類型。在上述技術(shù)方案中,優(yōu)選地,所述編號(hào)生成模塊為每張表單生成編號(hào)時(shí),同時(shí)根據(jù) 所述每張表單的編號(hào)生成最大流水?dāng)?shù)字,以用于為下一張表單生成編號(hào)。通過該技術(shù)方案, 可以在如編號(hào)異常的特定時(shí)間,確定最大流水?dāng)?shù)字,以保證后續(xù)表單編號(hào)生成的準(zhǔn)確性。在上述技術(shù)方案中,優(yōu)選地,所述編號(hào)生成模塊首先為所述每張表單生成臨時(shí)編 號(hào),根據(jù)所述用戶的選擇將所述臨時(shí)編號(hào)保存為編號(hào)時(shí),更新所述最大流水?dāng)?shù)字。通過該技 術(shù)方案,使得最大流水?dāng)?shù)字根據(jù)臨時(shí)編號(hào)保存為編號(hào)的時(shí)間記錄更新,有效地消除了傳統(tǒng) 技術(shù)中對(duì)表單的并發(fā)操作帶來的跳號(hào)、重號(hào)的影響。在上述技術(shù)方案中,優(yōu)選地,還包括同步模塊,讀取指定表單的編號(hào)規(guī)則,根據(jù)所 述指定表單的編號(hào)規(guī)則和所述指定表單對(duì)應(yīng)的其他表單實(shí)例的編號(hào),更新所述最大流水?dāng)?shù)字,以用于為所述指定表單生成編號(hào)。通過該技術(shù)方案,可以在如編號(hào)異常的特定時(shí)間,確 定最大流水?dāng)?shù)字,以保證后續(xù)表單編號(hào)生成的準(zhǔn)確性。通過上述技術(shù)方案,可以實(shí)現(xiàn)一種表單編號(hào)生成系統(tǒng),能夠?qū)崿F(xiàn)基于用戶特性和 應(yīng)用場(chǎng)景的自主定義編號(hào)規(guī)則,根據(jù)自主定義編號(hào)規(guī)則生成符合預(yù)定義的規(guī)則的表單編 號(hào),且在業(yè)務(wù)數(shù)據(jù)中保證唯一性和連續(xù)性。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成方法的流程圖;圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的框圖;圖3是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的框圖;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的編號(hào)規(guī)則制定模塊的編 號(hào)規(guī)則設(shè)置界面;圖5是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的使用編號(hào)規(guī)則制定模塊 的編號(hào)規(guī)則定義流程圖;圖6是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的編號(hào)生成模塊進(jìn)行編號(hào) 生成和持久化過程的流程圖;以及圖7是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的編號(hào)生成模塊進(jìn)行編號(hào) 同步記錄的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明進(jìn)行進(jìn)一步的詳細(xì)描述。在下面的描述中闡述了很多具體細(xì)節(jié)以便于充分理解本發(fā)明,但是,本發(fā)明還可 以采用不同于在此所描述內(nèi)容的其他方式來實(shí)施,因此,本發(fā)明并不限于下面公開的具體 實(shí)施例的限制。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成方法的流程圖如圖1所示,本發(fā)明提供一種表單編號(hào)生成方法,包括步驟102,根據(jù)用戶的輸入 數(shù)據(jù),制定編號(hào)規(guī)則;步驟104,根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。在上述技術(shù)方案中,所述輸入數(shù)據(jù)包括編號(hào)規(guī)則參數(shù),所述編號(hào)規(guī)則參數(shù)包括所 述用戶指定的業(yè)務(wù)數(shù)據(jù);編號(hào)規(guī)則參數(shù)類型,用于確認(rèn)所述編號(hào)規(guī)則參數(shù)在所述編號(hào)中的 角色,所述角色包括前綴和/或流水依據(jù)。通過該技術(shù)方案,用戶根據(jù)需要靈活制定編號(hào)規(guī) 則,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,用于制定編號(hào)規(guī)則的數(shù)據(jù)包括但不限于編號(hào)規(guī)則參數(shù)和 編號(hào)規(guī)則參數(shù)類型。在上述技術(shù)方案中,所述步驟104中,為每張表單生成編號(hào)時(shí),同時(shí)根據(jù)所述每張 表單的編號(hào)生成最大流水?dāng)?shù)字,以用于為下一張表單生成編號(hào)。在上述技術(shù)方案中,所述步驟104中,首先為所述每張表單生成臨時(shí)編號(hào),根據(jù)所 述用戶的選擇將所述臨時(shí)編號(hào)保存為編號(hào)時(shí),更新所述最大流水?dāng)?shù)字。通過該技術(shù)方案,使 得最大流水?dāng)?shù)字根據(jù)臨時(shí)編號(hào)保存為編號(hào)的時(shí)間記錄更新,有效地消除了傳統(tǒng)技術(shù)中對(duì)表 單的并發(fā)操作帶來的跳號(hào)、重號(hào)的影響。在上述技術(shù)方案中,還包括步驟106,讀取指定表單的編號(hào)規(guī)則,根據(jù)所述指定表單的編號(hào)規(guī)則和所述指定表單對(duì)應(yīng)的其他表單實(shí)例的編號(hào),更新所述最大流水?dāng)?shù)字,以 用于為所述指定表單生成編號(hào)。通過該技術(shù)方案,可以在如編號(hào)異常的特定時(shí)間,確定最大 流水?dāng)?shù)字,以保證后續(xù)表單編號(hào)生成的準(zhǔn)確性。在此,本領(lǐng)域的技術(shù)人員應(yīng)該理解步驟102和步驟104即可解決本發(fā)明的技術(shù)方 案所要解決的問題,步驟106與步驟102、步驟104構(gòu)成又一優(yōu)選實(shí)施例,并不用于限制本發(fā) 明。通過上述技術(shù)方案,可以實(shí)現(xiàn)一種表單編號(hào)生成方法,能夠?qū)崿F(xiàn)基于用戶特性和 應(yīng)用場(chǎng)景的自主定義編號(hào)規(guī)則,根據(jù)自主定義編號(hào)規(guī)則生成符合預(yù)定義的規(guī)則的表單編 號(hào),且在業(yè)務(wù)數(shù)據(jù)中保證唯一性和連續(xù)性。圖2是根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)的框圖。如圖2所示,本發(fā)明還提供了本發(fā)明還提供了一種表單編號(hào)生成系統(tǒng)200,包括 編號(hào)規(guī)則制定模塊202,根據(jù)用戶的輸入數(shù)據(jù),制定編號(hào)規(guī)則;編號(hào)生成模塊204,根據(jù)所述 編號(hào)規(guī)則,為表單生成編號(hào)。在上述技術(shù)方案中,所述輸入數(shù)據(jù)包括編號(hào)規(guī)則參數(shù),所述編號(hào)規(guī)則參數(shù)包括所 述用戶指定的業(yè)務(wù)數(shù)據(jù);編號(hào)規(guī)則參數(shù)類型,用于確認(rèn)所述編號(hào)規(guī)則參數(shù)在所述編號(hào)中的 角色,所述角色包括前綴和/或流水依據(jù)。通過該技術(shù)方案,用戶根據(jù)需要靈活制定編號(hào)規(guī) 則,本領(lǐng)域的技術(shù)人員應(yīng)當(dāng)理解,用于制定編號(hào)規(guī)則的數(shù)據(jù)包括但不限于編號(hào)規(guī)則參數(shù)和 編號(hào)規(guī)則參數(shù)類型。在上述技術(shù)方案中,所述編號(hào)生成模塊204為每張表單生成編號(hào)時(shí),同時(shí)根據(jù)所 述每張表單的編號(hào)生成最大流水?dāng)?shù)字,以用于為下一張表單生成編號(hào)。在上述技術(shù)方案中,所述編號(hào)生成模塊204首先為所述每張表單生成臨時(shí)編號(hào), 根據(jù)所述用戶的選擇將所述臨時(shí)編號(hào)保存為編號(hào)時(shí),更新所述最大流水?dāng)?shù)字。通過該技術(shù) 方案,使得最大流水?dāng)?shù)字根據(jù)臨時(shí)編號(hào)保存為編號(hào)的時(shí)間記錄更新,有效地消除了傳統(tǒng)技 術(shù)中對(duì)表單的并發(fā)操作帶來的跳號(hào)、重號(hào)的影響。在上述技術(shù)方案中,還包括同步模塊206,讀取指定表單的編號(hào)規(guī)則,根據(jù)所述 指定表單的編號(hào)規(guī)則和所述指定表單對(duì)應(yīng)的其他表單實(shí)例的編號(hào),更新所述最大流水?dāng)?shù) 字,以用于為所述指定表單生成編號(hào)。通過該技術(shù)方案,可以在如編號(hào)異常的特定時(shí)間,確 定最大流水?dāng)?shù)字,以保證后續(xù)表單編號(hào)生成的準(zhǔn)確性。在此,本領(lǐng)域的技術(shù)人員應(yīng)該理解編號(hào)規(guī)則制定模塊202,編號(hào)生成模塊204即 可構(gòu)成完整的技術(shù)方案,可以解決本發(fā)明的技術(shù)問題,同步模塊206與編號(hào)規(guī)則制定模塊 202,編號(hào)生成模塊204構(gòu)成又一優(yōu)選實(shí)施例,并不用于限制本發(fā)明。通過上述技術(shù)方案,可以實(shí)現(xiàn)一種表單編號(hào)生成系統(tǒng),能夠?qū)崿F(xiàn)基于用戶特性和 應(yīng)用場(chǎng)景的自主定義編號(hào)規(guī)則,根據(jù)自主定義編號(hào)規(guī)則生成符合預(yù)定義的規(guī)則的表單編 號(hào),且在業(yè)務(wù)數(shù)據(jù)中保證唯一性和連續(xù)性。圖3至圖7詳細(xì)描述了本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng)。首先如圖3所示,其概括描述了根據(jù)本發(fā)明的一個(gè)實(shí)施例的表單編號(hào)生成系統(tǒng), 它包括兩個(gè)核心功能模塊1.編號(hào)規(guī)則制定模塊302 用于定義可用于表單編號(hào)的編號(hào)規(guī)則參數(shù)、編號(hào)規(guī)則、 編號(hào)生成和維護(hù)選項(xiàng),它包括編號(hào)規(guī)則參數(shù)及參數(shù)類型定義模塊304、編號(hào)規(guī)則參數(shù)格式化設(shè)置模塊306、編號(hào)規(guī)則參數(shù)組308、編號(hào)生成控制選項(xiàng)設(shè)置模塊310。2.編號(hào)生成模塊312 用于按照已有的編號(hào)規(guī)則生成編號(hào),維護(hù)編號(hào)歷史記錄、同 步編號(hào)數(shù)據(jù),它包括編號(hào)流水號(hào)歷史數(shù)據(jù)記錄模塊314、臨時(shí)編號(hào)和持久化編號(hào)模塊316、 編號(hào)記錄同步模塊318、編號(hào)生成過程控制模塊320。下面結(jié)合圖4和圖5對(duì)編號(hào)規(guī)則制定模塊302進(jìn)行詳細(xì)說明。表單編號(hào)通常包含具有業(yè)務(wù)意義的前綴和依據(jù)一定條件遞增的流水號(hào)。如編號(hào) 規(guī)則“單據(jù)錄入人+單據(jù)日期+4位流水號(hào)”,生成的編號(hào)“User01201007270003”表示用戶 UserOl在2010年7月27日錄入的第3張單據(jù),其中,表單數(shù)據(jù)項(xiàng)“表單錄入人”和“單據(jù) 日期”作為編號(hào)前綴,同時(shí)“單據(jù)日期”作為流水號(hào)的生成依據(jù),不同日期錄入的單據(jù),生成 的流水號(hào)的以各自錄入日期內(nèi)的最大流水號(hào)為起始遞增?;诰幪?hào)規(guī)則的這些特性,編號(hào)規(guī)則制定模塊302通過以下模塊支持靈活多樣的 規(guī)則定義需求1.編號(hào)規(guī)則參數(shù)及參數(shù)類型定義模塊304。用于確定可用于編號(hào)規(guī)則的各種類型 的業(yè)務(wù)數(shù)據(jù)作為規(guī)則參數(shù),確定每個(gè)編號(hào)規(guī)則參數(shù)的參數(shù)類型以明確其用途。規(guī)則參數(shù)及 類型可以在系統(tǒng)中預(yù)置,也可以由最終用戶通過二次開發(fā)修改和重新定義。其中,可作為編 號(hào)規(guī)則參數(shù)的業(yè)務(wù)數(shù)據(jù)包括表單數(shù)據(jù)實(shí)體中定義的數(shù)據(jù)項(xiàng);系統(tǒng)參數(shù),包括會(huì)計(jì)月份、操 作員、登錄日期等系統(tǒng)變量;手工輸入,可輸入特定的數(shù)據(jù)作為編號(hào)規(guī)則參數(shù)。對(duì)于每一個(gè)參與編號(hào)生成的規(guī)則參數(shù),可指定以下參數(shù)類型中的一個(gè)以決定參數(shù) 在編號(hào)生成中充當(dāng)?shù)慕巧捎糜谇熬Y;可用于流水依據(jù);可用于前綴和流水依據(jù)。2.編號(hào)規(guī)則參數(shù)格式化設(shè)置模塊306。對(duì)于參與編號(hào)生成的業(yè)務(wù)參數(shù),根據(jù)其數(shù) 據(jù)類型及業(yè)務(wù)特性,進(jìn)行相應(yīng)的格式化處理日期類型格式化,按照“年”、“月”、“日”等組合不同的格式,如“2010-07-28”按照 “年月”格式化為“201007”;檔案數(shù)據(jù)分級(jí)取數(shù),對(duì)于管理軟件系統(tǒng)中常見的分級(jí)檔案數(shù)據(jù),對(duì)任意級(jí)別的數(shù) 據(jù)進(jìn)行截取處理,如表示“第2客戶分類的第1個(gè)子類”的分級(jí)數(shù)據(jù)“02001”,對(duì)其取第二級(jí) 數(shù)據(jù)為“001”;數(shù)據(jù)對(duì)照碼,定義編號(hào)規(guī)則參數(shù)對(duì)應(yīng)的對(duì)照碼列表,在生成編號(hào)時(shí),針對(duì)具體的參 數(shù)值,從對(duì)照碼列表中取其對(duì)應(yīng)的對(duì)照碼作為編號(hào)的組成部分。如對(duì)于規(guī)則參數(shù)“業(yè)務(wù)員”, 根據(jù)其參數(shù)值“業(yè)務(wù)員ID = UserOOl”,從“業(yè)務(wù)員檔案”列表中取其對(duì)照碼“業(yè)務(wù)員姓名= JOHN”作為表單編號(hào)組成部分;數(shù)據(jù)長度,對(duì)于每個(gè)編號(hào)規(guī)則參數(shù),可指定其在生成的編號(hào)中所占的數(shù)據(jù)長度,當(dāng) 指定的數(shù)據(jù)不足設(shè)定長度時(shí),可以使用特定的字符自動(dòng)補(bǔ)齊。如依照“4位前綴”規(guī)則,對(duì)參 數(shù)值“ 01,,進(jìn)行格式化得到“0001”。3.編號(hào)規(guī)則參數(shù)組合模塊308。可用一個(gè)或多個(gè)編號(hào)規(guī)則參數(shù)的組合作為表單編 號(hào)的前綴規(guī)則,生成的編號(hào)前綴將由這些規(guī)則參數(shù)的值連接而成。針對(duì)每一個(gè)已選擇作為 前綴的規(guī)則參數(shù),設(shè)置該參數(shù)是否可以用于流水依據(jù),多個(gè)流水依據(jù)項(xiàng)組合構(gòu)成流水規(guī)則。 前綴規(guī)則和流水規(guī)則組合形成完整的編號(hào)規(guī)則。4.編號(hào)生成控制選項(xiàng)設(shè)置模塊310。設(shè)置用于控制編號(hào)生成過程的邏輯選項(xiàng),包 括自動(dòng)生成的編號(hào)是否允許用戶手工修改、生成重號(hào)時(shí)是否自動(dòng)重新生成、編號(hào)長度控制、起始值、步長等。如圖4所示,是根據(jù)上述規(guī)則定義已實(shí)現(xiàn)的編號(hào)規(guī)則制定模塊的編號(hào) 規(guī)則設(shè)置界面?;谝陨暇幪?hào)規(guī)則設(shè)置方案,可定義具有復(fù)雜業(yè)務(wù)含義、可靈活擴(kuò)展、可修改以適 用特定應(yīng)用場(chǎng)景的業(yè)務(wù)表單編號(hào)規(guī)則。設(shè)置好編號(hào)規(guī)則之后,完整的編號(hào)規(guī)則定義處理流 程如圖5所示在步驟502,從表單業(yè)務(wù)數(shù)據(jù)實(shí)體中選取可用于生成表單編號(hào)的數(shù)據(jù)項(xiàng)作為編號(hào) 規(guī)則參數(shù),并為規(guī)則參數(shù)指定參數(shù)類型;在步驟504,選擇一個(gè)編號(hào)規(guī)則參數(shù)作為前綴;在步驟506,對(duì)該編號(hào)規(guī)則參數(shù)進(jìn)行指定長度和格式化設(shè)置;在步驟508,如果所選的規(guī)則參數(shù)同時(shí)可作為流水依據(jù)使用,設(shè)置該前綴對(duì)應(yīng)的規(guī) 則參數(shù)是否作為編號(hào)的流水依據(jù);在步驟510,指定流水依據(jù)的格式化設(shè)置;在步驟512,確認(rèn)是否設(shè)置下一個(gè)編號(hào)規(guī)則參數(shù),如果繼續(xù)設(shè)置,返回步驟504,不 繼續(xù)設(shè)置編號(hào)規(guī)則參數(shù),則進(jìn)入步驟514 ;在步驟514,選擇多個(gè)業(yè)務(wù)參數(shù)進(jìn)行組合,形成多前綴和多流水依據(jù)的編號(hào)規(guī)則; 設(shè)置編號(hào)生成選項(xiàng),指定是否允許手工修改、重號(hào)自動(dòng)重取、不固定長度編號(hào)等選項(xiàng);在步驟516,保存編號(hào)規(guī)則設(shè)置。下面結(jié)合圖6和圖7對(duì)本實(shí)施例的表單編號(hào)生成系統(tǒng)的編號(hào)生成模塊312進(jìn)行詳 細(xì)說明。編號(hào)生成模塊312基于已定義的編號(hào)規(guī)則和表單業(yè)務(wù)數(shù)據(jù)參數(shù)生成表單編號(hào),該 過程以服務(wù)接口形式以供調(diào)用。當(dāng)表單業(yè)務(wù)處理過程中需要獲取或變更表單編號(hào)時(shí),編號(hào) 生成模塊312提供服務(wù)接口,接收表單編號(hào)規(guī)則信息及當(dāng)前表單實(shí)例的業(yè)務(wù)數(shù)據(jù)信息,編 號(hào)生成模塊分析編號(hào)規(guī)則,根據(jù)規(guī)則設(shè)置獲取規(guī)則參數(shù)值,經(jīng)過格式化等處理,生成前綴和 流水號(hào),組合后作為最終的編號(hào)。針對(duì)表單編號(hào)生成、保存業(yè)務(wù)的復(fù)雜邏輯和應(yīng)用環(huán)境,編號(hào)生成模塊312使用以 下模塊確保生成編號(hào)的有效性1.編號(hào)流水號(hào)歷史數(shù)據(jù)記錄模塊314表單編號(hào)通常是一系列以遞增數(shù)字結(jié)束的字符串,新的編號(hào)是在已保存編號(hào)的最 大流水?dāng)?shù)字基礎(chǔ)上加上一定的步長后得到。每次生成某類型表單的編號(hào)并成功保存后,自 動(dòng)刷新該類型表單的最大流水?dāng)?shù)字歷史記錄,該記錄用于下次生成編號(hào)流水?dāng)?shù)字的基數(shù)。2.臨時(shí)編號(hào)和持久化編號(hào)模塊316管理軟件通常是多用戶環(huán)境,多個(gè)用戶客戶端并發(fā)操作會(huì)影響到每個(gè)客戶端的操 作結(jié)果。在表單業(yè)務(wù)中,多個(gè)用戶在不同的客戶端同時(shí)處理某一類型的表單,涉及的操作可 能包括新增、修改和刪除,各個(gè)客戶端操作的提交或取消狀態(tài)、提交的時(shí)間先后順序等因素 都會(huì)對(duì)其他客戶端的結(jié)果產(chǎn)生影響。編號(hào)必須具有唯一性和連續(xù)性。在并發(fā)環(huán)境中,因?yàn)槎鄠€(gè)客戶端操作差異或時(shí)間 差等因素,表單編號(hào)可能出現(xiàn)跳號(hào)或重號(hào)現(xiàn)象。例如多個(gè)客戶端同時(shí)對(duì)同一類型的表單進(jìn) 行新增操作,系統(tǒng)產(chǎn)生了一系列連續(xù)編號(hào),這時(shí)如果部分客戶端提交保存,部分客戶端撤消 保存,就會(huì)導(dǎo)致取消保存的編號(hào)在實(shí)際保存的編號(hào)序列中被跳過;另外,如果缺少完善的控制和檢查,多個(gè)客戶端也可能基于同一個(gè)流水記錄數(shù)字被生成相同的編號(hào),在保存時(shí)產(chǎn)生
重號(hào)異常。在本發(fā)明中,臨時(shí)編號(hào)和持久化編號(hào)模塊316區(qū)分表單實(shí)例的當(dāng)前操作類型,生 成臨時(shí)編號(hào)和持久化編號(hào),來確保生成編號(hào)的唯一性和連續(xù)性,具體細(xì)節(jié)步驟如下,如圖6 所示步驟602,用戶對(duì)表單進(jìn)行新增或修改操作,觸發(fā)表單實(shí)例的編號(hào)生成請(qǐng)求;步驟604,確認(rèn)表單的編號(hào)是否進(jìn)行持久化操作,不進(jìn)行持久化操作則進(jìn)入步驟 606,進(jìn)行持久化操作則進(jìn)入步驟614 ;步驟606,編號(hào)生成模塊在接收到非持久化操作的編號(hào)生成請(qǐng)求后,基于編號(hào)規(guī)則 和該表單類型的當(dāng)前最大流水記錄數(shù)字,生成臨時(shí)編號(hào);步驟608,獲得生成的臨時(shí)編號(hào),顯示到表單界面,選擇是否保存臨時(shí)編號(hào),否則進(jìn) 入步驟612,是則進(jìn)入步驟610 ;步驟610,用戶完成表單數(shù)據(jù)編輯,提交保存,觸發(fā)表單實(shí)例的編號(hào)持久化請(qǐng)求;步驟612,取消保存,流程結(jié)束;步驟614,編號(hào)生成模塊接收持久化狀態(tài)的編號(hào)生成請(qǐng)求后,鎖定流水號(hào)記錄表, 生成新的編號(hào);步驟616,將持久化編號(hào)保存到業(yè)務(wù)數(shù)據(jù)中;步驟618,更新最大流水記錄數(shù)字。在以上所述的表單編號(hào)生成和持久化過程中,編號(hào)生成模塊為未保存的表單實(shí)例 生成臨時(shí)編號(hào),臨時(shí)編號(hào)不會(huì)刷新流水號(hào)記錄;在表單實(shí)例被保存時(shí),編號(hào)生成模塊根據(jù)保 存時(shí)間點(diǎn)的流水號(hào)記錄生成新的持久化編號(hào),同時(shí)更新最大流水號(hào)記錄,通過數(shù)據(jù)鎖定策 略保證記錄在同一時(shí)間點(diǎn)只能被一個(gè)客戶端更新。這種根據(jù)表單狀態(tài)區(qū)分臨時(shí)編號(hào)和持久 化編號(hào)的方法,保證每個(gè)客戶端獲得的編號(hào)都基于實(shí)時(shí)更新的流水記錄數(shù)字生成,避免了 多個(gè)客戶端因?yàn)椴l(fā)操作而產(chǎn)生跳號(hào)、重號(hào)的情況。此外,因?yàn)楸韱螛I(yè)務(wù)處理復(fù)雜性以及軟件運(yùn)行環(huán)境的影響,即使在前期采用了各 種措施保證編號(hào)的有效性,也不能完全保證業(yè)務(wù)數(shù)據(jù)中不會(huì)出現(xiàn)異常的表單編號(hào)。如允許 手工改動(dòng)自動(dòng)生成的編號(hào)、非同一事務(wù)內(nèi)的數(shù)據(jù)保存、外部工具導(dǎo)入業(yè)務(wù)數(shù)據(jù)等非正常表 單流程的操作,都可能會(huì)導(dǎo)致表單業(yè)務(wù)數(shù)據(jù)表中的編號(hào)與維護(hù)的編號(hào)生成記錄數(shù)據(jù)不一致 的現(xiàn)象,這種數(shù)據(jù)的不一致往往會(huì)導(dǎo)致生成新的編號(hào)時(shí)得到異常數(shù)據(jù)。3.編號(hào)記錄同步模塊318本實(shí)施例還使用編號(hào)記錄同步技術(shù)消除業(yè)務(wù)數(shù)據(jù)與記錄數(shù)據(jù)的不一致性,即編號(hào) 生成模塊312的編號(hào)記錄同步模塊318通過對(duì)比表單提供的業(yè)務(wù)數(shù)據(jù),從表單數(shù)據(jù)的已存 編號(hào)中獲取最大流水號(hào),同步到流水號(hào)記錄表中。具體實(shí)現(xiàn)流程如圖7所示在步驟702,在特定的時(shí)機(jī)發(fā)起同步請(qǐng)求,提交當(dāng)前表單業(yè)務(wù)數(shù)據(jù)作為編號(hào)規(guī)則參 數(shù)值??赡艿耐秸?qǐng)求時(shí)機(jī)包括手工改動(dòng)已保存的編號(hào)時(shí)、批量導(dǎo)入數(shù)據(jù)完成時(shí)、自動(dòng)生成 的持久化編號(hào)與已保存編號(hào)重復(fù)等;在步驟704,編號(hào)記錄同步模塊接收到同步請(qǐng)求后,讀取表單的編號(hào)規(guī)則設(shè)置,從 當(dāng)前表單業(yè)務(wù)數(shù)據(jù)中提取編號(hào)規(guī)則參數(shù)值,生成編號(hào)同步數(shù)據(jù)匹配策略,包括編號(hào)前綴字 符串和流水依據(jù)字符串;
在步驟706,編號(hào)記錄同步模塊從表單業(yè)務(wù)數(shù)據(jù)中提取以編號(hào)前綴字符串起始的 已保存最大流水號(hào)數(shù)字;在步驟708,編號(hào)記錄同步模塊鎖定編號(hào)流水號(hào)記錄表,把得到的已保存最大流水 號(hào)數(shù)字更新到編號(hào)流水記錄表中后解鎖;在步驟710,編號(hào)記錄同步模塊通知表單處理模塊同步完成,可以繼續(xù)進(jìn)行編號(hào)生 成。經(jīng)過以上流程處理,表單業(yè)務(wù)表中的已保存編號(hào)與編號(hào)生成模塊維護(hù)的流水號(hào)記 錄值已保持一致,消除了因?yàn)椴町愒斐缮僧惓>幪?hào)的可能。4.編號(hào)生成控制選項(xiàng)設(shè)置模塊310同時(shí),針對(duì)編號(hào)規(guī)則制定模塊302中的編號(hào)生成控制選項(xiàng)設(shè)置模塊310的各種控 制選項(xiàng),編號(hào)生成模塊312中的編號(hào)生成過程控制模塊320可根據(jù)這些選項(xiàng)控制生成過程, 進(jìn)行適用性和有效性處理,包括手工修改選項(xiàng),控制是否可接受用戶對(duì)自動(dòng)生成的編號(hào)進(jìn)行手工改動(dòng);重號(hào)自動(dòng)重新生成選項(xiàng),控制是否在生成重復(fù)號(hào)碼時(shí)自動(dòng)同步并重新生成新號(hào) 碼;流水號(hào)數(shù)字起始值和步長,控制生成編號(hào)流水?dāng)?shù)字的開始值,以及每次新生成編 號(hào)自動(dòng)增加的幅度。綜合以上所述的編號(hào)規(guī)則制定模塊302和編號(hào)生成模塊312,本發(fā)明從規(guī)則設(shè)置 到編號(hào)生成的各個(gè)層面,通過有效的技術(shù)方案使表單編號(hào)生成處理的靈活性和有效性得到 了較大的改善。參考圖1至圖7的詳細(xì)描述,可以清楚理解本發(fā)明提供的一種表單編號(hào)生成方法 和系統(tǒng),根據(jù)本發(fā)明為表單業(yè)務(wù)提供了可靠的表單編號(hào)處理。在滿足不同行業(yè)、不同表單業(yè) 務(wù)類型、不同用戶等各方面形態(tài)各異的需求方面,本發(fā)明提供的表單編號(hào)生成方法和系統(tǒng) 都能通過靈活的組合和擴(kuò)展,滿足各種復(fù)雜的規(guī)則邏輯,實(shí)現(xiàn)了編號(hào)規(guī)則定義的適用性要 求;同時(shí),本發(fā)明提供的表單編號(hào)生成方法和系統(tǒng)通過各種保障技術(shù),確保即使在復(fù)雜的應(yīng) 用場(chǎng)景和運(yùn)行環(huán)境中,都能生成唯一、連續(xù)的編號(hào),達(dá)到了生成編號(hào)的有效性要求。以上所述僅為本發(fā)明的優(yōu)選實(shí)施例而已,并不用于限制本發(fā)明,對(duì)于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。
10
權(quán)利要求
一種表單編號(hào)生成方法,其特征在于,包括步驟102,根據(jù)用戶的輸入數(shù)據(jù),制定編號(hào)規(guī)則;步驟104,根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。
2.根據(jù)權(quán)利要求1所述的表單編號(hào)生成方法,其特征在于,所述輸入數(shù)據(jù)包括編號(hào)規(guī)則參數(shù),所述編號(hào)規(guī)則參數(shù)包括所述用戶指定的業(yè)務(wù)數(shù)據(jù);編號(hào)規(guī)則參數(shù)類型,用于確認(rèn)所述編號(hào)規(guī)則參數(shù)在所述編號(hào)中的角色,所述角色包括 前綴和/或流水依據(jù)。
3.根據(jù)權(quán)利要求1或2所述的表單編號(hào)生成方法,其特征在于,所述步驟104中,為每 張表單生成編號(hào)時(shí),同時(shí)根據(jù)所述每張表單的編號(hào)生成最大流水?dāng)?shù)字,以用于為下一張表 單生成編號(hào)。
4.根據(jù)權(quán)利要求3所述的表單編號(hào)生成方法,其特征在于,所述步驟104中,首先為所 述每張表單生成臨時(shí)編號(hào),根據(jù)所述用戶的選擇將所述臨時(shí)編號(hào)保存為編號(hào)時(shí),更新所述 最大流水?dāng)?shù)字。
5.根據(jù)權(quán)利要求4所述的表單編號(hào)生成方法,其特征在于,還包括步驟106,讀取指定表單的編號(hào)規(guī)則,根據(jù)所述指定表單的編號(hào)規(guī)則和所述指定表單對(duì) 應(yīng)的其他表單實(shí)例的編號(hào),更新所述最大流水?dāng)?shù)字,以用于為所述指定表單生成編號(hào)。
6.一種表單編號(hào)生成系統(tǒng),其特征在于,包括編號(hào)規(guī)則制定模塊,根據(jù)用戶的輸入數(shù)據(jù),制定編號(hào)規(guī)則;編號(hào)生成模塊,根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。
7.根據(jù)權(quán)利要求6所述的表單編號(hào)生成系統(tǒng),其特征在于,所述輸入數(shù)據(jù)包括編號(hào)規(guī)則參數(shù),所述編號(hào)規(guī)則參數(shù)包括所述用戶指定的業(yè)務(wù)數(shù)據(jù);編號(hào)規(guī)則參數(shù)類型,用于確認(rèn)所述編號(hào)規(guī)則參數(shù)在所述編號(hào)中的角色,所述角色包括 前綴和/或流水依據(jù)。
8.根據(jù)權(quán)利要求6或7所述的表單編號(hào)生成系統(tǒng),其特征在于,所述編號(hào)生成模塊為每 張表單生成編號(hào)時(shí),同時(shí)根據(jù)所述每張表單的編號(hào)生成最大流水?dāng)?shù)字,以用于為下一張表 單生成編號(hào)。
9.根據(jù)權(quán)利要求8所述的表單編號(hào)生成系統(tǒng),其特征在于,所述編號(hào)生成模塊首先為 所述每張表單生成臨時(shí)編號(hào),根據(jù)所述用戶的選擇將所述臨時(shí)編號(hào)保存為編號(hào)時(shí),更新所 述最大流水?dāng)?shù)字。
10.根據(jù)權(quán)利要求9所述的表單編號(hào)生成系統(tǒng),其特征在于,還包括同步模塊,讀取指定表單的編號(hào)規(guī)則,根據(jù)所述指定表單的編號(hào)規(guī)則和所述指定表單 對(duì)應(yīng)的其他表單實(shí)例的編號(hào),更新所述最大流水?dāng)?shù)字,以用于為所述指定表單生成編號(hào)。
全文摘要
本發(fā)明提供了一種表單編號(hào)生成方法,包括根據(jù)用戶的輸入數(shù)據(jù),制定編號(hào)規(guī)則;根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。本發(fā)明還提供了一種表單編號(hào)生成系統(tǒng),包括編號(hào)規(guī)則制定模塊,根據(jù)用戶的輸入數(shù)據(jù),制定編號(hào)規(guī)則;編號(hào)生成模塊,根據(jù)所述編號(hào)規(guī)則,為表單生成編號(hào)。根據(jù)本發(fā)明的實(shí)施例的技術(shù)方案,可以實(shí)現(xiàn)一種表單編號(hào)生成方法和系統(tǒng),實(shí)現(xiàn)了編號(hào)規(guī)則適用性,即根據(jù)不同用戶需求、不同應(yīng)用場(chǎng)景可靈活變更或擴(kuò)展編號(hào)規(guī)則,同時(shí)也保證了生成編號(hào)的有效性,即生成的編號(hào)符合預(yù)定義的編號(hào)規(guī)則,在業(yè)務(wù)數(shù)據(jù)中保證唯一性和連續(xù)性。
文檔編號(hào)G06F17/30GK101976240SQ20101028976
公開日2011年2月16日 申請(qǐng)日期2010年9月21日 優(yōu)先權(quán)日2010年9月21日
發(fā)明者陳鴻遠(yuǎn) 申請(qǐng)人:用友軟件股份有限公司