專利名稱::多維企業(yè)軟件系統(tǒng)中的報表模板生成的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及軟件系統(tǒng),尤其涉及企業(yè)商業(yè)規(guī)劃的計算環(huán)境。
背景技術(shù):
:企業(yè)軟件系統(tǒng)通常是復(fù)雜的、大規(guī)模的系統(tǒng),其支持許多,例如幾百個或幾千個,并存的用戶。企業(yè)軟件系統(tǒng)的實例包括財務(wù)規(guī)劃系統(tǒng)、預(yù)算規(guī)劃系統(tǒng)、定單管理系統(tǒng)、庫存管理系統(tǒng)、銷售人員管理系統(tǒng)、商業(yè)智能工具、企業(yè)報表工具、項目和資源管理系統(tǒng)以及其它企業(yè)軟件系統(tǒng)。在許多情況下,用戶可能希望將數(shù)據(jù)從一個企業(yè)軟件系統(tǒng)發(fā)布到其它第三方軟件工具。例如,用戶可能希望將數(shù)據(jù)從財務(wù)規(guī)劃系統(tǒng)發(fā)布到報表和分析軟件。然而,諸如財務(wù)規(guī)劃系統(tǒng)的許多企業(yè)軟件系統(tǒng)以多維數(shù)據(jù)立方體(multidimensionaldatacube)形式存儲數(shù)據(jù)。經(jīng)常難于從企業(yè)軟件系統(tǒng)的多維環(huán)境將數(shù)據(jù)發(fā)布到報表軟件,而報表軟件通常將數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中。換句話說,企業(yè)軟件系統(tǒng)的多維特性通常與報表軟件采用的兩維關(guān)系格式相矛盾。例如,多維數(shù)據(jù)立方體由多個維度(dimension)和度量(measure)組成。通常,維度是數(shù)據(jù)立方體的結(jié)構(gòu)屬性,其中數(shù)據(jù)立方體是類目的有組織的層級。例如,地理維度可能包括國家、地區(qū)、州或省以及城市的級別。度量表示沿著維度的單元的數(shù)據(jù)值。在一些情形中,多維數(shù)據(jù)立方體中的度量的數(shù)據(jù)類型和格式沿著數(shù)據(jù)立方體的維度而變化。例如,一個定義的度量可能根據(jù)數(shù)據(jù)立方體的不同維度,從沿著一個維度的某些單元的字符串?dāng)?shù)據(jù)類型變化到不同單元的數(shù)字?jǐn)?shù)據(jù)類型。因此,經(jīng)常難于發(fā)布數(shù)據(jù)立方體并且正確地表示度量的格式和數(shù)據(jù)類型。結(jié)果是,許多傳統(tǒng)的企業(yè)系統(tǒng)以簡單的文本格式發(fā)布多維數(shù)據(jù)。然而,這妨礙了報表軟件對發(fā)布的數(shù)據(jù)進(jìn)行進(jìn)一步的計算和分析。
發(fā)明內(nèi)容總地說來,本發(fā)明致力于從企業(yè)軟件系統(tǒng)發(fā)布多維數(shù)據(jù)的技術(shù)。例如,本技術(shù)可以將多維數(shù)據(jù)發(fā)布到出于報表目的而優(yōu)化的關(guān)系數(shù)據(jù)庫模式(databaseschema)。例如,數(shù)據(jù)庫模式可以是如這里所述的關(guān)系星形模式。本技術(shù)可以包括基于多維數(shù)據(jù)立方體的組織而自動生成數(shù)據(jù)庫模式的過程,以及利用來自數(shù)據(jù)立方體的數(shù)據(jù)填充數(shù)據(jù)庫模式的過程。數(shù)據(jù)庫模式可以用來報告多維企業(yè)數(shù)據(jù),或者可以用作將企業(yè)數(shù)據(jù)向企業(yè)軟件系統(tǒng)中的數(shù)據(jù)倉庫移動的集結(jié)地。所述技術(shù)可以進(jìn)一步包括從數(shù)據(jù)庫模式中自動生成報表模板的過程。該報表模板用作一個框架,通過它可以容易地創(chuàng)建報表,以訪問和呈現(xiàn)發(fā)布到數(shù)據(jù)庫模式的多維企業(yè)數(shù)據(jù)。進(jìn)一步,描述了從數(shù)據(jù)庫模式自動再生報表模板的技術(shù),并使該再生的報表模板同步以包括施加到前一報表模板上的任何用戶變化。在一個實施例中,一種計算機實施的系統(tǒng)包括關(guān)系數(shù)據(jù)庫,用于根據(jù)關(guān)系數(shù)據(jù)庫模式存儲多維數(shù)據(jù)。所述系統(tǒng)還包括模板生成器,其基于所述數(shù)據(jù)庫模式產(chǎn)生報表模板,以及報表工具,其根據(jù)所述報表模板輸出報表,以呈現(xiàn)所述多維數(shù)據(jù)。在另一個實施例中,一種計算機實施的方法包括根據(jù)關(guān)系數(shù)據(jù)庫模式在關(guān)系數(shù)據(jù)庫中存儲多維數(shù)據(jù),基于所述數(shù)據(jù)庫模式生成報表模板,以及根據(jù)所述報表模板利用報表工具輸出報表,以呈現(xiàn)所述多維數(shù)據(jù)。在另一個實施例中,一種計算機可讀介質(zhì)包括指令。所述指令使可編程處理器基于數(shù)據(jù)庫模式生成基礎(chǔ)報表模板,所述數(shù)據(jù)庫模式將多維數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中;并且還從所述基礎(chǔ)報表模板生成用戶報表模板。所述指令還使所述處理器響應(yīng)于用戶請求的修改,更新所述用戶報表模板;保持活動日志,以記錄所請求的對所述用戶報表模板的修改;如果所述數(shù)據(jù)庫模式發(fā)生改變,則重新生成基礎(chǔ)報表模板以包括新的定義;以及對所述用戶報表模板重新應(yīng)用來自所述活動曰志的所述修改,以自動更新所述用戶報表模板。該技術(shù)可以提供一種或多種優(yōu)點。例如,該技術(shù)提供數(shù)據(jù)庫模式(如關(guān)系星形模式)的自動創(chuàng)建,其中所述數(shù)據(jù)庫模式能夠接受可在數(shù)據(jù)立方體中應(yīng)用的異構(gòu)的數(shù)據(jù)類型和異構(gòu)的格式。而且,所述模式可以被自動地配置以存儲解釋所包含的企業(yè)數(shù)據(jù)所需的元數(shù)據(jù)。通過這種方式,其它軟件應(yīng)用程序,如報表工具,可以容易地使用所述數(shù)據(jù)庫模式和其中包含的企業(yè)數(shù)據(jù),來分析和報告。本發(fā)明的一個或多個實施例的細(xì)節(jié)在下面的附圖和說明中闡明。本發(fā)明的其它特征、目的和優(yōu)點將從說明書和附圖以及權(quán)利要求中顯而易見。圖1是說明示例性計算環(huán)境的方框圖,其中多個用戶與企業(yè)規(guī)劃系統(tǒng)進(jìn)行交互;圖2是說明用于與圖1的企業(yè)規(guī)劃系統(tǒng)進(jìn)行交互的遠(yuǎn)程計算設(shè)備的一個實施例的方框圖3是進(jìn)一步詳細(xì)說明遠(yuǎn)程計算設(shè)備的某些軟件組件的方框圖;圖4是說明關(guān)系模式的一個實施例的圖,其中所述關(guān)系模式包括用于存儲與數(shù)據(jù)立方體有關(guān)的元數(shù)據(jù)以及與產(chǎn)生的模式有關(guān)的元數(shù)據(jù)表格的關(guān)系星形模式;圖5是說明關(guān)系星形模式的維度表的一個實施例的圖6是用于產(chǎn)生并填充數(shù)據(jù)庫模式以及用于從數(shù)據(jù)庫模式發(fā)布報表的示例性過程的概圖7A示出了簡單摘要維度層次的實例,圖7B描述了由模式生成器在發(fā)布期間產(chǎn)生的相應(yīng)的簡單摘要層次,以存儲在簡單總和表格中;圖8A示出了非簡單摘要維度層次的實例,其包括具有多個父節(jié)點的葉節(jié)點,圖8B描述了由模式生成器在發(fā)布期間產(chǎn)生的結(jié)果簡單摘要層次,以存儲在簡單總和表格中;圖9A示出了非簡單摘要維度層次的實例,圖9B描述了由模式生成器在發(fā)布期間產(chǎn)生的結(jié)果簡單摘要層次,以存儲在簡單總和表格中;圖10A示出了非簡單摘要層次的實例,其包括非簡單摘要的子層次,圖10B描述了由模式生成器在發(fā)布期間產(chǎn)生的結(jié)果簡單摘要層次,以存儲在簡單總和表格中;圖11示出了利用圖6中所示的過程為一個數(shù)據(jù)立方體創(chuàng)建的事實表的實例;圖12是說明產(chǎn)生報表模板的示例性過程的流程圖;圖13是說明更新報表模板的示例性過程的流程圖;圖14是示例性用戶界面的屏幕說明,用戶利用該用戶界面進(jìn)行動作以啟動多維數(shù)據(jù)的發(fā)布;圖15是示例性用戶界面的屏幕說明,用戶利用該用戶界面,為可用的數(shù)據(jù)立方體的任何一個選擇一個或多個維度;圖16是示例性用戶界面的屏幕說明,用戶可以利用該用戶界面選擇不同的選項,以創(chuàng)建列;圖17是由模式生成器產(chǎn)生的示例性用戶界面的屏幕說明;圖18是模板生成器的示例性用戶界面的屏幕說明;圖19是模板生成器的另一示例性用戶界面的屏幕說明;圖20是模板生成器的另一示例性用戶界面的屏幕說明;圖21是模板生成器的另一示例性用戶界面的屏幕說明。具體實施例方式圖1是說明示例性企業(yè)4的方框圖,該示例性企業(yè)4具有計算環(huán)境10,其中多個用戶12A-12N(統(tǒng)稱為"用戶12")與企業(yè)規(guī)劃系統(tǒng)14相互作用。在圖1所示的系統(tǒng)中,企業(yè)系統(tǒng)14通過網(wǎng)絡(luò)18可通信地連接到多個計算設(shè)備16A-16E(統(tǒng)稱為"計算設(shè)備16")。用戶12與它們各自的計算設(shè)備16相互作用,以訪問企業(yè)規(guī)劃系統(tǒng)14。出于示例的目的,本發(fā)明參考企業(yè)規(guī)劃系統(tǒng),如企業(yè)財務(wù)或預(yù)算規(guī)劃系統(tǒng)來進(jìn)行描述。這里描述的技術(shù)可以被容易地應(yīng)用于其它使用多維數(shù)據(jù)的軟件系統(tǒng),包括其它大型企業(yè)軟件系統(tǒng)。其它企業(yè)軟件系統(tǒng)的實例包括定單管理系統(tǒng)、庫存管理系統(tǒng)、銷售人員管理系統(tǒng)、商業(yè)智能工具、企業(yè)報表工具、項目和資源管理系統(tǒng),以及其它企業(yè)軟件系統(tǒng)。通常,企業(yè)規(guī)劃系統(tǒng)14能夠使企業(yè)的自頂向下的目標(biāo)和詳細(xì)的自底向上的預(yù)測相一致并實現(xiàn)自動化。企業(yè)規(guī)劃系統(tǒng)14實施并管理企業(yè)規(guī)劃過程,其通常包括三個功能(l)建模(modeling),(2)貢獻(xiàn)(contribution),以及(3)—致(reconciliation)。最初,高等級的企業(yè)管理者或執(zhí)行者,稱為分析師,為企業(yè)定義組織的目標(biāo),并建立規(guī)劃模板。分析師可能包括,例如財務(wù)分析師,如主要的財務(wù)官員、高級財務(wù)分析師或產(chǎn)品和銷售分析師。更具體而言,分析師開發(fā)具有多個分層布置的節(jié)點的模板,其中所述節(jié)點代表組織(如商業(yè)單位或部門)中的各種成本中心。然后分析師為組織層次中的每個節(jié)點指定共同的目標(biāo)數(shù)據(jù)。共同的目標(biāo)數(shù)據(jù)根據(jù)企業(yè)執(zhí)行的特定企業(yè)規(guī)劃活動而可能包括財務(wù)數(shù)據(jù)、稅務(wù)數(shù)據(jù)、定單數(shù)據(jù)、庫存數(shù)據(jù)等。然后分析師為每個節(jié)點分配一個或多個企業(yè)用戶12,如管理員,超級用戶,銷售代表,實驗室管理員等,他們負(fù)責(zé)對應(yīng)于該節(jié)點的成本中心的企業(yè)規(guī)劃。每個企業(yè)用戶12可以被指定為提供規(guī)劃數(shù)據(jù)給企業(yè)規(guī)劃系統(tǒng)14的貢獻(xiàn)者(contributor)、接受或拒絕來自貢獻(xiàn)者的貢獻(xiàn)的審閱者,或兩者。貢獻(xiàn)者和審閱者可以是企業(yè)內(nèi)或連接到網(wǎng)絡(luò)18的其它實體內(nèi)的授權(quán)用戶,如供應(yīng)商或客戶。被指定為貢獻(xiàn)者的企業(yè)用戶12與企業(yè)規(guī)劃系統(tǒng)14相互作用,以貢獻(xiàn)數(shù)據(jù)的形式輸入詳細(xì)的預(yù)測。如上所述,企業(yè)用戶12可以根據(jù)企業(yè)執(zhí)行的特定企業(yè)規(guī)劃活動而提供詳細(xì)的財務(wù)預(yù)測、稅務(wù)預(yù)測、定單預(yù)測、庫存預(yù)測、估計的資源需求等。企業(yè)規(guī)劃系統(tǒng)14自動使預(yù)測數(shù)據(jù)與分析師所提供的共同的目標(biāo)數(shù)據(jù)相一致。尤其是,企業(yè)規(guī)劃系統(tǒng)14依照定義的模板(即,由分析師創(chuàng)建的企業(yè)規(guī)劃模板)進(jìn)行操作,以提供具有多個一致等級的分層的規(guī)劃過程。當(dāng)每個貢獻(xiàn)者提供他或她的貢獻(xiàn)數(shù)據(jù)(一般稱為"企業(yè)數(shù)據(jù)")時,企業(yè)規(guī)劃系統(tǒng)14實時地自動聚合整個企業(yè)的貢獻(xiàn)數(shù)據(jù),并向被指定為與企業(yè)的更高等級有關(guān)的審閱者的企業(yè)用戶12提供對該聚合數(shù)據(jù)的訪問。尤其是,當(dāng)從貢獻(xiàn)者接收到貢獻(xiàn)數(shù)據(jù)時,企業(yè)規(guī)劃系統(tǒng)14標(biāo)識受新接收的貢獻(xiàn)數(shù)據(jù)影響的組織模板的所有更高等級,并實時計算每個等級的新的聚合總數(shù)。從而,審閱者在企業(yè)規(guī)劃會話期間實時査看整個企業(yè)的聚合數(shù)據(jù)。在每個等級,企業(yè)規(guī)劃系統(tǒng)14確保企業(yè)模板的節(jié)點所定義的審閱者使目標(biāo)數(shù)據(jù)與預(yù)測數(shù)據(jù)相一致。每個審閱者例如可以考慮到由分析師提供的共同目標(biāo)而拒絕或接受貢獻(xiàn)數(shù)據(jù)。這個過程持續(xù),直到貢獻(xiàn)數(shù)據(jù)最終被組織層次中的最高等級核準(zhǔn),從而確保來自貢獻(xiàn)者的貢獻(xiàn)數(shù)據(jù)與分析師提供的共同目標(biāo)相一致。通過這種方式,企業(yè)規(guī)劃系統(tǒng)14可以提供比傳統(tǒng)技術(shù)所提供的更精確的企業(yè)規(guī)劃。例如,企業(yè)規(guī)劃系統(tǒng)14可以通過使得組織能夠?qū)⒐餐0搴徒M織目標(biāo)與詳細(xì)預(yù)測相一致來提高企業(yè)規(guī)劃的準(zhǔn)確性和可預(yù)測性。該技術(shù)可以提供--個平臺,其傳遞合作的、實時的規(guī)劃能力,而不需要對預(yù)測進(jìn)行離線整理和聚合。因為企業(yè)規(guī)劃系統(tǒng)14能夠?qū)崟r聚合貢獻(xiàn)數(shù)據(jù),所以可以向所有的用戶12呈現(xiàn)精確的、最新的數(shù)字。此外,企業(yè)規(guī)劃系統(tǒng)14的構(gòu)造可以容易地按比例縮放以應(yīng)用于幾千個用戶,并可以被設(shè)計為圍繞最好的規(guī)劃實踐。此外,該技術(shù)可以使企業(yè)用戶12(即貢獻(xiàn)者和審閱者)更多地參與,從而允許縮短精確的規(guī)劃周期。企業(yè)用戶12可以使用多種計算設(shè)備通過網(wǎng)絡(luò)18與企業(yè)規(guī)劃系統(tǒng)14相互作用。例如,企業(yè)甩戶可以使用膝上型電腦、桌上型電腦等運行web瀏覽器(如來自華盛頓州雷蒙德市的微軟公司的InternetExplorerTM)來與企業(yè)規(guī)劃系統(tǒng)14相互作用?;蛘撸髽I(yè)用戶可以使用個人數(shù)字助理(PDA),如來自加利福尼亞州圣克拉拉市的Palm公司的PalmTM管理器、可使用web的蜂窩電話,或類似裝置。網(wǎng)絡(luò)18代表任何通信網(wǎng)絡(luò),諸如基于分組的數(shù)字網(wǎng)絡(luò)如因特網(wǎng)。通過這種方式,系統(tǒng)10能夠容易地縮放以適合大企業(yè)。企業(yè)用戶12可以通過局域網(wǎng)直接訪問企業(yè)規(guī)劃系統(tǒng)14,或者可以通過虛擬專用網(wǎng)、遠(yuǎn)程撥號或類似的遠(yuǎn)程訪問通信機制來遠(yuǎn)程訪問企業(yè)規(guī)劃系統(tǒng)14。企業(yè)規(guī)劃系統(tǒng)14可以使用"刪減"過程,其中根據(jù)定義的企業(yè)模板為每個用戶12將多維數(shù)據(jù)存儲"切片"。在這個過程期間,企業(yè)規(guī)劃系統(tǒng)14確定分配給用戶12(作為貢獻(xiàn)者或?qū)忛喺?的定義的模塊的區(qū)域,并基于該分配將數(shù)據(jù)存儲"切片"。當(dāng)給定用戶12登錄并繼續(xù)進(jìn)行企業(yè)規(guī)劃活動時,企業(yè)規(guī)劃系統(tǒng)14將各個數(shù)據(jù)切片傳送給各個計算設(shè)備16,以經(jīng)由擴展的電子數(shù)據(jù)表應(yīng)用程序顯示給用戶。通過這種方式,企業(yè)規(guī)劃系統(tǒng)14不需要將整個模板傳送到每個用戶12,從而減少通信時間以及資源需求。相反,每個用戶12只接收相關(guān)的信息。用戶12與計算設(shè)備16相互作用,以獲取貢獻(xiàn)數(shù)據(jù),并使貢獻(xiàn)數(shù)據(jù)與組織目標(biāo)一致。如這里所述的,企業(yè)規(guī)劃系統(tǒng)14自動產(chǎn)生數(shù)據(jù)庫模式,用于發(fā)布或另外輸出多維數(shù)據(jù)到關(guān)系數(shù)據(jù)庫。企業(yè)規(guī)劃系統(tǒng)14基于發(fā)布的多維企業(yè)規(guī)劃數(shù)據(jù)的組織來產(chǎn)生數(shù)據(jù)庫模式。如下面進(jìn)-步詳細(xì)描述的,數(shù)據(jù)庫模式可以是關(guān)系星形模式,其被優(yōu)化以以關(guān)系形式存儲多維數(shù)據(jù)。當(dāng)創(chuàng)建了數(shù)據(jù)庫模式時,企業(yè)規(guī)劃系統(tǒng)14利用多維規(guī)劃數(shù)據(jù)填充該數(shù)據(jù)庫模式。然后其它軟件應(yīng)用程序可以使用該發(fā)布的規(guī)劃數(shù)據(jù)。例如,數(shù)據(jù)庫模式可以用作將企業(yè)數(shù)據(jù)移動到數(shù)據(jù)倉庫的集結(jié)地。作為另一個實例,數(shù)據(jù)庫模式可以基于多維企業(yè)數(shù)據(jù)被用來產(chǎn)生報表17。如進(jìn)一步描述的,企業(yè)規(guī)劃系統(tǒng)14可以從數(shù)據(jù)庫模式自動生成報表模板。報表模板用作框架,根據(jù)該框架,可以容易地從發(fā)布給數(shù)據(jù)庫模式的多維企業(yè)數(shù)據(jù)產(chǎn)生報表17。企業(yè)規(guī)劃系統(tǒng)14從數(shù)據(jù)庫模式自動再生成報表模板,并使該再生成的報表模板同步以包含施加到前一報表模板的任意變化。圖2是說明計算設(shè)備16A的一個實施例的方框圖,計算設(shè)備16A包括當(dāng)用戶12A(如貢獻(xiàn)者或?qū)忛喺?操作時在其上執(zhí)行的各種軟件模塊。在該示例性實施例中,計算設(shè)備16A包括web瀏覽器20,計算引擎22,以及一個或多個數(shù)據(jù)立方體24。此外,計算設(shè)備16A包括發(fā)布模塊26,模式生成器30,模板生成器32,以及報表工具34。在一個實施例中,計算引擎22包括前部的計算引擎22,其被包圍在ActiveX對象中,其中ActiveX對象是以基于數(shù)組的語言建立的。在企業(yè)規(guī)劃的實例中,用戶12A可以與vveb瀏覽器20相互作用,以進(jìn)入并操縱預(yù)算或預(yù)測數(shù)據(jù)。數(shù)據(jù)立方體24包括規(guī)劃數(shù)據(jù),其可以包括自頂向下的目標(biāo)和自底向上的貢獻(xiàn)數(shù)據(jù)。計算引擎22和數(shù)據(jù)立方體24為由計算設(shè)備16A本地執(zhí)行的企業(yè)規(guī)劃會話進(jìn)行各種計算。因此,在這個實例中,貢獻(xiàn)者可以修改他或她的各個貢獻(xiàn)數(shù)據(jù),并進(jìn)行企業(yè)規(guī)劃過程必需的計算,而不必訪問企業(yè)規(guī)劃系統(tǒng)14。換句話說,計算引擎22和數(shù)據(jù)立方體24可以通過計算設(shè)備16A本地保持(如作為ActiveX組件)。用戶12A可以本地保存規(guī)劃數(shù)據(jù),并提交規(guī)劃數(shù)據(jù)給企業(yè)規(guī)劃系統(tǒng)14,以與來自其他用戶的規(guī)劃數(shù)據(jù)進(jìn)行聚合。企業(yè)規(guī)劃系統(tǒng)14自動地實時聚合整個企業(yè)4的貢獻(xiàn)數(shù)據(jù),并向與企業(yè)的更高等級有關(guān)的審閱者提供對該聚合的數(shù)據(jù)的訪問。這個過程持續(xù),直到貢獻(xiàn)數(shù)據(jù)最終被與組織層次的最高等級有關(guān)的審閱者核準(zhǔn),從而確保來自貢獻(xiàn)者的貢獻(xiàn)數(shù)據(jù)與共同目標(biāo)相一致。在其它實施例中,計算引擎22和數(shù)據(jù)立方體24可以只在企業(yè)規(guī)劃系統(tǒng)14中保持,并本地安裝在計算設(shè)備16上。通常,發(fā)布模塊26代表從一個或多個數(shù)據(jù)立方體24發(fā)布多維數(shù)據(jù)的軟件模塊。用戶,如用戶12A,與發(fā)布模塊26相互作用,以啟動發(fā)布過程。在這個過程期間,用戶12A從一個或多個數(shù)據(jù)立方體24中選擇一個或多個維度。模式生成器30自動產(chǎn)生數(shù)據(jù)庫模式,以以關(guān)系數(shù)據(jù)庫的形式存儲該選擇的多維數(shù)據(jù)。特別地,模式生成器30分析數(shù)據(jù)立方體24和組成該立方體的維度,以確定需要在該數(shù)據(jù)庫模式中創(chuàng)建哪一個關(guān)系表格。模板生成器32基于數(shù)據(jù)庫模式自動生成報表模板。報表工具34根據(jù)該報表模板輸出報表17,以呈現(xiàn)所發(fā)布的多維數(shù)據(jù)。圖3是進(jìn)一步詳細(xì)說明遠(yuǎn)程計算設(shè)備的某些軟件組件的方框圖。如圖3中說明的,發(fā)布模塊26代表軟件模塊,用戶,如用戶12A,利用該發(fā)布模塊26來發(fā)布來自一個或多個數(shù)據(jù)立方體24的多維數(shù)據(jù)。特別地,模式生成器30自動產(chǎn)生數(shù)據(jù)庫模式36,以以關(guān)系數(shù)據(jù)庫的形式存儲該多維數(shù)據(jù)。通常,數(shù)據(jù)庫模式存儲兩種形式的元數(shù)據(jù)。第一種類型包括關(guān)于數(shù)據(jù)立方體24的元數(shù)據(jù)。特別地,元數(shù)據(jù)為數(shù)據(jù)立方體24中的度量定義了數(shù)據(jù)類型和格式。結(jié)果是,數(shù)據(jù)庫模式36支持異構(gòu)的數(shù)據(jù)類型和異構(gòu)的格式。由數(shù)據(jù)庫模式36存儲的元數(shù)據(jù)的第二種類型是描述該模式自身的元數(shù)據(jù)。這種第二類型的元數(shù)據(jù)可以允許開發(fā)者或自動工具增強對數(shù)據(jù)庫模式36的解釋。作為一個實例,用戶12A可以與模板生成器32相互作用,以隨后修改元數(shù)據(jù),以向所發(fā)布的維度增加元素或等級、改變應(yīng)用到所發(fā)布的多維數(shù)據(jù)的安全設(shè)置,或進(jìn)行其它修改。為了允許對異構(gòu)的數(shù)據(jù)進(jìn)行計算,模式生成器30可以產(chǎn)生數(shù)據(jù)庫模式36,以存儲由數(shù)據(jù)立方體24中的每個度量所代表的所有數(shù)據(jù)類型。例如,模式生成器30可以為每個度量創(chuàng)建多個列。作為一個實例,模式生成器30可以為每個度量創(chuàng)建三個列第一列存儲度量的浮點值,第二列存儲度量的日期值,第三列存儲度量的文本值。發(fā)布模塊26用多維數(shù)據(jù)填充數(shù)據(jù)庫模式36。當(dāng)發(fā)布度量的特定值時,發(fā)布模塊26確定數(shù)據(jù)類型并將該數(shù)值存儲在數(shù)據(jù)庫模式36的適當(dāng)列中。模板生成器32基于數(shù)據(jù)庫模式36自動生成基礎(chǔ)報表模板40。模板生成器32可以進(jìn)一步允許用戶12A修改基礎(chǔ)報表模板38,以產(chǎn)生用戶報表模板38。當(dāng)生成報表17以呈現(xiàn)所發(fā)布的多維數(shù)據(jù)時,用戶報表模板38例如可以定義額外的計算或格式屬性,以供報表工具34使用。模板生成器32可以保持活動日志22,以記錄對基礎(chǔ)模板40的修改,從而隨后再次生成用戶報表模板38。圖4是說明數(shù)據(jù)庫模式36的一個實施例的圖表。在說明的實施例中,數(shù)據(jù)庫模式36包括用于存儲元數(shù)據(jù)的元數(shù)據(jù)區(qū)域50和用于存儲所發(fā)布的多維數(shù)據(jù)的數(shù)據(jù)區(qū)域52。在圖4的實例中,模式生成器30以關(guān)系星形模式的形式為每個數(shù)據(jù)發(fā)布自動組織數(shù)據(jù)區(qū)域52。數(shù)據(jù)區(qū)域52被稱為"星形模式",因為這種模式的整體關(guān)系圖類似于星形,如圖4中所示,其具有從中心表格星形輻射的"點"。特別地,星形的中心由大的事實表68組成,并且星形的點是維度表62A-62N("維度表62")。對于來自數(shù)據(jù)立方體24的多維數(shù)據(jù)的每個發(fā)布,數(shù)據(jù)庫模式36更新元數(shù)據(jù)區(qū)域50,并生成新的星形模式。因此,每個發(fā)布的特征在于具有非常大的事實表68以及大量較小的維度表62的星形模式,其屮事實表68包含基本信息(即,數(shù)據(jù)立方體關(guān)鍵字和度量)。維度表62可以被看作査找表,它們中的每個包含關(guān)于事實表中的特定數(shù)據(jù)立方體的維度元素。作為一個實例,維度A可以代表地理銷售區(qū)域,維度B可以代表產(chǎn)品,維度C可以代表時間,維度D可以代表版本。通常,元數(shù)據(jù)區(qū)域50存儲關(guān)于所發(fā)布的數(shù)據(jù)立方體24的元數(shù)據(jù)。特別地,元數(shù)據(jù)定義了已經(jīng)發(fā)布的數(shù)據(jù)立方體24的任一個中的度量的數(shù)據(jù)類型和格式。元數(shù)據(jù)區(qū)域50還存儲描述數(shù)據(jù)庫模式36自身的元數(shù)據(jù)。這個元數(shù)據(jù)可以允許開發(fā)者或自動工具增強對數(shù)據(jù)庫模式36的解釋。作為一個實例,報表工具34和模板生成器32可以使用描述數(shù)據(jù)庫模式36的元數(shù)據(jù),以增強對所發(fā)布的多維數(shù)據(jù)的解釋和報告。在這個實例中,元數(shù)據(jù)區(qū)域50包括應(yīng)用對象表格64,應(yīng)用列表格66以及維度格式表格63。應(yīng)用對象表格64包含描述不同的維度表62和事實表68的元數(shù)據(jù),其中所述不同的維度表62和事實表68由模式生成器30自動創(chuàng)建,以發(fā)布所選擇的多維數(shù)據(jù)。特別地,應(yīng)用對象表格64的每行包含所發(fā)布的不同的多維對象的元數(shù)據(jù)并且尤其是存儲所述多維對象的維度表62的元數(shù)據(jù)。表格1列出了應(yīng)用對舉表格64的一個實施例的示例性列。表格l<table>tableseeoriginaldocumentpage16</column></row><table><table>tableseeoriginaldocumentpage17</column></row><table>表格2<table>tableseeoriginaldocumentpage17</column></row><table>列id這是與包含在用于發(fā)布規(guī)劃對象的表格中的列相關(guān)的GUID。對象類型id包含包含該列的表格的對象類型id。列類型id包含用于該列的獨立的數(shù)據(jù)類型標(biāo)識符。該標(biāo)識符例如可以是TEXT_VALUE或FLOAT—VALUE。列順序包含在用于發(fā)布規(guī)劃對象的表格中該列的順序。這被用來對列的顯示進(jìn)行排序。邏輯數(shù)據(jù)類型包含用于該列的RDBMS獨立類型標(biāo)識符。維度格式表格63包含描述不同的事實表68的度量列的數(shù)據(jù)類型和格式信息的元數(shù)據(jù)。尤其是,維度格式表格63的每一行描述度量列的數(shù)據(jù)類型和它的格式的屬性,如數(shù)字值的縮放比例。表格3列出了維度格式表格63的一個實施例的示例性列。表格3<table>tableseeoriginaldocumentpage18</column></row><table>圖5說明了用于單個維度(如在該實例中的維度62A)的數(shù)據(jù)庫模式36的示例性組織結(jié)構(gòu)。當(dāng)形成數(shù)據(jù)庫模式36時,模式生成器30檢查組成立方體的維度,并以三種形式輸出維度信息。首先,模式生成器30創(chuàng)建項目表格70,其列出被發(fā)布的所有維度的所有元素。特別地,項目表格70提供維度的平面列表而沒有層次信息。在一個實施例中,項目表格70的每行能夠存儲元素名稱、容量、全球唯一標(biāo)識符(guid)、整數(shù)標(biāo)識符和在維度中的顯示順序。項目表格70可以被用來生成報表17,用于顯示立方體中的所有數(shù)據(jù),而不需要利用報表再次創(chuàng)建任何計算。換句話說,從葉元素到根元素的維度的所有元素都呈現(xiàn)在項目表格70中。接下來,模式生成器30生成簡單總和表格72。簡單總和表格72包含分層形式的維度信息。特別地,簡單總和表格72提供維度層次,其保證聚合到數(shù)據(jù)立方體中的正確總數(shù)。換句話說,報表工具34可以在生成報表17時應(yīng)用層次的較低等級的和操作,并且相同的總數(shù)將被認(rèn)為是數(shù)據(jù)立方體中的總數(shù)。隨后,報表工具34可以使用簡單總和表格72再次創(chuàng)建數(shù)據(jù)立方體中的某些計算。這允許報表17操縱總和,并對公布的數(shù)據(jù)進(jìn)行進(jìn)一步的分析。為了使模式生成器30以保證提供正確總數(shù)的方式產(chǎn)生簡單總和表格72,模式生成器可以除去維度的一些元素,如這里參考圖7A-10B描述的。最后,模式生成器30生成計算的層次表格74,其以分層形式包含全部維度信息。換句話說,提供計算的層次以給出盡可能多的信息。然而,維度層次沒有保證可被聚合。特別地,報表17中的計算可以不必提供相同的總數(shù),因為報表工具34很可能具有比企業(yè)規(guī)劃系統(tǒng)14更有限的計算引擎。圖6是說明在圖3中說明的軟件組件的示例性操作的流程圖。最初,用戶,如用戶12A,與發(fā)布模塊26相互作用,以啟動發(fā)布過程。特別地,發(fā)布模塊26提供用戶界面,用戶12A利用該用戶界面標(biāo)識數(shù)據(jù)立方體24中的一個,并選擇所標(biāo)識的數(shù)據(jù)立方體的維度中的一個或多個以用于發(fā)布(80)。如下面進(jìn)一步詳細(xì)描述的,發(fā)布模塊26可以分析所選擇的數(shù)據(jù)立方體,并自動向用戶12A提供用于發(fā)布每個數(shù)據(jù)立方體的默認(rèn)維度。在這個過程期間,發(fā)布模塊26可以自動除去不是用于發(fā)布的好的候選者的維度。發(fā)布過程如下確定這個用于發(fā)布的"最好的"維度。首先,發(fā)布模塊26標(biāo)識選擇的立方體中的所有維度,其中建模者為該選擇的立方體設(shè)置數(shù)據(jù)的格式信息。如果在給定立方體中只有一個維度具有格式,則發(fā)布模塊26選擇該維度作為用于對應(yīng)數(shù)據(jù)立方體的發(fā)布的維度。如果在給定立方體中有兩個或更多個維度具有格式,則發(fā)布模塊26選擇具有所分配的最低計算優(yōu)先級的維度,其中具有最低優(yōu)先級的計算被首先執(zhí)行。如果數(shù)據(jù)立方體的維度具有相等的計算優(yōu)先級,則發(fā)布模塊26選擇第一維度作為默認(rèn)維度,用于數(shù)據(jù)立方體的發(fā)布。接下來,發(fā)布模塊26調(diào)用模式生成器30,其自動產(chǎn)生數(shù)據(jù)庫模式36以以關(guān)系數(shù)據(jù)庫形式存儲多維數(shù)據(jù)(82)。在這個過程期間,模式生成器30為數(shù)據(jù)庫模式36創(chuàng)建中心事實表68,并為發(fā)布的每個維度創(chuàng)建一個或多個維度表62。對每個維度,模式生成器30根據(jù)用戶12A的希望創(chuàng)建項目表格70,簡單總和表格72或計算的層次表格74中的一個或多個。進(jìn)一步地,模式生成器30將元數(shù)據(jù)存儲在數(shù)據(jù)立方體元數(shù)據(jù)表格64中,該數(shù)據(jù)立方體元數(shù)據(jù)表格64描述所選擇的數(shù)據(jù)立方體和被發(fā)布的組成維度。模式生成器還將元數(shù)據(jù)存儲在模式元數(shù)據(jù)表格66中,該模式元數(shù)據(jù)表格66描述數(shù)據(jù)庫模式36。模式生成器30可以是與發(fā)布模塊26分離的軟件應(yīng)用程序,或者可以是一個或多個可被發(fā)布模塊26調(diào)用的軟件程序(如動態(tài)鏈接庫)。在數(shù)據(jù)庫模式36創(chuàng)建之后,發(fā)布模塊26訪問所選擇的數(shù)據(jù)立方體24,并獲得多維數(shù)據(jù)以填充數(shù)據(jù)庫模式(84)。如上所述,發(fā)布模塊26用被發(fā)布的數(shù)據(jù)立方體的關(guān)鍵字和度量來填充新創(chuàng)建的數(shù)據(jù)庫模式36的對應(yīng)的事實表68。然后發(fā)布模塊26填充正被發(fā)布的每個維度的維度表62。對于每個維度,發(fā)布模塊26根據(jù)用戶12A的希望來填充項目表格70,簡單總和表格72或計算的層次表格74中的一個或多個。接下來,模板生成器32基于新創(chuàng)建的數(shù)據(jù)庫模式36自動生成基礎(chǔ)報表模板40(86),并通過引入包含在基礎(chǔ)報表模板中的定義來創(chuàng)建用戶報表模板38。模板生成器32允許用戶12A增強用戶報表模板38(如,通過定義布局和格式屬性)。模板生成器32保持活動日志22,以記錄對用戶報表模板38的修改(88)。通過這種方式,模板生成器32可以再次應(yīng)用改變以在事件數(shù)據(jù)庫模式36中重新生成用戶報表模板38,并且基礎(chǔ)報表模板32隨后也被改變。響應(yīng)于來自用戶12A的輸入,報表工具34根據(jù)改進(jìn)的用戶報表模板38輸出報表17,以呈現(xiàn)所發(fā)布的多維數(shù)據(jù)(90)。圖7A-10B圖形示出了模式生成器30生成維度表62的簡單總和表格72的一個示例性過程。簡單總和表格72包含分層形式的維度元素。對于簡單總和表格72,模式生成器30生成用于描述節(jié)點之間的簡單父一子關(guān)系的簡單層次。簡單總和表格72的每行代表葉元素,并且更具體而言每行代表從維度層次的根到葉成員的完整路徑。如上面簡單討論的,為了使模式生成器30以保證提供正確總數(shù)的方式產(chǎn)生簡單總和表格72,模式生成器30可以識別層次中的節(jié)點,以確保它們是可聚合的。通過保證信息是可聚合的,報表工具34可以應(yīng)用層次的較低等級的和操作,并且相同的總數(shù)將被認(rèn)為是數(shù)據(jù)立方體中的總數(shù)。隨后,報表工具34可以使用簡單總和表格72操縱該總和,并對所發(fā)布的數(shù)據(jù)進(jìn)行進(jìn)一步的分析。通常,模式生成器30基于一組規(guī)則從維度生成簡單總和層次。首先,模式生成器30掃描每個維度項,并使用項的相關(guān)數(shù)學(xué)表示來標(biāo)識項的父母。項的父母是涉及該項的第一簡單總和。在有多個節(jié)點的父母的候選者的情況下,節(jié)點被按模板順序分配給第一父母,并且其它候選父母被認(rèn)為是層次中的葉節(jié)點。模板順序是指其中項已經(jīng)被增加到模板的順序。在使用兩個前面的規(guī)則不能確定父母并且節(jié)點不是簡單總和的情況下,該項被認(rèn)為是根節(jié)點(在文本的剩余部分被稱為孤節(jié)點)。葉節(jié)點僅僅是由這個算法定義的末節(jié)點,并且可以與復(fù)雜的計算相關(guān)聯(lián)。最后,簡單總和節(jié)點的所有父母和起源被包括在所發(fā)布的最終維度層次中。簡單總和節(jié)點是其相關(guān)計算是完全獨立于層次中的任何其它節(jié)點的節(jié)點上操作的簡單總和的那些節(jié)點。非簡單總和可能包括,例如,其相關(guān)計算是除了簡單總和之外的任何計算(如乘法)的那些節(jié)點。這種非簡單總和的實例參考圖9A-9B和10A-10B說明。非簡單總和的另一實例可能包括其相關(guān)計算是不完全獨立于層次中的另一節(jié)點的節(jié)點上操作的那些節(jié)點。這種非簡單總和的一個實例參考圖8A-8B說明。在一個實施例中,為了拋開非簡單總和節(jié)點,可以應(yīng)用下面的規(guī)則。首先,如果節(jié)點具有多于一個父母,則將模板順序中的第一父母指定為父母,并將層次順序中的第二父母的子層移動到根部。這將導(dǎo)致層次順序中的第二父母變?yōu)槿~節(jié)點。第二,如果節(jié)點具有不是簡單摘要的相關(guān)計算,則將那個節(jié)點的所有子層都移動到根部。這將導(dǎo)致非簡單總和節(jié)點變?yōu)槿~。在圖7A-10B中所示的實例中,說明了企業(yè)規(guī)劃模板上的節(jié)點。這些節(jié)點由字母/數(shù)字組合表示,并且項之間的關(guān)系被畫為線條。父節(jié)點表示從其它節(jié)點計算的項。父節(jié)點將它們的示例性值顯示在圓括號中,如圖7A中用于節(jié)點[B1]的"(3)"。葉節(jié)點顯示2個值,如圖7A中用于節(jié)點[D1]的"(5,O)"。圓括號中的第一項是節(jié)點值,第二項是"葉代碼"。為了保證層次能夠聚合數(shù)據(jù)立方體中表示的正確總數(shù),當(dāng)維度層次被識別時,模式生成器30使用葉代碼來描述丟失的曰息。在圖7A-10B中所示的示例性實施例中,葉代碼如下0=簡單總和節(jié)點的直接后代,1=具有多個父母的葉,2=葉項是已經(jīng)被移動到根部的子層次的一部分,以及3=葉項是孤立的,或者沒有父母。圖7A表示在發(fā)布之前在數(shù)據(jù)立方體中定義的示例性維度層次。在這個實例中,維度層次的所有節(jié)點由簡單摘要來定義。尤其是,在圖7A中節(jié)點之間的關(guān)系在數(shù)據(jù)立方體中通過下面的等式來描述。A1=B1+D1+G1,B1=C1+E1,G1=H1+P1,以及P1=S1+T1。圖7B描述了由模式生成器在發(fā)布期間產(chǎn)生的簡單摘要層次122,用于存儲在簡單總和表格72中。簡單總和層次122的葉節(jié)點值和葉代碼被表示在圓括號中。注意,因為層次120中的每個節(jié)點已經(jīng)由簡單摘要描述了,所以每個葉節(jié)點[Cl],[El],[Dl],[Hl],[S1]和[T1]具有等于0的葉代碼。在這種情況下不需要層次120的識別,因為每個節(jié)點被定義為簡單摘要。圖8A示出了維度層次126的一個實例,維度層次126包括在發(fā)布之前具有多個父母的葉節(jié)點。在這個實例中,圖8A中的節(jié)點之間的關(guān)系由下面的等式描述。A2=B2+D2+G2,B2=C2+E2,D2=E2+F2,G2=H2+P2,以及P2=S2+T2。在這個實例中,葉節(jié)點[E2具有多于一個父母。在那種情況下,模式生成器30按模板順序?qū)⒌谝桓改钢付楦改?。在一個實施例中,模式生成器30識別層次126,以使得父節(jié)點[D2]變?yōu)槿~節(jié)點,并且節(jié)點[F2]變?yōu)楣铝⒌?,并被移動到根部。圖8B說明了由模式生成器在發(fā)布期間產(chǎn)生的結(jié)果簡單摘要層次128,用于存儲在簡單總和表格72中。圖9A示出了維度層次130的一個實例,維度層次130包括非簡單摘要。圖9A中的節(jié)點之間的關(guān)系由下面的等式描述。A3=B3+D3+G3,B3-C3+E3,G3-H3+P3,以及P3=S3*T3。在圖9A所示的實例中,父節(jié)點[P3]是葉節(jié)點[S3]和[T3]的乘積。在一個實施例中,模式生成器30將非簡單摘要的葉節(jié)點移動到根部。因為節(jié)點[P3]變?yōu)槿~節(jié)點,所以節(jié)點[S3]和[T3]被孤立并被移動到根部。圖9B描述了由模式生成器在發(fā)布期間產(chǎn)生的結(jié)果簡單摘要層次132,用于存儲在簡單總和表格72中。圖10A示出了維度層次134的一個實例,維度層次134包括非簡單摘要的子層次133。圖10A中的節(jié)點之間的關(guān)系由下面的等式描述。A4=B4+D4+G4,B4=C4*E4,以及C4=S4+T4。在這個實例中,節(jié)點[B4]是節(jié)點[C4]和[E4]的乘積。節(jié)點[C4]具有它自己的簡單摘要層次。圖10B描述了由模式生成器在發(fā)布期間產(chǎn)生的結(jié)果簡單摘要層次136,用于存儲在簡單總和表格72中。因為非簡單總和節(jié)點不可能是父母,所以模式生成器30識別層次,以使得節(jié)點[B4]變?yōu)槿~,節(jié)點[E4]和[C4]變?yōu)楣铝⒌牟⒈灰苿拥礁俊9?jié)點[C4]保留其子層次。圖11示出了為所發(fā)布的數(shù)據(jù)立方體所創(chuàng)建的示例性事實表68的-部分。在圖U的實例中,事實表68包含標(biāo)識符列140A-140C,用于除了被選擇和這個數(shù)據(jù)立方體--起發(fā)布的維度之外的每個維度。因此,在圖1的實例中,事實表68包括用于"員工"維度,"elist"維度,和"版本"維度的標(biāo)識符列140A-140C。事實表68還包含一個或多個列,用于立方體的每個度量,取決于哪些列被用戶12A選擇。特別地,事實表68包含支持由用戶12A所請求的數(shù)據(jù)類型的列。在這個實例中,三個列被用于每個度量。隨后,模式生成器30生成事實表68,以包括列142A-142C,用來分別存儲文本,浮點和日期形式的"等級"度量的數(shù)據(jù)。類似地,多個列被用于存儲"底薪"度量和其它度量的數(shù)據(jù),雖然為了易于說明,圖11只描述了事實表68的一部分。圖12是進(jìn)一步詳細(xì)說明生成基礎(chǔ)報表模板40和用戶報表模板38的示例性過程的流程圖。最初,用戶(如用戶12A)與模板生成器32相互作用,以標(biāo)識存儲有一個或多個發(fā)布模式(如數(shù)據(jù)庫模式36)的關(guān)系數(shù)據(jù)庫(150)。接下來,用戶12A提供執(zhí)行模板創(chuàng)建過程所需的一般信息,如用于連接報表工具34的連接細(xì)節(jié)和用于存儲創(chuàng)建的基礎(chǔ)報表模板40和用戶報表模板38的位置(152)。然后模板生成器32向用戶12A呈現(xiàn)所選擇的關(guān)系數(shù)據(jù)庫中的一列數(shù)據(jù)庫模式(如星形模式),所述數(shù)據(jù)庫模式已經(jīng)如前所述發(fā)布(154)。模板生成器32從用戶12A接收輸入,以選擇在生成報表模板(即基礎(chǔ)報表模板40和用戶報表模板38)時要包含的一個或多個數(shù)據(jù)庫模式(156)。接下來,用戶12A選擇用在報表模板中的特定維度信息(158)。特別地,如果存儲在所選擇的數(shù)據(jù)庫模式中的多維數(shù)據(jù)可以使用維度的不同視圖來重新創(chuàng)建,則模板生成器32允許用戶12選擇用在報表模板中的每個數(shù)據(jù)立方體的一個或多個視圖。模板生成器32自動解釋存儲在所選擇的數(shù)據(jù)庫模式中的元數(shù)據(jù),并基于所選擇的維度信息輸出基礎(chǔ)報表模板40(160),以及通過引入基礎(chǔ)報表模板40中的定義來輸出用戶報表模板38。最后,模板生成器32可以調(diào)用報表工具32,來為生成報表模板時用戶所選擇的每個數(shù)據(jù)庫模式創(chuàng)建一個或多個默認(rèn)報表(162)。這些報表可以用作制作更高級報表的基礎(chǔ)。圖13是進(jìn)一步詳細(xì)說明更新用戶報表模板38的示例過程的流程圖。最初,模板生成器32將基礎(chǔ)報表模板40中的定義引入到用戶報表模板38(180),并允許用戶(如用戶12A)修改用戶報表模板38(181)。例如,用戶12A可以對用戶報表模板38中的模板的元素重命名、去除元素或移動元素。模板生成器32獲取對用戶報表模板38進(jìn)行的改變,并將它們保存在活動日志22中。而且,模板生成器32保持活動曰志22,以記錄特定改變和施加改變的順序(182)。此外,模板生成器32允許用戶12A修改在生成報表模板時所使用的基本數(shù)據(jù)庫模式36中所包含的元數(shù)據(jù)(183)。例如,用戶12A可以選擇另外的數(shù)據(jù)立方體,可以向維度增加元素或等級,或者可以改變應(yīng)用到所發(fā)布的多維數(shù)據(jù)的安全設(shè)置。一旦進(jìn)行了改變,模板生成器32將裝載用戶所進(jìn)行的初始選擇,如參考圖12描述的(184)。特別地,模板生成器32裝載最初用來生成報表模板的維度選擇。接下來,模板生成器32刪除舊的基礎(chǔ)報表模板40,并基于數(shù)據(jù)庫模式36中修改后的元數(shù)據(jù),再次生成基礎(chǔ)報表模板(186)。然后模板生成器32使用戶報表模板38同步(18S)。特別地,模板生成器32刪除用戶報表模板,并根據(jù)新生成的基礎(chǔ)報表模板40再次創(chuàng)建用戶報表模板。然后模板生成器32再次應(yīng)用記錄在活動日志22中的改變(190),以再次存儲用戶12A對用戶報表模板38進(jìn)行的前述增強。然后模板生成器32基于更新的用戶報表模板來更新默認(rèn)報表(192)。通過這種方式,模板生成器32保持了對用戶報表模板38的增強,同時允許用戶修改包含發(fā)布的多維數(shù)據(jù)的基本數(shù)據(jù)庫模式36。報表工具34使用用戶報表模板38來生成報表17。在一個實施例中,模板生成器32將基礎(chǔ)報表模板40創(chuàng)建為多個可擴展標(biāo)記語言(XML)文件。模板生成器32在報表模板中生成一組文件夾,以存儲描述數(shù)據(jù)庫模式36的"物理視圖"的定義。特別地,第一組文件夾包含描述數(shù)據(jù)庫模式36的每個關(guān)系表格(包括事實表68和雒度表62)的信息。第二組文件夾包含描述"商業(yè)視圖"的定義,并包含描述表格之間的關(guān)系的信息。特別地,第二組文件夾包含與被選擇用于報表模板的數(shù)據(jù)庫模式中的每個事實表相關(guān)的每個星形模式的定義。當(dāng)生成基礎(chǔ)報表模板40時,模板生成器32包括指定事實表和維度表之間的關(guān)系的定義,尤其是主要的和外來的關(guān)鍵字和關(guān)系的基數(shù)。而且,當(dāng)創(chuàng)建基礎(chǔ)報表模板40時,模板生成器32生成定義以定義關(guān)系表格的對象和數(shù)據(jù)庫模式36的列。模板生成器32使用存儲的元數(shù)據(jù)來確保在報表模板中分配給表格和列的名稱與存儲在企業(yè)規(guī)劃系統(tǒng)中的模板中的相同。模板生成器32生成列的定義,其指定數(shù)據(jù)庫模式中的每列的用途(如,數(shù)據(jù)類型、屬性、標(biāo)識符)。模板生成器32還包括報表模板中的定義,其允許報表工具34理解由各種維度表62(如,項目表格70、簡單總和表格72和計算的層次表格74)描述的維度的層次結(jié)構(gòu)。如上所述,這可以在用戶12A想要聚合并總結(jié)一個或多個報表17中的值時被報表工具34使用。當(dāng)使用了共享維度時,這些定義由報表工具使用,以在正確的等級進(jìn)行聚合。圖14是說明示例性用戶界面200的屏幕,用戶(如用戶12A)利用用戶界面200進(jìn)行交互以啟動多維數(shù)據(jù)的發(fā)布。圖15是說明示例性用戶界面202的屏幕,用戶12A利用用戶界面202來為可用的數(shù)據(jù)立方體("D-Cubes")的任一個選擇一個或多個維度("D-List")。圖16是說明示例性用戶界面204的屏幕,用戶12A可以利用用戶界面204選擇選項206,以指導(dǎo)模式生成器30創(chuàng)建支持用于被發(fā)布的維度的數(shù)據(jù)類型所必需的所有列?;蛘撸脩?2A可以選擇一個或多個數(shù)據(jù)類型208,以指導(dǎo)模式生成器30只創(chuàng)建用于指定數(shù)據(jù)類型的列。圖17是由模式生成器30產(chǎn)生的示例性用戶界面210的屏幕說明,用于顯示在創(chuàng)建數(shù)據(jù)庫模式36時要創(chuàng)建的列以及它們相應(yīng)的列名和列數(shù)據(jù)類型。圖18是模板生成器32的示例性用戶界面214的屏幕說明。如圖所示,用戶界面212提供一列模板。對于每個模板,用戶界面214顯示相應(yīng)的文件夾(如,物理視圖文件夾、商業(yè)視圖文件夾和所有子文件夾),以及所包含的對象定義(如表格定義)。圖19是模板生成器32的示例性用戶界面216的屏幕說明,用戶12A利用用戶界面216從數(shù)據(jù)庫模式36中選擇數(shù)據(jù)立方體以在生成基礎(chǔ)報表模板40和用戶報表模板38時使用。圖20是模板生成器32的示例性用戶界面218的屏幕說明,用戶12A利用用戶界面218來選擇維度層次信息的類型,以包括在基礎(chǔ)報表模板40和用戶報表模板38中。特別地,用戶界面218允許用戶12A選擇一個或多個(1)無格式列表形式的項目表格70,(2)從簡單總和表格72導(dǎo)出的層次列表,或(3)從計算的層次表格74計算的層次列表。圖21是模板生成器32的示例性用戶界面220的屏幕說明,用戶12A利用用戶界面220啟動改變數(shù)據(jù)庫模式36之后的同步過程,以基于活動日志22再次創(chuàng)建用戶報表模板38。如圖所示,用戶界面212提供可由用戶選擇的活動日志的列表。對于每個活動日志,用戶界面212列出已經(jīng)被記錄的特定修改,和修改發(fā)生的順序。通過這種方式,用戶12A能夠觀察將在用戶報表模板38和基礎(chǔ)報表模板40同步后再次應(yīng)用的修改。已經(jīng)描述了本發(fā)明的各種實施例。盡管參考企業(yè)規(guī)劃系統(tǒng)(如企業(yè)財務(wù)或預(yù)算規(guī)劃系統(tǒng))進(jìn)行了描述,但是該技術(shù)可以容易地應(yīng)用于其它軟件系統(tǒng),包括其它大型企業(yè)軟件系統(tǒng)。其它企業(yè)軟件系統(tǒng)的實例包括定單管理系統(tǒng)、庫存管理系統(tǒng)、銷售人員管理系統(tǒng)、商業(yè)智能工具、企業(yè)報表工具、項目和資源管理系統(tǒng)以及其它企業(yè)軟件系統(tǒng)。而且,該技術(shù)可以在任何類型的計算設(shè)備上實施,包括服務(wù)器、客戶端計算機、膝上型計算機或其它設(shè)備。這些和其它實施例都在下面的權(quán)利要求的范圍內(nèi)。權(quán)利要求1、一種計算機實施的系統(tǒng),包括關(guān)系數(shù)據(jù)庫,用于根據(jù)關(guān)系數(shù)據(jù)庫模式存儲多維數(shù)據(jù);模板生成器,其基于所述數(shù)據(jù)庫模式產(chǎn)生報表模板;以及報表工具,其根據(jù)所述報表模板輸出報表,以呈現(xiàn)所述多維數(shù)據(jù)。2、如權(quán)利要求1所述的系統(tǒng),其中所述模板生成器基于所述數(shù)據(jù)庫模式產(chǎn)生所述報表模板作為基礎(chǔ)報表模板,其中所述模板生成器通過引入所述基礎(chǔ)報表模板來產(chǎn)生用戶報表模板,并響應(yīng)于用戶請求的修改來更新所述用戶報表模板,并且其中所述報表工具根據(jù)所述用戶報表模板輸出所述報表。3、如權(quán)利要求2所述的系統(tǒng),還包括由所述模板生成器保持的活動日志,以記錄所請求的對所述用戶報表模板的修改。4、如權(quán)利要求3所述的系統(tǒng),其中如果所述數(shù)據(jù)庫模式發(fā)生改變,則所述模板生成器重新生成所述基礎(chǔ)報表模板和所述用戶報表模板,并對所述用戶報表模板重新應(yīng)用來自所述活動日志的所述修改,以自動更新所述用戶報表模板。5、如權(quán)利要求1所述的系統(tǒng),其中所述模板生成器呈現(xiàn)用戶界面,所述用戶界面列出在所述關(guān)系數(shù)據(jù)庫中保持的多個數(shù)據(jù)庫模式,并且其中所述模板生成器接收輸入,所述輸入用于選擇在生成所述報表模板時要包括的所列出的數(shù)據(jù)庫模式中的一個或多個。6、如權(quán)利要求5所述的系統(tǒng),其中所述模板生成器呈現(xiàn)所述用戶界面以包括輸入機制,用戶利用所述輸入機制選擇供生成所述報表模板時使用的維度信息。7、如權(quán)利要求5所述的系統(tǒng),其中所述模板生成器呈現(xiàn)所述用戶界面以包括輸入機制,用戶利用所述輸入機制為由所述多維數(shù)據(jù)描述的每個數(shù)據(jù)立方體選擇一個或多個不同的數(shù)據(jù)庫視圖。8、如權(quán)利要求1所述的系統(tǒng),其中所述數(shù)據(jù)庫模式存儲元數(shù)據(jù),所述元數(shù)據(jù)定義了所述多維數(shù)據(jù)中的度量的數(shù)據(jù)類型,并且其中所述模式生成器基于用戶的輸入修改存儲在所述數(shù)據(jù)庫模式中的元數(shù)據(jù),并根據(jù)所修改的數(shù)據(jù)庫模式重新生成報表模板。9、如權(quán)利要求1所述的系統(tǒng),其中所述模板生成器將報表模板創(chuàng)建為多個可擴展標(biāo)記語言(XML)文件。10、如權(quán)利要求1所述的系統(tǒng),其中所述模板生成器生成所述報表模板中的第一組定義和第二組定義,所述第一組定義描述所述數(shù)據(jù)庫模式的關(guān)系表格,所述第二組定義描述所述表格之間的關(guān)系。11、如權(quán)利要求l所述的系統(tǒng),其中所述數(shù)據(jù)庫模式包括一組一個或多個星形模式,其具有一個或多個中心事實表和一個或多個鏈接到所述實際表格的維度表,并且其中所述模板生成器基于所述星形模式產(chǎn)生所述報表模板。12、如權(quán)利要求ll所述的系統(tǒng),其中所述事實表包含描述一個或多個數(shù)據(jù)立方體以及所述多維數(shù)據(jù)的對應(yīng)度量的數(shù)據(jù),并且其中每個所述維度表包含描述所述數(shù)據(jù)立方體的維度的數(shù)據(jù)。13、一種計算機實施的方法,包括根據(jù)關(guān)系數(shù)據(jù)庫模式在關(guān)系數(shù)據(jù)庫中存儲多維數(shù)據(jù);基于所述數(shù)據(jù)庫模式生成報表模板;以及根據(jù)所述報表模板利用報表工具輸出報表,以呈現(xiàn)所述多維數(shù)據(jù),14、如權(quán)利要求13所述的方法,其中自動生成報表模板包括基于所述數(shù)據(jù)庫模式生成基礎(chǔ)報表模板;通過引入所述基礎(chǔ)報表模板生成用戶報表模板;以及響應(yīng)于用戶請求的修改而更新所述用戶報表模板。15、如權(quán)利要求14所述的方法,還包括保持活動日志,以記錄所請求的對所述用戶報表模板的修改。16、如權(quán)利要求15所述的方法,還包括如果所述數(shù)據(jù)庫模式發(fā)生改變,則重新生成所述基礎(chǔ)報表模板,以包括新的定義;使所述用戶報表模板同步,以使用所重新生成的基礎(chǔ)報表模板中的所述新的定義;以及對所述用戶報表模板重新應(yīng)用來自所述活動日志的所述修改,以自動更新所述用戶報表模板。17、如權(quán)利要求13所述的方法,還包括呈現(xiàn)用戶界面,所述用戶界面列出所述關(guān)系數(shù)據(jù)庫中保持的多個數(shù)據(jù)庫模式,以及接收輸入,所述輸入用于選擇在生成所述報表模板時要包括的所列出的數(shù)據(jù)庫模式中的一個或多個。18、如權(quán)利要求17所述的方法,還包括呈現(xiàn)所述用戶界面,以包括輸入機制,用戶利用所述輸入機制選擇供生成所述報表模板時使用的維度信息。19、如權(quán)利要求n所述的方法,還包括呈現(xiàn)所述用戶界面,以包括輸入機制,用戶利用所述輸入機制為由所述多維數(shù)據(jù)描述的每個數(shù)據(jù)立方體選擇一個或多個不同的數(shù)據(jù)庫視圖。20、如權(quán)利要求B所述的方法,還包括-在所述數(shù)據(jù)庫模式中存儲元數(shù)據(jù),所述元數(shù)據(jù)定義了所述多維數(shù)據(jù)中的度量的數(shù)據(jù)類型和格式;基于用戶的輸入,修改存儲在所述數(shù)據(jù)庫模式中的所述元數(shù)據(jù);以及根據(jù)所修改的數(shù)據(jù)庫模式重新生成報表模板。21、如權(quán)利要求13所述的方法,其中所述報表模板包括多個可擴展標(biāo)記語言(XML)文件。22、如權(quán)利要求13所述的方法,其中生成報表模板包括生成所述報表模板中的第一組定義,其描述所述數(shù)據(jù)庫模式的關(guān)系表格;以及生成第二組定義,其描述所述表格之間的關(guān)系。23、如權(quán)利要求13所述的方法,其中所述數(shù)據(jù)庫模式包括一組一個或多個星形模式,其具有一個或多個中心事實表和一個或多個鏈接到所述事實表的維度表,并且其中生成報表模板包括基于所述星形模式生成報表模板。24、如權(quán)利要求23所述的方法,其中所述事實表包含描述一個或多個數(shù)據(jù)立方體和所述多維數(shù)據(jù)的對應(yīng)度量的數(shù)據(jù),并且其中每個所述維度表包含描述所述數(shù)據(jù)立方體的維度的數(shù)據(jù)。25、一種計算機可讀介質(zhì),其包括使可編程處理器執(zhí)行以下過程的指令基于數(shù)據(jù)庫模式生成基礎(chǔ)報表模板,所述數(shù)據(jù)庫模式將多維數(shù)據(jù)存儲在關(guān)系數(shù)據(jù)庫中;通過引入所述基礎(chǔ)報表模板來生成用戶報表模板;響應(yīng)于用戶請求的修改,更新所述用戶報表模板;保持活動日志,以記錄所請求的對所述用戶報表模板的修改;如果所述數(shù)據(jù)庫模式發(fā)生改變,則重新生成基礎(chǔ)報表模板以包括新的定義;使所述用戶報表模板同步,以使用所重新生成的基礎(chǔ)報表模板中的所述新的定義;以及對所述用戶報表模板重新應(yīng)用來自所述活動日志的所述修改,以自動更新所述用戶報表模板。26、如權(quán)利要求25所述的計算機可讀介質(zhì),還包括使可編程處理器根據(jù)所述用戶報表模板輸出報表的指令,以呈現(xiàn)所述多維數(shù)據(jù)。全文摘要描述了根據(jù)關(guān)系數(shù)據(jù)庫模式,基于存儲有多維數(shù)據(jù)的關(guān)系數(shù)據(jù)庫來自動生成報表模板的技術(shù)。例如,模板生成器可以從數(shù)據(jù)庫模式產(chǎn)生基礎(chǔ)報表模板,并且隨后通過引入基礎(chǔ)報表模板來生成用戶報表模板。模板生成器響應(yīng)于用戶所請求的修改來更新用戶報表模板,并保持活動日志以記錄所述修改。如果數(shù)據(jù)庫模式發(fā)生了改變,則模板生成器重新生成基礎(chǔ)報表模板和用戶報表模板,并將來自活動日志的修改重新應(yīng)用到用戶報表模板,以自動更新用戶報表模板。如這里所述,數(shù)據(jù)庫模式可以是關(guān)系星形模式。文檔編號G06Q10/00GK101111839SQ200580047455公開日2008年1月23日申請日期2005年11月16日優(yōu)先權(quán)日2004年11月30日發(fā)明者D·羅伊,T·勒高爾特申請人:科格洛斯公司