專利名稱:使用求散列的邏輯帳戶表的制作方法
使用求散列的邏輯帳戶表
背景技術:
本申請涉及使用求散列的邏輯帳戶表。背景企業(yè)資源規(guī)劃(ERP)系統(tǒng)管理組織的內(nèi)部和外部資源,包括有形資產(chǎn)、財務資源、 材料和人力資源。ERP系統(tǒng)促進組織的邊界內(nèi)部所有組織/商業(yè)功能之間的信息流動并管理到外部風險承擔者(stakeholder)的連接。ERP系統(tǒng)要么駐留在集中式服務器上要么跨提供服務并通過一個或多個網(wǎng)絡通信的模塊化硬件和軟件分布。分布式的設計可允許組織裝配來自不同供應商的模塊,而不需要將復雜的和昂貴的計算機系統(tǒng)的多個副本放置在不使用它們的全部能力的區(qū)域中。在傳統(tǒng)的ERP系統(tǒng)中,帳戶表(COA)表示維度的組合并可作為可能的組合的物理列表被持久存儲。這意味著帳戶代碼以及其他片段的所有有效組合也被持久存儲,這可采用數(shù)小時或數(shù)日來生成并可在某個數(shù)量的組合后變得不可能。某些系統(tǒng)將組合的其他片段移到實際COA的外部并作為替代,將它們簡單地添加為報告分層結構或在使用期間加標簽的其他數(shù)據(jù)片段。盡管這樣的機制可減少處理資源的需要,但是它們不允許許多公共部門公司期望的在單個組合處的所需的控制的粒度級。概述提供本發(fā)明內(nèi)容是為了以簡化的形式介紹將在以下具體實施方式
中進一步描述的一些概念。本發(fā)明內(nèi)容并非旨在標識所要求保護的主題的關鍵特征或必要特征,也不旨在用于幫助確定所要求保護的主題的范圍。各實施例旨在將COA維護為約束、準則和關系的邏輯集合,并不持久存儲任何有效的組合直到某個組合被第一次使用。當需要在單獨的組合上設置或引用任何業(yè)務邏輯或特性時,該組合可以被“即時”地物理地持久存儲,并接著變成可被以后使用的物理組合。根據(jù)某些實施例,散列值可與每個組合相關聯(lián),使得查找被簡化。通過閱讀下面的詳細描述并參考相關聯(lián)的附圖,這些及其他特點和優(yōu)點將變得顯而易見??梢岳斫?,前述一般描述和以下具體實施方式
均僅是說明性的,且不限制所要求保護的各方面。附圖簡要說明
圖1是示出其中可實現(xiàn)各實施例的示例聯(lián)網(wǎng)ERP環(huán)境的概念圖;圖2示出具有邏輯COA的ERP系統(tǒng)的各組件和模塊的概覽;圖3示出用于創(chuàng)建新的組合的示例消費者交互的序列圖;圖4是其中可實現(xiàn)根據(jù)各實施例的系統(tǒng)的聯(lián)網(wǎng)環(huán)境;圖5是其中可實現(xiàn)各實施例的示例計算操作環(huán)境的框圖;以及圖6示出用于根據(jù)各實施例的在ERP系統(tǒng)中采用使用求散列的邏輯COA的過程的流程圖。詳細描述如以上簡要描述的,邏輯COA可被存儲為元數(shù)據(jù)、約束、準則和關系的集合。COA組
4合可被生成為它們被第一次引用,并且散列碼可用于簡化檢查過程以查明組合是否已經(jīng)存在,并且如果組合已經(jīng)存在,則加載該組合。在以下詳細描述中,參考了構成詳細描述的一部分并作為說明示出各具體實施例或示例的附圖??山M合這些方面,可利用其他方面,并且可作出結構上的改變而不背離本發(fā)明的精神或范圍。因此,以下具體實施方式
并不旨在限制,并且本發(fā)明的范圍由所附權利要求及其等效方案來限定。雖然在結合在計算設備上的操作系統(tǒng)上運行的應用程序執(zhí)行的程序模塊的一般上下文中描述了各實施方式,但是本領域技術人員會認識到各方面也可以結合其他程序模塊實現(xiàn)。一般而言,程序模塊包括執(zhí)行特定任務或?qū)崿F(xiàn)特定抽象數(shù)據(jù)類型的例程、程序、組件、數(shù)據(jù)結構和其他類型的結構。此外,如本領域技術人員理解的,各實施例可以用其他計算機系統(tǒng)配置來實施,包括手持式設備、多處理器系統(tǒng)、基于微處理器或可編程消費者電子產(chǎn)品、小型計算機、大型計算機以及類似計算設備。各實施方式還能在任務由通過通信網(wǎng)絡鏈接的遠程處理設備來執(zhí)行的分布式計算環(huán)境中實現(xiàn)。在分布式計算環(huán)境中,程序模塊可位于本地和遠程存儲器存儲設備兩者中。各實施例可被實現(xiàn)為計算機實現(xiàn)的過程(方法)、計算系統(tǒng)、或者如計算機程序產(chǎn)品或計算機可讀介質(zhì)等制品。計算機程序產(chǎn)品可以是計算機系統(tǒng)可讀并且編碼包括用于使得計算機或計算系統(tǒng)執(zhí)行示例過程的指令的計算機程序的計算機存儲介質(zhì)。例如,計算機可讀存儲介質(zhì)可經(jīng)由易失性計算機存儲器、非易失性存儲器、硬盤驅(qū)動器、閃存驅(qū)動器、軟盤或緊致盤和類似存儲介質(zhì)中的一個或多個來實現(xiàn)。貫穿本說明書,術語“平臺”可以是用于企業(yè)資源規(guī)劃操作的軟件和硬件組件的組合。平臺的示例包括但不限于,在多個服務器上執(zhí)行的托管服務、在單個服務器上執(zhí)行的應用程序以及類似系統(tǒng)。術語“服務器”一般指通常在聯(lián)網(wǎng)環(huán)境中執(zhí)行一個或多個軟件程序的計算設備。然而,服務器還可被實現(xiàn)為視作網(wǎng)絡上的服務器的、在一個或多個計算設備上執(zhí)行的虛擬服務器(軟件程序)。以下提供這些技術和示例操作的更詳細的內(nèi)容。參考圖1,示出了其中可實現(xiàn)各實施例的示例聯(lián)網(wǎng)ERP環(huán)境的概念圖100。在服務器102上執(zhí)行的ERP應用104可以是分布式(或集中式)系統(tǒng)的一部分,并且提供帳戶、產(chǎn)品生命周期管理、人力資源、供應鏈管理、客戶關系管理、倉庫管理、以及之類的服務中的一個或多個。用戶可經(jīng)由在計算設備112上執(zhí)行的瀏覽器或客戶機應用114通過網(wǎng)絡110來訪問由ERP應用104提供的服務。在ERP系統(tǒng)中,帳戶表(COA)表示帳戶和其他片段的組合。 關系COA—般僅包括主帳戶,額外的片段被松散地相關以供稍后在過帳(posting)中使用。 在該情況下,這些值的多個有效組合可容易地達到萬億或更多,因此組合不能被持久存儲。 鑒于此,支持關系COA的系統(tǒng)一般允許在帳戶結構中的單個片段,即主帳戶。這樣的系統(tǒng)通常在商業(yè)部門業(yè)務中使用。另一方面,公共部門業(yè)務一般要求正式的COA不僅僅包括主帳戶,也包括額外的片段,因為它們需要在組合級別處控制并設置特性。這被稱為線性C0A。該方法將ERP應用限制到相對小數(shù)量的組合,因為它們在COA被定義時預先生成了所有的有效組合。各實施例使得單個實現(xiàn)能使用相同的業(yè)務邏輯既支持關系COA又支持線性C0A。 真線性COA 120可被設置,即使它可能生成非常大量的組合,因為組合不被創(chuàng)建直到第一次由業(yè)務邏輯使用。這可通過將COA 120存儲為元數(shù)據(jù)124、約束128、準則126以及關系 122的集合來實現(xiàn)。元數(shù)據(jù)IM定義哪些片段存在、它們所保持何種類型的數(shù)據(jù)、以及在COA 120的哪些結構中。約束1 和準則1 可接著基于哪些值存在于其他片段中來過濾出有效組合的集合。該集合可進一步通過關系122來過濾,關系122對值進行分類或?qū)⒅当舜酥g直接相關。這些組件可被存儲為系統(tǒng)中的元數(shù)據(jù),并且在定義時沒有物理組合被創(chuàng)建。在業(yè)務邏輯第一次需要引用物理組合(132)(要么跟蹤值要么對其設置特性)時, 組合可被物理地持久存儲(如果它沒有已經(jīng)存在)。至此以后,如果之后的業(yè)務邏輯需要引用一物理實例,則該物理實例可被引用。從消費者看來,所有有效組合在所有時間都邏輯地存在。物理地持久存儲組合的動作可通過類庫從消費者抽象,該類庫確保當值被請求時、該值物理地存在。在第一次使用(130)后被創(chuàng)建的有效組合的物理列表形成物理COA 132,其在大小上明顯地小于邏輯COA 120。組合可能是復雜的,包括多個表格中的數(shù)據(jù),并可以是無限長的。因此,確定一給定的組合是否還物理地存在的過程可以是非常消耗資源的。即使用戶知道組合存在,但是由于顯示組合的值可不需要唯一地標識它,找到該組合可同樣是資源昂貴的。為了提供快速查找過程,根據(jù)某些實施例可使用求散列機制。一旦用戶或業(yè)務邏輯在類分層結構中構建組合定義,類似哪些值在各個片段中、 正在使用哪些分層結構的項和/或其他值可被跟蹤。在消費者請求物理組合時,可使用預定義的散列來對數(shù)據(jù)一起求散列以獲得該組合的值。該唯一散列可被作為列(column)存儲在物理組合上。由此,查找某個組合涉及由散列值來索引的查找。自此,可通過遍歷數(shù)據(jù)庫中的標準外鍵關系來發(fā)現(xiàn)所有相關數(shù)據(jù)??墒褂迷诖嗣枋龅脑韥硎褂萌我鈹?shù)量的求散列機制。根據(jù)一示例實施例,可使用散列沖突的最小化可能結合相對小的存儲大小(20個字節(jié))來實現(xiàn)SHAl求散列。圖2示出具有邏輯COA的ERP系統(tǒng)的各組件和模塊的概覽的圖200。為了在物理 COA組合達到高數(shù)量時增強查找性能,根據(jù)某些實施例,可為每個組合計算散列并存儲在索引列中。散列可包括關于組合的鍵信息。鍵信息可包括每個片段的總數(shù)、標識符和/或值; 每個分層結構的總數(shù)、標識符和排序;與每個分層結構相關的多個部分;以及額外的信息。 散列可被計算為大的多字節(jié)散列并被存儲為根組合值表格上的索引。當非瞬態(tài)狀態(tài)被指定時,組合存儲可具有存儲的單個唯一組合。非瞬態(tài)組合是需要被永遠持久存儲并永遠不能被改變或刪除的組合,這是因為引用它的對象也永遠不能被改變或刪除,例外是在系統(tǒng)范圍的維度屬性值改變的情況下其可具有更新的顯示值和組合串。單個非瞬態(tài)組合可被多個非瞬態(tài)或瞬態(tài)對象引用。瞬態(tài)組合可被一個瞬態(tài)對象引用。由于存在一對一的引用,不需要用于瞬態(tài)組合的引用計數(shù)。由此,一旦源對象被刪除,瞬態(tài)組合也是被刪除的組合,這是因為沒有其他對象引用該瞬態(tài)組合了。因此,在保存過程期間,組合被標記來指示它是否是事務的一部分以及它是否是瞬態(tài)的?;谠撔畔ⅲ珼imensior^torage (維度存儲)類可對不同的組合執(zhí)行更新、刪除或插入動作。在根據(jù)各實施例的系統(tǒng)中,可存在兩個級別的瞬態(tài)指示器。第一個級別可以在主組合本身上。第二個級別可以在與某個分層結構相關聯(lián)的任何子組合上。瞬態(tài)主組合可包括既是瞬態(tài)又是非瞬態(tài)的子組合是可能的,這是因為瞬態(tài)主組合可嘗試重新使用任何非瞬態(tài)子組合(如果非瞬態(tài)子組合在它創(chuàng)建瞬態(tài)組合之前就存在)。如果主瞬態(tài)組合被刪除,只有瞬態(tài)子組合可被刪除。在圖200顯示的邏輯COA模型中,邏輯COA內(nèi)的元數(shù)據(jù)(維度元數(shù)據(jù)M0)存儲關于存在哪些維度屬性以及這些維度屬性的值被存儲在哪里的信息。元數(shù)據(jù)的邏輯模型可包括屬性維度屬性(Dimension Attributes) M8,其是可被跟蹤以用于維度系統(tǒng)的數(shù)據(jù)的種類。示例包括主帳戶、部門、目的、成本中心、運貨汽車、產(chǎn)品線等等。維度屬性可以是實體支持的或自定義列表。關于可用值和哪些列需要被用作來自實體的鍵、值和名稱的信息可被指定為對于屬性的平行外鍵。如果指定的實體可被分類,則維度屬性類別242可被用于跟蹤該維度屬性的有效分類。維度分層結構252是用于定義數(shù)據(jù)的哪些部分要被跟蹤的維度屬性248的經(jīng)排序的集合。它們可包括維度分層結構層250實例,其提供對維度屬性M8的排序和鏈接。某些維度分層結構可通過帳戶結構標記被標記為帳戶結構。為了避免去標準化并適當?shù)乇硎竞瘮?shù)依賴性,維度分層結構252和維度分層結構層250 二者需要被分解到完整的子類別中, 且外鍵被向下移動到子類別層。如果維度屬性被組織成集合(維度屬性集合觀0),則每個維度屬性集合項282可被鏈接到維度屬性248并向維度屬性集合284報告。維度屬性值276模型包括維度屬性 248的各個維度屬性值(278)。維度屬性值集合270包括各個維度屬性值集合項274,其被鏈接到維度屬性值278并向維度屬性值集合272報告。約束262允許用戶描述維度信息的有效組合。約束可被表示為分層結構樹(維度約束樹沈4),其中每個節(jié)點(顯示為維度約束節(jié)點沈6)包括指示該節(jié)點何時是有效的準則 (維度約束節(jié)點準則268)。隨著用戶開始輸入維度信息,任何具有無效約束的節(jié)點可變得無效,并且由此約束樹可被裁減來限制將來由用戶作出的值輸入。用于約束的準則可以是通配符或范圍準則,并可被跟蹤為維度約束節(jié)點準則268 的類型。顯式范圍和通配符可以被用于允許增強的執(zhí)行約束的評估。規(guī)則2M指定當使用特定帳戶根時要由用戶輸入的額外的分層結構和樹(應用維度規(guī)則的分層結構256)。這在模型中被表示為維度約束樹264和帳戶根之間的聯(lián)接(join)實體。當在事務中使用指定的帳戶根時,所有相關聯(lián)的維度分層結構252可被附到帳戶控制以用于用戶輸入。規(guī)則 254也包括維度規(guī)則準則258,該維度規(guī)則準則258和應用維度規(guī)則的分層結構256 —起饋送到維度規(guī)則260。圖3示出用于創(chuàng)建新的組合的示例消費者交互的序列圖。序列圖 300顯示當創(chuàng)建新的組合時,消費者與示例DimensionStorage (維度存儲)和 DimensionStorageSegment (維度存儲片段)類的交互。該示例顯示三個片段組合的條目, 其中前兩個片段表示分類帳(ledger)帳戶,最后一個片段是基于所選的分類帳帳戶由帳戶規(guī)則觸發(fā)的所添加的維度。序列圖300中的示例組合和組件僅用于示例性目的而提供。DimensionStorage (維度存儲)類可通過跟蹤分層結構和片段的經(jīng)排序的列表來支持對維度值的任何組合的存儲和檢索。它可隱藏跨不同的表格對任何值組合的事務性存儲的實現(xiàn)細節(jié)。存儲類的鍵功能可包括以下能力在知曉初始分層結構之前設置片段;將分層結構映射到多個片段,可選地增加所跟蹤的片段的總數(shù);通過絕對的從左到右索引來對片段進行設置/檢索/清除;執(zhí)行單個保存調(diào)用來持久存儲并返回引用組合的外鍵;管理瞬態(tài)和事務性特性;執(zhí)行單個尋找調(diào)用以基于組合外鍵檢索并水合(hydrate)所有分層結構和片段;當維度屬性值標識符被改變時,同步顯示值;當維度分層結構結構被改變時, 修補數(shù)據(jù);以及將現(xiàn)有的瞬態(tài)組合標記為非瞬態(tài)。Dimensior^torage (維度存儲)類對于任何規(guī)則、約束或企業(yè)相關限制而言是不可知的,并且假設所有確認已經(jīng)發(fā)生,所提供的組合是有效的并且能被持久存儲(或經(jīng)檢索的組合依然是有效的)。DimensionStoragekgment (維度存儲分段)類可為存儲在維度組合中的每個分段提供跟蹤的數(shù)據(jù)的兩個鍵部分的封裝。第一部分是用戶輸入到片段中并呈現(xiàn)在用戶界面上的字符串值。第二部分是對在輸入的初始時刻值被解析成的屬性值的外鍵。該類可簡單地被DimensionStorage (維度存儲)類用作數(shù)據(jù)容器。帳戶和維度值組合可存儲在事務上作為單個引用標識符進入組合表格。出現(xiàn)在帳戶表頁面上的任何片段可被分組到分類帳帳戶類型,并且剩余的片段可被分組到非分類帳帳戶類型。分層結構和約束樹可被定義在完整的帳戶結構上并且不是這些子分組中的一個。因此,對約束節(jié)點分組的外鍵可駐留在帳戶數(shù)量層處。用于組合存儲的物理模型和邏輯模型是顯著不同的,這是因為由于系統(tǒng)中的許多過程是基于帳戶信息的,查詢性能是優(yōu)先考慮的。此外,如果維度被廣泛地使用表明值存儲需要盡可能地緊湊而不傷害性能,則組合信息可能是系統(tǒng)中的較大的表格中的一個。組合散列是不存在于邏輯模型中的屬性值組合上的特性。每當用戶輸入完整的組合,下一查詢需要確定該完整的組合是否已經(jīng)存在并且如果是,則返回該組合的標識符。如以上討論的,可使用為組合計算的并存儲在索引列中的散列值來增強該可能資源昂貴的查詢。這允許對給定組合的快速查找??苫谟脩糨斎雭碛嬎闵⒘胁⒖蓤?zhí)行簡單的索引查找來查看值是否存在并返回其標識符。如序列圖300中顯示的,消費者302提供具有三個分段條目的維度存儲304 主帳戶,成本中心以及部門。這些被指定為維度存儲分段306、308和310。在輸入帳戶號以消除歧義后在所有三個維度存儲分段中指定初始分層結構(332)。在初始分段兩者完成后可由帳戶規(guī)則指定額外的分層結構(334)。在圖1到圖3中討論的示例組件、模塊、數(shù)據(jù)類型和交互僅僅是為了說明目的而非對實施例構建限制。可使用在此描述的原理使用其他組件、數(shù)據(jù)類型和配置來實現(xiàn)使用求散列的邏輯C0A。圖4是其中可實現(xiàn)各實施例的示例聯(lián)網(wǎng)實施例。提供企業(yè)資源規(guī)劃服務的平臺可生成并消費大量的組合的數(shù)據(jù),諸如帳戶的組合。這樣的平臺可通過在一個或多個服務器 414上或單個服務器(例如,web服務器416)上執(zhí)行的軟件(諸如,主控的服務)來實現(xiàn)。 平臺可與在諸如智能電話413、膝上計算機412或臺式計算機411( “客戶機設備”)之類的各個計算設備上的客戶機應用通過網(wǎng)絡410進行通信。作為平臺的一部分,ERP應用可將 COA維護為約束、準則和關系的邏輯集合,并不持久存儲任何有效的組合直到某個組合被第一次引用。在第一次使用后,組合可被物理地持久存儲,減少資源成本和存儲空間。ERP應用可進一步使用與每個組合相關聯(lián)的散列值,使得簡化查找。當請求物理組合時,可使用預定義的散列來對數(shù)據(jù)一起求散列以獲得組合的值。該散列可存儲在物理組合上作為列,使得查找某個組合涉及由散列值來索引的查找。與ERP操作相關聯(lián)的數(shù)據(jù)可直接或通過數(shù)據(jù)
8庫服務器418存儲在數(shù)據(jù)存儲419。網(wǎng)絡410可包括服務器、客戶端、因特網(wǎng)服務供應商、以及通信介質(zhì)的任何拓撲結構。根據(jù)各實施例的系統(tǒng)可具有靜態(tài)或動態(tài)拓撲結構。網(wǎng)絡410可包括諸如企業(yè)網(wǎng)絡等安全網(wǎng)絡、諸如無線開放網(wǎng)絡等非安全網(wǎng)絡、或因特網(wǎng)。網(wǎng)絡410還可通過諸如公共電話交換網(wǎng)(PSTN)或蜂窩網(wǎng)絡等其他網(wǎng)絡來協(xié)調(diào)通信。此外,網(wǎng)絡410可包括諸如藍牙或類似網(wǎng)絡等短程無線網(wǎng)絡。網(wǎng)絡410提供此處描述的節(jié)點之間的通信。作為示例而非限制,網(wǎng)絡410 可包括諸如聲學、RF、紅外線和其他無線介質(zhì)等無線介質(zhì)。可使用計算設備、應用、數(shù)據(jù)源和數(shù)據(jù)分布系統(tǒng)的許多其他配置來在ERP系統(tǒng)中實現(xiàn)使用求散列的邏輯C0A。此外,圖4中所討論的聯(lián)網(wǎng)環(huán)境僅用于說明目的。各實施方式不限于示例應用程序、模塊、或過程。圖5及相關聯(lián)的討論旨在提供對其中可實現(xiàn)各實施方式的合適計算環(huán)境的簡要概括描述。參考圖5,示出了根據(jù)各實施例的、諸如計算設備500等用于應用程序的示例計算操作環(huán)境的框圖。在一基本配置中,計算設備500可以是執(zhí)行ERP應用的服務器,并包括至少一個處理單元502和系統(tǒng)存儲器504。處理單元502可具有其自己的高速緩存存儲器或?qū)⑾到y(tǒng)存儲器504的專用部分用作高速緩存。計算設備500還可包括協(xié)作執(zhí)行程序的多個處理單元。取決于計算設備的確切配置和類型,系統(tǒng)存儲器504可以是易失性的(如 RAM)、非易失性的(如ROM、閃存等)或是兩者的某種組合。系統(tǒng)存儲器504通常包括適于控制平臺操作的操作系統(tǒng)505,諸如來自華盛頓州雷德蒙市的微軟公司的WINDOWS 操作系統(tǒng)。系統(tǒng)存儲器504還可包括一個或多個軟件應用,諸如程序模塊506和、ERP應用 522、以及帳戶處理模塊524。ERP應用522可提供以下中的一個或多個帳戶、產(chǎn)品生命周期管理、人力資源、供應鏈管理、客戶關系管理、倉庫管理、以及之類的服務。帳戶處理模塊5M可使用如先前討論的使用求散列的邏輯COA來生成、過濾、分析并存儲帳戶和帳戶組合數(shù)據(jù)。該基本配置在圖5中由虛線508內(nèi)的那些組件示出。計算設備500可具有附加特征或功能。例如,計算設備500還可包括附加數(shù)據(jù)存儲設備(可移動和/或不可移動),例如磁盤、光盤或磁帶。在圖5中通過可移動存儲509 和不可移動存儲510示出了這樣的附加存儲。計算機可讀介質(zhì)可包括以用于存儲諸如計算機可讀指令、數(shù)據(jù)結構、程序模塊或其它數(shù)據(jù)等信息的任何方法或技術實現(xiàn)的易失性和非易失性、可移動和不可移動介質(zhì)。系統(tǒng)存儲器504、可移動存儲509和不可移動存儲510都是計算機可讀介質(zhì)的示例。計算機可讀介質(zhì)包括,但不限于,RAM、R0M、EEPR0M、閃存或其它存儲器技術、CD-ROM、數(shù)字多功能盤(DVD)或其它光存儲、磁帶盒、磁帶、磁盤存儲或其它磁存儲設備、或能用于存儲所需信息且可以由計算設備500訪問的任何其它介質(zhì)。任何這樣的計算機可讀介質(zhì)都可以是計算設備500的一部分。計算設備500也可具有輸入設備512, 諸如鍵盤、鼠標、筆、語音輸入設備、觸摸輸入設備和類似輸入設備。還可包括輸出設備514, 諸如顯示器、揚聲器、打印機和其他類型的輸出設備。這些設備在本領域中公知并且無需在此處詳細討論。計算設備500還可包含通信連接516,該通信連接允許該設備諸如通過分布式計算環(huán)境中的有線或無線網(wǎng)絡、衛(wèi)星鏈接、蜂窩鏈接、短程網(wǎng)絡和類似機制來與其他設備518 進行通信。其他設備518可包括提供數(shù)據(jù)存儲服務、消費數(shù)據(jù)、以及之類的設備的計算機設
9備。通信連接516是通信介質(zhì)的一個示例。通信介質(zhì)可包括以諸如載波或其他傳輸機制等已調(diào)制數(shù)據(jù)信號來體現(xiàn)計算機可讀指令、數(shù)據(jù)結構、程序模塊或其他數(shù)據(jù),并包括任意信息傳送介質(zhì)。術語“已調(diào)制數(shù)據(jù)信號”指的是一個或多個特征以在信號中編碼信息的方式被設定或更改的信號。作為示例而非限制,通信介質(zhì)包括如有線網(wǎng)絡或直接線連接之類的有線介質(zhì),以及如聲學、RF、紅外及其他無線介質(zhì)之類的無線介質(zhì)。各示例實施例還包括各種方法。這些方法可以用任何數(shù)量的方式,包括本文中所描述的結構來實現(xiàn)。一種此類方式是通過本文中描述的類型的設備的機器操作。另一可任選方式是結合一個或多個人類操作者執(zhí)行該方法的各個操作中的某一些來執(zhí)行該方法的一個或多個操作。這些人類操作者無需彼此同在一處,而是其每一個可以僅與執(zhí)行程序的一部分的機器同在一處。圖6示出用于根據(jù)各實施例在ERP系統(tǒng)中使用使用求散列的邏輯COA的過程600 的流程圖。過程600可以在ERP系統(tǒng)的服務器中實現(xiàn)。過程600開始于操作610,其中生成COA作為元數(shù)據(jù)、約束、準則和關系的集合。元數(shù)據(jù)定義哪些片段存在、它們所保持何種類型的數(shù)據(jù)、以及在COA的哪些結構中。約束和準則基于哪些值存在于其他片段中來過濾有效組合的集合。該集合可進一步通過關系來過濾,關系對值進行分類或?qū)⒅当舜酥g直接相關。這些分量可作為元數(shù)據(jù)存儲在系統(tǒng)中。在操作620,可接收到針對組合的第一請求。第一請求可以是業(yè)務邏輯第一次需要引用組合來跟蹤值或在其上設置特性。在決定操作630,可作出組合是否作為物理組合存在的判斷。如果組合并非已經(jīng)物理地存在,其可在操作640被物理地持久存儲并在將來業(yè)務邏輯需要引用它時被引用。當請求物理組合時,可使用預定義的散列來將數(shù)據(jù)一起求散列以獲得組合的值。該唯一散列可被作為列存儲在物理組合上。在操作650,可(從消費者或邏輯過程)接收到針對被物理地持久存儲的組合的請求。作為響應,可在操作660執(zhí)行由散列值來索引的查找,以快速地找到組合。自此,可通過遍歷數(shù)據(jù)庫中的標準外鍵關系來發(fā)現(xiàn)所有相關數(shù)據(jù)。包括在過程600內(nèi)的各操作僅出于說明目的。根據(jù)各實施例的具有使用求散列的邏輯COA的ERP系統(tǒng)可以使用此處所述的各原理通過具有更少或更多步驟的相似過程、以及不同的操作次序來實現(xiàn)。以上說明書、示例和數(shù)據(jù)提供了對各實施方式組成的制造和使用的全面描述。盡管用結構特征和/或方法動作專用的語言描述了本主題,但可以理解,所附權利要求書中定義的主題不必限于上述具體特征或動作。相反,上述具體特征和動作是作為實現(xiàn)權利要求和各實施方式的示例形式而公開的。
權利要求
1.一種至少部分地在計算設備中執(zhí)行的用于在企業(yè)資源規(guī)劃(ERP)系統(tǒng)中提供邏輯帳戶表(COA)的方法,所述方法包括定義邏輯C0A,所述邏輯COA包括元數(shù)據(jù)、約束、準則和關系(610); 響應于對所述邏輯COA內(nèi)的組合的請求(620),確定所述組合是否存在于物理COA中 (630);如果所述組合不存在于所述物理COA中,則將所述組合持久存儲在所述物理COA中 (640);以及呈現(xiàn)所述物理C0A(132)中可用于后續(xù)請求的所述組合。
2.如權利要求1所述的方法,其特征在于,進一步包括 使用預定義的散列來對與所述組合相關聯(lián)的數(shù)據(jù)求散列;以及響應于對所述組合的后續(xù)請求,執(zhí)行散列值查找(660)。
3.如權利要求2所述的方法,其特征在于,所述散列值被存儲為所述物理COA132中的列。
4.如權利要求2所述的方法,其特征在于,對與所述組合相關聯(lián)的數(shù)據(jù)求散列包括 使用至少兩個不同的散列輸入值來對所述組合中至少兩個不同的結構求散列,并將所述散列輸入值組合成單個散列值以用于查找過程(660)。
5.如權利要求1所述的方法,其特征在于,對所述組合的請求包括以下之一來自消費過程的請求、業(yè)務邏輯模塊對所述組合的引用、以及由業(yè)務邏輯模塊作出的與所述組合相關聯(lián)的特性設置動作。
6.如權利要求1所述的方法,其特征在于,進一步包括將所述邏輯COA (120)作為元數(shù)據(jù)維護在所述ERP系統(tǒng)(104)中。
7.如權利要求1所述的方法,其特征在于,進一步包括 使用非瞬態(tài)組合的單個唯一標識符;以及使用每個瞬態(tài)組合的主組合的第一瞬態(tài)標識符以及與所述主組合的分層結構(332) 相關聯(lián)的子組合的一組二級瞬態(tài)標識符。
8.一種提供具有邏輯帳戶表(COA)的企業(yè)資源規(guī)劃(ERP)服務的計算設備,所述計算設備包括存儲器(504);耦合到所述存儲器的處理器(502),所述處理器執(zhí)行與所述ERP服務相關聯(lián)的ERP應用 (522),所述ERP應用被配置為定義邏輯C0A,所述邏輯COA包括元數(shù)據(jù)、約束、準則和關系(610); 響應于對所述邏輯COA內(nèi)的組合的請求(620),確定所述組合是否存在于物理COA中 (630);如果所述組合不存在于所述物理COA中,則將所述組合持久存儲在所述物理COA中 (640);使用預定義的散列來對與所述組合相關聯(lián)的數(shù)據(jù)求散列;以及響應于對所述組合的后續(xù)請求,通過散列值查找來呈現(xiàn)所述物C0A(132)中的可用于所述后續(xù)請求的所述組合。
9.如權利要求8所述的計算設備,其特征在于,所述物理COA(13 被存儲在被通信地耦合到所述計算設備的數(shù)據(jù)存儲中,并且所述散列值被存儲在所述物理COA中的所述組合的索引列中。
10.如權利要求8所述的計算設備,其特征在于,所述元數(shù)據(jù)(124)被配置為定義現(xiàn)有片段以及由所述現(xiàn)有片段維護的數(shù)據(jù)的類型,所述約束(128)被配置為基于其他片段中的現(xiàn)有值來過濾有效組合,所述準則(126)被配置為基于其他片段中的現(xiàn)有值來進一步過濾所述有效組合,所述關系(12 被配置為基于對值進行分類和將所述值彼此之間直接相關中的至少之一來進一步過濾所述有效組合,并且其中所述邏輯C0A(120)作為元數(shù)據(jù)被存儲在所述存儲器中。
11.如權利要求8所述的計算設備,其特征在于,所述約束(128)被表示為分層結構樹, 其中每個節(jié)點包括至少一個指示該節(jié)點何時有效的準則。
12.如權利要求11所述的計算設備,其特征在于,值組合(觀8)被存儲在事務上,作為單個引用標識符進入所述邏輯C0A(120)的組合表格中。
13.一種具有存儲在其上的用于至少部分地在計算設備中執(zhí)行的用于在企業(yè)資源規(guī)劃 (ERP)系統(tǒng)中提供邏輯帳戶表(COA)的指令的計算機可讀存儲介質(zhì),所述指令包括定義邏輯C0A,所述邏輯COA包括元數(shù)據(jù)、約束、準則和關系(610);響應于對所述邏輯COA內(nèi)的組合的請求(620),確定所述組合是否存在于物理COA中 (630);如果所述組合不存在于所述物理COA中,則將所述組合持久存儲在所述物理COA中 (640);使用至少兩個不同的預定義的散列對所述組合中的至少兩個不同的結構求散列;將所述散列組合成存儲在物理COA(132)中的所述組合的索引列中的單個散列值;以及響應于對所述組合的后續(xù)請求,通過散列值查找(660)來呈現(xiàn)所述物理COA中的可用于所述后續(xù)請求的所述組合。
14.如權利要求13所述的計算機可讀存儲介質(zhì),其特征在于,基于用戶輸入將所述散列計算為多字節(jié)值。
15.如權利要求13所述的計算機可讀存儲介質(zhì),其特征在于,從以下計算散列各個片段的總數(shù)、標識符和值中的至少之一;各個分層結構的總數(shù)、標識符和排序的至少之一;與各個分層結構相關的多個片段,以及瞬態(tài)狀態(tài)指示器。
全文摘要
本發(fā)明涉及使用求散列的邏輯帳戶表。將帳戶表(COA)維護為約束、準則和關系的邏輯集合,并不持久存儲任何有效的組合直到某個組合被第一次使用。當需要在單獨的組合上設置或引用任何業(yè)務邏輯或特性時,該組合被“即時”地物理地持久存儲,并接著變成可被以后使用的物理組合。散列值與每個組合相關聯(lián),使得查找被簡化。
文檔編號G06Q10/06GK102426680SQ201110358428
公開日2012年4月25日 申請日期2011年10月31日 優(yōu)先權日2010年11月1日
發(fā)明者J·安德森, J·希利, S·德格勒, W·弗蘭德森 申請人:微軟公司