多维企业软件系统内的可聚集维度信息的生成的制作方法

文档序号:6553586阅读:182来源:国知局

专利名称::多维企业软件系统内的可聚集维度信息的生成的制作方法
技术领域
:本发明涉及软件系统,具体涉及企业商业计划的计算环境。
背景技术
:企业软件系统通常是支持许多例如成百或上千用户同时使用的复杂、大规模的系统。企业软件系统的例子包括财务计划系统、预算计划系统、订购管理系统、库存管理系统、销售人员管理系统、商业情报工具、企业报告工具、工程和资源管理系统和其它企业软件系统。很多情况下,用户希望从一个企业软件系统发布数据到其它第三方软件工具。例如,用户可能希望从财务计划系统发布数据到报告和分析软件。但是很多企业软件系统,比如财务计划系统,将数据以数据立方体(datacube)的形式保存。因此常常很难实现从企业软件系统的多维环境分发数据到报告软件,报告软件通常以关系数据库的形式保存数据。换句话说,企业软件系统的多维性常常与报告软件使用的二维关系格式不兼容。例如,数据立方体包含多个维度和度量。通常的,维度是数据立方体的结构属性,是分类的组织分级结构。例如,地理维度可能包括国家、地区、州或省、城市等级别。度量代表沿该维度上的单元的数据值。在有些情况,数据立方体的度量依据该数据立方体维度的数据类型和格式的不同而不同。例如,已定义的度量可能沿某个维度的特定单元是字符串类型,而沿该数据立方体的不同维度上的不同单元却是数值类型。因此发布该数据立方体且正确的描述其度量的格式和数据类型常常很困难。因此,很多传统的企业系统以简单文本格式发布该多维数据。但这阻碍了报告软件执行进一步计算和分析该发布的数据。
发明内容本发明总体上描述的是发布企业软件系统的多维数据的技术。该技术能够例如发布多维数据给为报告目的而进行优化的关系数据库模式(schema)。例如,该数据库模式可能是此处描述的关系星形模式。所述技术可以包括根据该数据立方体的组织结构自动生成该数据库模式,且将该数据立方体的数据填充至该数据库模式的处理过程。该数据库模式可以用于报告该多维企业数据,或作为将该企业数据转移至企业软件系统内的数据仓库而使用的过渡区域(stagingarea)0所述技术可以进一步包括从该数据库模式自动生成报告模型的处理过程。该报告模型作为框架,其可以使访问和呈现发布至该数据库模式的该多维企业数据的报告轻松被创建。此外,描述了从该数据库模式自动重新生成该报告模型,且同步该重新生成的报告模型以包括应用至前一报告模型的任何的用户改动的技术。在一实施例中,由计算机实现的系统包含具有多维数据的数据存储。该多维数据包括具有维度的数据立方体。该系统进一步包括存取该数据存储和生成描述该数据立方体维度层次的分级数据的可执行软件模块。该软件模块生成分级数据保证该分级数据聚集在该数据立方体代表的总和内。在另一实施例中,由计算机实现的方法包含保存包括拥有分级成员的维度的多维数据,以及生成描述该维度的该分级成员的分级数据,其保证生成的分级数据聚集在该数据立方体代表的总和内。在另一实施例中,计算机可读媒介包含指令。该指令使得可编程处理器存取包括具有分级成员的维度的多维数据,以及生成描述该维度的该分级成员的分级数据。该分级数据定义了代表该维度成员的节点的分级结构,该节点包括其它节点的和计算相关的一组和节点以及其它节点的非和计算相关的一组根节点。所述技术可以提供一个或多个优势。例如,该技术提供数据库模式的自动创建,比如关系星形模式,它可以接受在该数据立方体内可能使用的异种数据类型和异种格式。此外,该模式可以自动配置保存用于转换所包含的企业数据的元数据。这样,其它软件应用,比如报告工具,可以容易的利用该数据库模式和其包含的该企业数据进行分析和报告。下面通过附图对本发明的一个或多个实施例进行详细阐述。本发明的其它特性、目标和优势将从阐述、附图及权利要求中得到明显示出。图1示出的是计算环境例子的框图,其中多个用户与企业计划系统交互。图2示出的是与图1中的企业计划系统进行交互的远程计算设备的一个实施例的框图。图3示出的是该远程计算设备的特定软件组件的细节框图。图4示出的是该关系型模式的一个实施例的图示,该模式包括保存属于该数据立方体的元数据的关系星形模式和属于该模式的元数据表。图5示出的是该关系星形模式的维度表的一个实施例的图示。图6是生成和填充数据库模式以及从该数据库模式发布报告的过程例子的总体图。图7A示出的是简单概要维度分级结构,图7B描述的是由模式生成器在发布至简单和表内的存储时生成的对应的简单概要分级结构。图8A示出的是在多个父节点中包括叶节点的非简单概要维度分级结构的例子,图8B描述的是由模式生成器在发布至简单和表内的存储时生成的简单概要分级结构。图9A示出的是非简单概要维度分级结构的例子,图9B描述的是由模式生成器在发布至简单和表内的存储时生成的简单概要分级结构。图10A示出的是包括非简单概要的子层次的非简单概要分级结构的例子,图10B描述的是由模式生成器在发布至简单和表内的存储时生成的简单概要分级结构。图11示出的是在图6示出的过程为一个数据立方体创建的事实表的例子。图12示出的是生成报告模型的过程例子的流程图。图13示出的是更新报告模型的过程例子的流程图。图14示出的是用户与多维数据的初始发布交互的用户界面例子的截屏图。图15示出的是用户选择可用数据立方体的一个或多个维度的用户界面例子的截屏图。图16示出的是用户可以选择不同选项创建列的用户界面例子的截屏图。图17示出的是由该模式生成器生成的用户界面例子的截屏图。图18示出的是该模型生成器的用户界面例子的截屏图。图19示出的是该模型生成器的用户界面的另一例子的截屏图。图20示出的是该模型生成器的用户界面的另一例子的截屏图。图21示出的是该模型生成器的用户界面的另一例子的截屏图。具体实施例方式图1示出的是具有计算环境10的示例企业4的框图,其中多个用户12A-12N(统称"用户12")与企业计划系统14交互。在图1所示的系统中,企业系统14通过网络18与多个计算设备16A-16E(统称"计算设备16")通信连接。用户12与他们各自的计算设备16进行交互以访问企业计划系统14。为了用于举例,参照企业计划系统,例如企业财务或预算计划系统描述本发明。这里描述的技术可容易地应用于其它软件系统,包括其它大型的企业软件系统。其它企业软件系统的例子包括订单管理系统、存货管理系统、销售人员管理系统、智能商务工具、企业报表工具、项目和资源管理系统以及其它企业软件系统。通常,企业计划系统14支持企业自上而下的目标与详细的自下而上的预测并使其协调。企业计划系统14执行和管理企业的计划进程,其通常包括3个功能(1)建模,(2)贡献以及(3)协调。首先,高层的企业管理员或执行人员(这里称为分析师)定义组织的目标并为企业建立计划模型。例如,分析师可包括如首席财务官和高级财务分析师这样的财务分析师,或产品和销售分析师。更具体的,分析师提出一个模型,该模型具有多个代表组织中的各类成本中心的分级计划节点,例如商务单元或部门。分析师然后为组织分级的每个节点指定团体的目标数据。团体目标数据可根据由企业正在实施的特定企业计划行为,包括财务数据、收益数据、订单数据、存货数据等等。分析师然后给每个节点分配一个或多个企业用户12,如管理员、监督人、销售代表、实验室管理员等等,他们负责对应节点的成本中心的企业计划。每个企业用户12可被指派为提供计划数据给企业计划系统14的贡献者,从贡献者处接受或拒绝贡献的审核者,或同时是两者。贡献者和审核者可以是企业或其它与网络18连接的实体中的授权用户,例如供应商或用户。被指派为贡献者的企业用户12与企业软件系统14交互,从而以贡献数据的形式输入详细的预测。如前所述,企业用户12可根据由企业正在实施的特定企业计划行为,提供详细的财务数据、收益数据、订单数据、存货数据、估计资源需求等等。企业计划系统14自动协调预测数据和由分析师提出的企业目标数据。具体而言,企业计划系统14根据定义的模型操作,即由分析师创建的企业计划模型,提供具有多个调节等级的分级计划进程。由于每个贡献者提供其贡献数据(通常称为"企业数据"),企业计划系统14实时地自动聚集企业中的贡献数据,并把聚集的数据的访问权提供给被指派为与企业高层相关的审核者的企业用户12。具体而言,从贡献者接收贡献数据后,企业计划系统14确定所有受最新接收的贡献数据影响的组织模型的较高等级,并实时计算每个等级中新聚集的数据总和。随后,审核者在企业计划会议期间实时查看企业中的聚集数据。在每个等级,企业计划系统14确保由企业模型节点定义的审核者协调目标数据和预测数据。例如,每个审核者,可鉴于分析师提供的企业目标,接受或拒绝贡献数据。这个过程持续直到贡献数据最终被组织分级中的最高等级接受,从而确保来自贡献者的贡献数据与由分析师提供的企业目标一致。如此,企业计划系统14可以比传统的技术提供更精确的企业计划。例如,企业计划系统14可以通过使组织机构的团体模型和组织目标与详细的预测一致来改进企业计划的精确性和可预测性。这项技术可以提供了一个平台,该平台提供了合作、实时计划能力而不需要预测的下线合并和聚集。由于企业计划系统14可以实时地聚集贡献数据,因此可以给所有的用户12呈现精确的、最新的数字视图。而且,企业计划系统14的体系结构可容易地扩大到数千用户的规模,并可被设计成最好的计划实践D此外,这项技术使企业用户12,即贡献者和审核者可高度参与,允许减少精确的计划周期。企业用户12可以使用各种计算设备通过网络18与企业计划系统14进行交互。例如,企业用户可以使用运行web浏览器,例如来自位于华盛顿Redmond的微软公司的InternetExplorer的膝上型电脑、桌面电脑等与企业计划系统14进行交互。或者,企业用户可以使用个人数字助手(PDA),例如来自加利福尼亚SantaClam的PalmInc.的PalmTM、具有Web功能的蜂窝电话等的设备。网络18代表任何通信网络,例如基于分组的数字网络如因特网。如此,系统10可容易地扩大以适合大型企业。企业用户12可以通过局域网直接访问企业计划系统14,或是通过虚拟专用网,远程拨号或类似的远程访问通信机制远程访问企业计划系统14。企业计划系统14可以使用"削减"过程,利用该过程根据定义的企业模型为每个用户12"切片"多维的数据存储。在这个过程中,企业计划系统14确定定义的模型中为用户12(作为贡献者或审核者)分配的区域,且基于该分配"切片"数据存储。当特定用户12登录并进行企业计划活动时,企业计划系统14传送各个数据切片给各个的计算设备16,以通过扩展的电子数据表应用程序显示给用户。这样,企业计划系统14不必传送整个模型给每个用户12,因此降低了通信时间和资源需求。作为代替,每个用户12只接收相关的信息。用户12与计算设备16进行交互以捕捉贡献数据,并使贡献数据与企业目标一致。如此处所述,企业计划系统14自动为发布或输出该多维数据至关系数据库生成数据库模式。企业计划系统14根据发布的该多维企业计划数据的组织结构生成该数据库模式。如下面将详细描述的那样,该数据库模式可以是为该多维数据以关系型形式存储优化过的关系星形模式。企业计划系统14在创建该数据库模式后将该多维计划数据填充至该数据库模式中。其它软件应用然后可以利用该发布的计划数据。例如,该数据库模式可以作为转移该企业数据至数据仓库的过渡区域。作为另一个例子,该数据库模式可以用于根据该多维企业数据生成报告17。如下所述,企业计划系统14可以从该数据库模式自动生成报告模型。该报告模型作为框架,根据该框架可以从发布至该数据库模式的该多维企业数据容易地生成报告17中。企业计划系统14从该数据库模式自动重新生成该报告模型,同步该重新生成的报告模型以包括应用于前一报告模型中任何的用户改动。图2是示出计算设备16A的一个实施例的框图,包括由用户12,比如贡献者或审核者操作时在上面执行的不同软件模块。在该实施例中,计算设备16A包括网页浏览器20、计算引擎22和一个或多个数据立方体24。此外,计算设备16还包括发布模块26、模式生成器30、模型生成器32以及报告工具34。在一个实施例中,计算引擎22包括一个被以基于数组的语言构建的ActiveX对象包裹的前向计算引擎22。在企业计划的例子中,用户12A可与web浏览器20进行交互以输入和处理预算或预测数据。数据块24包含计划数据,其可包括自上而下的目标和自下而上的贡献数据。计算引擎22和数据立方体24允许为企业计划会议进行的所有计算由计算设备16A在本地执行。因此,在本例中,贡献者可以修改他或她各自的贡献数据,然后为该企业计划过程执行必要的计算而无需访问企业计划系统14。换句话说,计算引擎22和数据立方体24可以通过计算设备16A在本地维护(例如,作为ActiveX组件)。用户12A可本地保存计划数据,并提交计划数据给企业计划系统14,用于与来自其他用户的数据进行聚集。企业计划系统14自动地实时地聚集企业4的贡献数据,并将聚集的数据的访问权限提供给企业中具有较高等级的审核者。这个过程持续到贡献数据最终被组织分级中的最高等级的审核者接受,由此确保来自贡献者的贡献数据与企业目标一致。在其他实施例中,计算引擎22和数据块24可仅被维持在企业计划系统14中并本地安装在计算设备16中。通常情况下,发布模块26代表从一个或多个数据立方体24发布多维数据的软件模块。用户,比如用户12A,与发布模块26交互以初始化发布过程。在此过程中,用户12A从一个或多个数据立方体24中选出一个或多个维度。模式生成器30自动生成数据库模式以关系数据库形式保存所选的多维数据。具体的,模式生成器30分析数据立方体24和组成该数据立方体的维度以确定在该数据库模式中需要创建哪些关系表。模型生成器32根据该数据库模式自动生成报告模型。报告工具34遵照该报告模型输出代表发布的多维数据的报告17。图3是详细示出该远程计算设备的特定软件组件的框图。如图3所示,发布模块26代表软件模块,利用该模块用户,比如用户12A从一个或多个数据立方体24中发布多维数据。具体的,模式生成器30自动生成数据库模式36以关系数据库形式保存该多维数据。通常,数据库模式保存两种形式的元数据。第一种类型包括与数据立方体24相关的元数据。具体的,该元数据定义数据立方体24中的数据类型和格式。这样,数据库模式36支持异种数据类型和异种格式。数据库模式36保存的第二种元数据类型是描述该模式本身的元数据。该第二类型的元数据允许开发人员或自动化工具对数据库模式36的增强解释。举个例子,用户12A可以与模型生成器32交互,随之修改该元数据以增加该发布维度的成员或级别,改变应用于该发布的多维数据的安全设置或执行其它修改。为了允许在异种数据上执行计算,模式生成器30可以生成数据库模式36,以保存数据立方体24内每个度量具有的所有数据类型。例如,模式生成器30可以为每个度量创建多个列。举个例子,模式生成器30可以为每个度量创建三列第'列保存该度量的浮点值,第二列保存该度量的日期值,第三列保存该度量的文本值。发布模块26用该多维数据填充数据库模式36。当发布度量的特定值时,发布模块26确定数据类型并将值存储在数据库模式36的适当列中。模型生成器32基于数据库模式36自动生成基础报告模型40。模型生成器32可以进一步允许用户12A修改基础报告模型38以生成用户报告模型38。用户报告模型38可以,例如定义生成报告17以呈现该发布的多维数据时,报告工具34使用的额外计算或格式属性。模型生成器32可以维护活动日志22记录基础模型40的修改,以便随后重新生成用户报告模型38。图4是示出数据库模式36的一个实施例的图示。在所示的实施例中,数据库模式36包括保存元数据的元数据区域50和保存发布的多维数据的数据区域52。在图4的例子中,模式生成器30为每个数据发布自动将数据区域52组织成关系星形模式。数据区域52被称为"星形模式"因为该模式的实体-关系图示像星形,如图4所示,该星形的"点"从中心表发散。具体的,该星形的中心包含大型事实表68,该星形的点是维度表62A-62N("维度表62")。对于每个从数据立方体24的多维数据发布,数据库模式36更新元数据区域50,生成新的星形模式。因而,每个发布的特征在于星形模式,其具有包含主要信息的超大型事实表68(即数据立方体键和度量),以及数个小一些的维度表62。维度表62可以看作是查询表,每个表包含该事实表中特定数据的维度成员的信息。举个例子,维度A可能代表地理销售区域,维度B可能代表产品,维度C可能代表时间,维度D可能代表版本。通常元数据50保存关于发布的数据立方体24的元数据。具体的,该元数据定义在发布的任意数据立方体24中度量的数据类型和格式。元数据区域50还保存描述数据库模式36本身的元数据。该元数据允许开发人员或自动化工具对数据库模式36的进行增强解释。举个例子,报告工具34和模型生成器32可以使用描述数据库模式36的元数据对发布的多维数据进行增强解释和报告。在此例子中,元数据区域50包括应用对象表64、应用列表66以及维度格式表63。应用对象表64包含由模式生成器30生成以发布所选多维数据的描述不同维度表62和事实表68的元数据。具体的,应用对象表64的每一列都包含发布的不同多维对象的元数据,更具体的,其包含保存该多维对象的维度表62。表1列出了应用对象表64的一个实施例的列实例。表l<table>tableseeoriginaldocumentpage15</column></row><table>数据。具体的,应用列表66的每一行描述维度表62或事实表68的各个列。结果是,应用列表66将包含用于应用对象表62每行的多个行。表2列出的是应用列表66的一个实施例的例子列。表2<table>tableseeoriginaldocumentpage16</column></row><table>维度格式表63包含描述不同事实表68的度量列的数据类型和格式信息的元数据。具体的,维度格式表63的每一行描述了该度量列的数据类型以及它的格式的属性,比如数值的刻度。表3列出了维度格式表63的一个实施例的例子列。表3<table>tableseeoriginaldocumentpage16</column></row><table>1scalingfactorl数值的比例因数。iizerovaluechsrsi用于表示等于o的数值的字符串。图5示出的是一个维度的数据库模式36的组织例子,在此例中为维度62A。当形成数据库模式36时,模式生成器30检查组成该数据立方体的维度,以三种形式导出该维度信息。首先,模式生成器30创建列出发布的所有维度的所有成员的项目表70。具体的,项目表70提供该维度无分级信息的扁平列表。在一实施例中,项目表70的每一行能够保存成员名称、标题、全球唯一标识符(guid)、整数标识符和该维度内的显示顺序。项目表70可以被用于生成显示该数据立方体中所有数据的报告17,而无需对报告重新创建任何计算。换句话说,该维度的所有成员,从叶成员至根成员都在项目表70中。接着,模式生成器30生成简单和表72。简单和表72包含分级形式的维度信息。具体的,简单和表72提供维度分级,其保证聚集到该数据立方体内的正确总和内。换句话说,报告工具34可以在生成报告17时对分级中的低级别应用求和操作,实现的总和与该数据立方体内的总和一样。因而,报告工具34可以利用简单和表72来重新创建该数据立方体内的特定计算。这样就允许报告17操作该和,并对发布的数据执行进一步的分析。为了使模式生成器30以保证提供正确的总和的方式生成简单和表72,该模式生成器可以去除该维度的一些成员,如结合图7A-10B所述。最后,模式生成器30生成包含分级形式的完全维度信息的计算好的分级表74。换句话说,该计算好的分级表表达成给出尽可能多的信息。但是,该维度分级不保证是可聚集的。具体的,报告17中的计算可能不提供相同的总和,因为报告工具34的计算引擎与比企业计划系统14相比可能有更多的限制。图6示出的是图3中所示的软件组件操作实例的流程图。一开始,用户,比如用户12A与发布模块26交互初始化发布过程。具体的,发布模块26提供用户界面,利用该用户界面用户12A可以确定其中一个数据立方体24以及选出确定的数据立方体的要发布的一个或多个维度(80)。如下面将要详细描述的那样,发布模块26可以分析选出的数据立方体,自动为用户12A提供发布数据立方体的默认维度。在此过程中,发布模块26可以自动除去不适合发布的维度。该发布过程以如下步骤确定"最合适"发布的维度。首先,发布模块26确定选出的数据立方体的所有维度,其中建模者为该数据设置了格式信息。如果给出的数据立方体中只有一个维度具有格式,那么发布模块26选该维度作为发布该数据立方体的默认维度。如果给出的数据立方体中有两个或多个维度具有格式,那么发布模块26选具有最低计算优先级的维度,其中最先执行具有最低计算优先级的维度。如果该数据立方体的维度具有相同的优先级,那么发布模块26选择第一个维度作为发布该数据立方体的默认维度。然后,发布模块26调用模式生成器30自动生成数据库模式36将该多维数据保存成关系数据库形式(82)。在此过程中,模式生成器30为数据库模式36创建中心事实表68,以及为每个要发布的维度创建一个或多个维度表62。对于每个维度,模式生成器30创建一个或多个项目表70,根据用户12A的需求创建简单和表72或计算好的分级表74。此外,模式生成器30将元数据保存在描述所选数据立方体和要发布的组成维度的数据立方体元数据表64中。模式生成器30还将元数据保存在描述数据库模式36的模式元数据表66中。模式生成器30可以是与发布模块26不同的软件应用或者一个或多个可以被发布模块26调用的软件过程(例如,动态链接库)。在创建了数据库模式36后,发布模块26访问所选的数据立方体24,获取多维数据以填充该数据库模式(84)。如上所述,发布模块26将要发布的该数据立方体的度量和键值填充至新创建的数据库模式36的相应事实表68中。发布模块26然后为每个要发布的维度填充其维度表62。对于每个维度,发布模块26填充一个或多个项目表70,根据用户12A的需求填充简单和表72或是计算好的分级表74。接着,模型生成器32根据新创建的数据库模式36自动生成基础报告模型40(86),通过导入该基础报告模型中包含的定义创建用户报告模型38。模型生成器32允许用户12A改善用户报告模型38(例如,通过定义布局和格式属性)。模型生成器32维护活动日志22来记录对用户报告模型38(88)的修改。通过这种方式,模型生成器32可以在数据库模式36和基础报告模型32随后改变时再运行这些修改重新生成用户报告模型38。响应于用户12A的输入,报告工具34根据增强用户报告模型38的形式输出报告17,呈现要发布的多维数据(90)。图7A-10B示出模式生成器30生成维度表62的简单和表72的过程实例。该简单和表72包括分级形式的维度成员。对于简单和表72,模式生成器30生成用于描述节点间简单的父亲一孩子关系的简单分级结构。简单和表72的每一行表示叶子成员,更具体的,每一行表示从该维度分级结构的根节点至叶子成员的完全路径。如上面简单讨论所描述的那样,为了使模式生成器30以保证提供正确的总和的方式生成的简单和表72,模式生成器30可以重新组织该分级结构中的节点以保证它们是可聚集的。通过保证该信息是可聚集的,报告工具34可以对该分级结构的低级别节点进行求和操作,得到的总和与该数据立方体中的总和一样。因而,报告工具34可以利用简单和表72来重新创建数据立方体内的特定计算。这样就允许报告17操作该和,对要发布的数据执行进一步的分析。模式生成器30通常根据一组规则从维度生成简单和分级结构。首先,模式生成器30扫描每个维度项(成员),使用与该项相关的数学表达式来识别该项的父亲。项的父亲是第一个将该项作为输入的简单和。在节点的父亲有多个候选的情况下,该节点被分配给模型顺序上第一父亲,其它父亲候选在该分级结构中被看作叶节点。模型顺序代表项被添加进该模型的顺序。在使用上述两条规则都无法识别出父亲以及该节点不是简单和的情况下,该节点被看作根节点(在本文其它部分称之为孤儿节点)。叶节点只是此算法定义的端节点,可能与复杂的计算相关。最后,简单和节点的所有的父亲和祖先被包括在发布的最终维度分级结构中。简单和节点是那些其相关计算是对在该分级结构中与其它任何节点都完全独立的节点进行加法操作的节点。非简单和可以包括,例如其相关计算不是简单和计算的那些节点,比如是乘法计算。这种非简单和的例子在图9A-9B和10A-10B中示出。非简单和的另一例子包括那些节点,其相关计算对在该分级结构中与其它节点不完全独立的节点上而进行。这种非简单和的例子在图8A-8B中示出。在一个实施例中,为了抛弃那些非简单和节点,要应用下述规则。首先,如果节点有不止一个父亲,将模型顺序上的第一父亲作为其父亲,将该分级结构顺序中的第二父亲的子层移动到根节点。这样在该分级结构顺序的该第二父亲就成了叶节点。第二,如果节点相关的计算不是简单和计算,将该节点的所有子分级移动到根节点。这样该非简单和节点就成了叶节点。在图7A-10B所示的例子中,示出的是企业计划模型中的节点。这些节点以字母/数字组合代表,项之间的关系用线表示。父节点代表从其它节点计算得到的项。父节点的示例数值在括号中示出,比如在图7A中节点[Bl]的"(3)"。叶节点显示两个值,比如在图7A中节点[Dl]的"(5,0)"。括号中的第一项是该节点值,第二项是"叶代码"。模式生成器30利用该叶代码来描述在该维度分级结构识别时丢失的信息,以保证该分级结构聚集该数据立方体内表示的正确的总和。在图7A-10B所示的实施例中,叶代码如下0=简单和节点的直接子节点,1=该叶节点拥有多个父亲,2=该叶项是被移动到根节点的子层中的一部分,以及3=该叶项是孤儿或者说没有父亲。图7A表现的是在发布前数据立方体内定义的维度分级结构的例子。在该实例中,该维度分级结构的所有节点都由简单求和定义。具体的,图7A中的节点间的关系在该数据立方体中由如下公式描述。Al=B1+D1十G1,Bl=C1+E1,G1=H1+P1,以及PI=S1+T1图7B描述的是模式生成器在发布期间为存储简单和表72生成的简单和分级结构122。简单和分级结构122的叶节点值和叶代码在括号中示出。注意因为分级结构120中的每个节点已经用简单和描述了,每个叶节点[CI]、[El]、[Dl]、[Hl]、[Sl]和[Tl]的叶代码为0。在此例中分级结构120无需重新组织因为每个节点被定义为简单和。图8A示出了在发布前包括多个父亲的叶节点的维度分级结构126的例子。在该例子中,图8A中的节点间的关系由如下公式描述。A2=B2+D2+G2,B2=C2+E2,D2=E2+F2,G2=H2+P2,以及P2=S2+T2。在此例中,叶节点[E2]拥有多个父亲。在这样情况下,模式生成器30将模型顺序中的第一个父亲作为该节点的父亲。在一个实施例中,模式生成器30重组分级结构126使父亲节点[D2]成为叶节点,节点[F2]成为孤儿节点并被移动到根节点。图8B描述的是由模式生成器在发布期间为存储简单和表72生成得到的简单和分级结构128。图9A示出的是包括非简单和的维度分级结构130的例子。图9A中的节点间的关系由如下公式描述。A3=B3+D3+G3,B3=C3+E3,G3=H3+P3,以及P3=S3*T3。在图9A示出的例子中,父节点[P3]是叶节点[S3]和[T3]的乘积。在一个实施例中,模式生成器30移动非简单和的叶节点到根节点。因为节点[P3]成了叶节点,节点[S3]和[T3]就成了孤儿被移动到根节点。图9B描述的是由模式生成器30在发布期间为存储简单和表72生成得到的简单和分级结构132。图10A示出的是包括非简单和的子分级结构133的维度分级结构134的例子。在图10A中的节点间的关系由如下公式描述。A4=B4+D4+G4,B4=C4*E4,以及C4=S4+T4。在该例子中,节点[B4]是节点[C4]和[E4]的乘积。节点[C4]拥有自己的简单和分级结构。图10B描述的是由模式生成器在发布期间为简单和表72内的存储生成得到的简单和分级结构136。因为非简单和节点不能是父亲,模式生成器30重新组织该分级结构使节点[B4]成为叶节点,节点[E4]和[C4]成为孤儿,被移动到根节点。节点[C4]保持它的子分级结构。图11示出的是为发布的数据立方体创建的事实表68例子的一部分。在图ll的例子中,事实表68除为该数据立方体发布而选出的维度外为每个维度包含标识符列140A-140C。因此,在图11的例子中,事实表68为"employee"、"elist"和"versions"维度包括标识符列140A-140C。事实表68还根据用户12A选择的列,为该数据立方体的每个度量包含一个或多个列。具体的,事实表68包含支持用户12A请求的数据类型的列。在该例子中,为每个度量使用了三列。因而,模式生成器30生成事实表68,以包括142A-142C歹U,其为"gmde"度量分别以文本、浮点和日期格式保存数据。类似的,为"basesalaiy"和其它度量保存数据使用了多个列,虽然为了示例的缘故图11只示出了事实表68的一部分。图12示出的是生成基础报告模型40和用户报告模型38的示例过程的更细节的流程图。一开始,用户,比如用户12A与模型生成器32交互以确定存储一个或多个发布模式的关系型数据库,比如数据库模式36(150)。接着,用户12A提供执行该模型创建过程所需的普通信息,比如连接报告工具34的连接细节,存储基础报告模型40的位置以及以前创建的用户报告模型38(152)。模型生成器32然后呈现给用户12A如在上述所选的先前发布的关系数据库模式的列表(例如星形模式)(154)。模型生成器32从用户12A接收输入,选择一个或多个数据库模式用来包含在生成该报告模型中,即基础报告模型40和用户报告模型38(156)。然后,用户12A选择在该报告模型中使用的特定维度信息(158)。具体的,如果存储在所选数据库模式的该多维数据可以使用该维度的不同视图重建,模型生成器32允许用户12为报告模型中使用的每个数据立方体选择一个或多个视图。模型生成器32自动解释存储在所选数据库模式内的该元数据,根据所选维度信息输出基础报告模型40(160)以及通过导入该基础报告模型40内的定义输出用户报告模型38。最后,模型生成器32可以调用报告工具32,为该用户在生成该报告模型时选择的每个数据库模式创建一个或多个默认报告(162)。这些报告可以作为编写更高级报告的基础。图13示出的是更新用户报告模型38实例过程的细节流程图。一开始,模型生成器32从基础报告模型40导入定义至用户报告模型38中(180),允许用户,比如用户12A修改该用户报告模型38(181)。例如,用户12A可以该用户报告模型38中对模型的元素改名、去除或移动元素。模型生成器32获得对用户报告模型38的这些修改,记录在活动日志22中。此外,模型生成器32维护活动日志22以记录这些特定的修改以及这些修改应用的顺序(182)。此外,模型生成器32允许用户12A在生成该报告模型时修改包含在该基础数据库模式36的元数据(183)。例如,用户12A可以选择额外的数据立方体,可以增加维度成员或分级或者修改应用于该发布的多维数据的安全设置。一旦做出修改,模型生成器32加载参考图12描述的用户最初的选择(1S4)。具体的,模型生成器32加载最初用于生成该报告模型选择的该维度。接着,模型生成器32删除旧的基础报告模型40,根据在数据库模式36内修改的元数据重新生成该基础报告模型(186)。模型生成器32然后同步用户报告模型38(188)。具体的,模型生成器32删除该用户报告模型,从新重建的基础报告模型40上重新创建该用户报告模型。模型生成器32然后重新应用记录在活动日志22中的修改来恢复由用户12A先前对用户报告模型38做出的改进。模型生成器32然后根据更新的用户报告模型更新默认报告(192)。通过这种方式,模型生成器32保留了用户模型38的改进,同时允许该用户修改包含发布的多维数据的基础数据库模式36。报告工具34利用用户报告模型38生成报告17。在一个实施例中,模型生成器32以多个扩展标记语言(XML)文件的方式创建基础报告模型40。模型生成器32在该报告模型中生成一组目录,来保存描述数据库模式36的"物理视图"的定义。具体的,第一组目录包含描述数据库模式36的每个关系表的信息,包括事实表68和维度表62。第二组目录包含描述"商业视图"的定义且包含描述这些表间关系的信息。具体的,第二组目录包含为该报告模型选择的该数据库模式内与每个事实表相关的每个星形模式的定义。当生成基础报告模型40时,模型生成器32包括指定该事实表和该维度表间关系的定义,以及具体的,该关系的主键、外键和基数。此外,当创建基础报告模型40时,模型生成器32生成定义为该关系型表和数据库模式36的列定义对象。模型生成器32利用存储的元数据确保赋给该表的名称以及在该报告模型中的列与保存在该企业计划系统中的该模型中的相同。模型生成器32为指定数据库模式内每个列的使用(例如数据类型、属性、标识符)的列生成定义。模型生成器32同样包括在该报告模型内允许报告工具34理解由不同维度表62(例如项表70,简单和表72和计算的分级表74)描述的维度分级结构的定义。如上所述,当用户12A需要在一个或多个报告17内聚集和汇总值时,这些可以被报告工具34使用。当使用共享维度时这些定义被该报告工具使用,在正确的级别聚集。图14示出的是示例用户界面200的截屏图,用户,比如用户12A通过它交互开始多维数据的发布。图15示出的是示例用户界面202的截屏图,用户12A从中为任意一个可用数据立方体("D-Cubes")选出一个或多个维度。图16示出的是示例用户界面204的截屏图,用户12A通过它选择选项206指示模式生成器30创建所有支持被发布维度的数据类型所需的列。或者,用户12A可以选择一个或多个数据类型208指示模式生成器30只创建指定数据类型的列。图17示出的同模式生成器30生成的用户界面例子210的截屏图,它显示当该数据库模式36被创建时创建的这些列以及它们相应的列名称和列数据类型。图18示出的是模型生成器32的用户界面例子214的截屏图。如图所示,用户界面212提供模型列表,对于每个模型,用户界面214显示对应目录(例如,物理视图目录、商业视图目录和所有子目录)以及其包含的对象定义,比如表定义。图19示出的是模型生成器32的用户界面例子216的截屏图,用户12A通过它从数据库模式36选择当生成基础报告模型40和用户报告模型38时利用的数据立方体。图20示出的是模型生成器32的用户界面例子218的截屏图,用户12A通过它选择要包括在基础报告模型40和用户报告模型38中的维度分级结构信息类型。具体的,用户界面218允许用户12A选择一个或多个(1)的项表表70的未格式化列表,(2)从简单和表72得出的分级列表,或(3)从计算的分级表74计算得到的分级列表。图21示出的是模型生成器32的用户界面例子220的截屏图,用户12A通过它在改变数据库模式36后启动同步过程,根据活动日志22重建用户报告模型38。如图所示,用户界面212提供可供用户选择的活动日志列表。对于每个活动日志,用户界面212列出被记录的特定改动以及这些改动发生的顺序。通过这种方式,用户12A可以査看这些在同步该用户报告模型38后可以对该基础报告模型"重新应用"的改动。已经描述了本发明的多个实施例。虽然参考企业计划系统进行了描述,例如企业财务或预算计划系统,但本技术可容易地应用于其它软件系统,包括其它的大型企业软件系统。其它企业软件系统的例子包括订单管理系统、存货管理系统、销售人员管理系统、智能商务工具、企业报表工具、项目和资源管理系统和其它企业软件系统。而且,本发明可在任何类型的计算设备上实施,包括服务器、客户计算机、膝上型电脑或其它设备。这些或其它实施例包含在下面的权利要求的范围中。权利要求1、由计算机实现的系统,包含具有多维数据的数据存储器,其中所述多维数据包括具有维度的数据立方体;以及可执行软件模块,其访问所述数据存储器并生成描述所述数据立方体的所述维度的分级结构的分级数据,其中所述软件模块生成分级数据,这样保证所述分级数据只使用求和法聚集到所述数据立方体内代表的总数。2、根据权利要求1的系统,其中所述软件模块生成所述分级数据作为数据库模式的简单和表。3、根据权利要求1的系统,进一步包含根据所述分级数据输出报告的报告工具。4、根据权利要求1的系统,其中所述维度包括多个分级排列的成员,以及其中所述软件模块输出所述分级数据以描述所述成员的分级结构关系。5、根据权利要求4的系统,其中软件模块生成所述分级数据以包括少于所述维度所有成员的成员。6、根据权利要求1的系统,其中所述软件模块生成所述分级数据以包括描述所述维度的所述成员间的父子关系的一组节点。7、根据权利要求6的系统,其中所述软件模块分析所述成员定义的数学表达式,以识别参考子成员的父成员,以及生成所述分级数据以表示所述父成员和所述子成员。8、根据权利要求6的系统,其中对于所述维度的每个成员,所述软件模块确定在所述维度内是否存在定义和的父成员,所述和将所述成员作为所述和的输入。9、根据权利要求6的系统,其中当所述软件模块在所述维度内识别出子成员的多个父成员时,所述软件模块通过从识别的多个父成员中选出一个作为所述子成员的父成员并将其余的父成员指定为所述分级数据内的叶节点而生成所述分级数据。10、根据权利要求6的系统,其中当所述软件模块没有识别出所述维度的成员的父成员时,所述软件模块将所述成员指定为所述分级数据内的根节点。11、根据权利要求1的系统,其中所述软件模块生成所述分级数据,以包括代表所述维度的成员的节点的分级结构,其中所述节点包括一组和节点以及一组根节点,所述组和节点和仅仅是其它节点的和的计算相关,所述组根节点与非和计算相关。12、一种方法,包含保存包括具有分级成员的维度的多维数据;以及生成描述所述维度的分级成员的分级数据,所述分级数据的形式保证只使用求和法而聚集在所述数据立方体内代表的总数。13、根据权利要求12的方法,其中生成分级数据包含生成关系数据库模式表,其中所述简单和表的每一行代表从所述维度的根成员到叶成员的完全路径。14、根据权利要求12的方法,进一步包含根据所述分级数据输出报告。15、根据权利要求12的方法,其中生成分级数据包含生成包括少于所述维度所有成员的所述分级数据。16、根据权利要求12的方法,其中生成分级数据包含生成所述分级数据以包括描述所述维度的成员间父子关系的一组节点。17、根据权利要求16的方法,其中生成分级数据包含分析由所述成员定义的数学表达式以识别参考子成员的父成员,以及生成表示所述父成员和所述子成员间关系的所述分级数据。18、根据权利要求16的方法,其中分析数学表达式包括为每个成员确定在所述维度内是否存在定义和的父成员,所述和将所述成员作为所述和的输入。19、根据权利要求16的方法,进一步包含确定子成员是否有多个父成员;以及选出被识别的多个父成员中的一个作为该子成员的父成员;以及将其余的父成员指定为所述分级数据内的叶节点。20、根据权利要求16的方法,进一步包含:识别不能识别父成员的一组成员;以及将所述成员指定为所述分级数据内的根节点21、根据权利要求12的方法,其中生成分级数据包含生成所述分级数据以包括代表所述维度的成员的节点的分级结构,其中所述节点包括一组和节点以及一组根节点,所述组和节点与其它节点的和的计算相关,所述组根节点与非和计算相关。22、计算机可读介质,具有指令使可编程处理器-访问包括拥有分级成员的维度的多维数据;以及生成描述所述维度的分级成员的分级数据,其中所述分级数据定义代表所述维度的成员的节点的分级结构,其中所述节点包括一组和节点以及一组根节点,所述组和节点与其它节点的和的计算相关,所述组根节点与非和的计算相关。全文摘要描述了生成分级形式的维度信息的技术。由计算机实现的系统,包括例如具有多维数据的数据存储。该多维数据包括具有维度的数据立方体。该系统进一步包括范围该数据存储和生成描述该数据立方体的维度分级的分级数据的可执行软件模块。该软件模块生成该分级数据以保证该分级数据聚集在该数据立方体代表的和内。文档编号G06F7/50GK101167048SQ200580046976公开日2008年4月23日申请日期2005年11月16日优先权日2004年11月30日发明者D·罗伊,J·贝克,T·勒高尔特申请人:科格洛斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1