首页> 中国专利> 多维企业软件系统中的自动关系模式生成

多维企业软件系统中的自动关系模式生成

摘要

描述了从企业软件系统发布多维数据的技术。关系数据库模式被自动创建以存储多维数据。如这里所描述的,数据库模式可以是关系星形模式。该技术可以包括基于多维数据立方体的结构自动产生数据库模式的过程,以及利用来自数据立方体的数据填充数据库模式的过程。数据库模式可以被用来报告多维企业数据,或者可以用作向企业软件系统的数据仓库移动企业数据的集结地。报表模式可以支持异构的数据类型和异构的格式。报表模式还可以包含描述所述模式的元数据,以允许增强数据库模式的解释。还描述了从数据库模式自动生成报表模板的过程。

著录项

  • 公开/公告号CN101111838A

    专利类型发明专利

  • 公开/公告日2008-01-23

    原文格式PDF

  • 申请/专利权人 科格洛斯公司;

    申请/专利号CN200580047412.X

  • 申请日2005-11-16

  • 分类号G06F17/30(20060101);G06Q10/00(20060101);

  • 代理机构72002 永新专利商标代理有限公司;

  • 代理人王英

  • 地址 美国明尼苏达州

  • 入库时间 2023-12-17 19:41:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2017-01-04

    未缴年费专利权终止 IPC(主分类):G06F17/30 授权公告日:20110119 终止日期:20151116 申请日:20051116

    专利权的终止

  • 2011-01-19

    授权

    授权

  • 2009-01-21

    专利申请权、专利权的转移(专利申请权的转移) 变更前: 变更后: 登记生效日:20081219 申请日:20051116

    专利申请权、专利权的转移(专利申请权的转移)

  • 2008-03-12

    实质审查的生效

    实质审查的生效

  • 2008-01-23

    公开

    公开

说明书

技术领域

本发明涉及软件系统,尤其涉及企业商业规划的计算环境。

背景技术

企业软件系统通常是复杂的、大规模的系统,其支持许多,例如几百个或几千个,并存的用户。企业软件系统的实例包括财务规划系统、预算规划系统、定单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统以及其它企业软件系统。

在许多情况下,用户可能希望将数据从一个企业软件系统发布到其它第三方软件工具。例如,用户可能希望将数据从财务规划系统发布到报表和分析软件。然而,诸如财务规划系统的许多企业软件系统以多维数据立方体(multidimensional data cube)形式存储数据。经常难于从企业软件系统的多维环境将数据发布到报表软件,而报表软件通常将数据存储在关系数据库中。换句话说,企业软件系统的多维特性通常与报表软件采用的两维关系格式相矛盾。

例如,多维数据立方体由多个维度(dimension)和度量(measure)组成。通常,维度是数据立方体的结构属性,其中数据立方体是类目的有组织的层级。例如,地理维度可能包括国家、地区、州或省以及城市的级别。度量表示沿着维度的单元的数据值。

在一些情形中,多维数据立方体中的度量的数据类型和格式沿着数据立方体的维度而变化。例如,一个定义的度量可能根据数据立方体的不同维度,从沿着一个维度的某些单元的字符串数据类型变化到不同单元的数字数据类型。因此,经常难于发布数据立方体并且正确地表示度量的格式和数据类型。

结果是,许多传统的企业系统以简单的文本格式发布多维数据。然而,这妨碍了报表软件对发布的数据进行进一步的计算和分析。

发明内容

总地说来,本发明致力于从企业软件系统发布多维数据的技术。例如,本技术可以将多维数据发布到出于报表目的而优化的关系数据库模式(database schema)。例如,数据库模式可以是如这里所述的关系星形模式。

本技术可以包括基于多维数据立方体的组织而自动生成数据库模式的过程,以及利用来自数据立方体的数据填充数据库模式的过程。数据库模式可以用来报告多维企业数据,或者可以用作将企业数据向企业软件系统中的数据仓库移动的集结地。

所述技术可以进一步包括从数据库模式中自动生成报表模板的过程。该报表模板用作一个框架,通过它可以容易地创建报表,以访问和呈现发布到数据库模式的多维企业数据。进一步,描述了从数据库模式自动再生报表模板的技术,并使该再生的报表模板同步以包括施加到前一报表模板上的任何用户变化。

在一个实施例中,一种计算机实施的系统包括:关系数据库和模式生成器。所述模式生成器为所述关系数据库产生数据库模式,用于以关系数据库形式存储多维数据。所述多维数据包括用于数据立方体的维度的至少一个度量,所述度量具有多个不同数据类型和格式,并且所述模式生成器产生所述数据库模式,以存储所述多个不同数据类型和格式的度量的值。

在另一个实施例中,一种计算机实施的方法,包括:响应于用户的输入选择多维数据,其中所述多维数据包括用于数据立方体的维度的至少一个度量,所述度量具有多个不同数据类型和格式。所述方法还包括为关系数据库产生数据库模式,以存储所述多个不同数据类型和格式的度量的值。

该技术可以提供一种或多种优点。例如,该技术提供数据库模式(如关系星形模式)的自动创建,其中所述数据库模式能够接受可在数据立方体中应用的异构的数据类型和异构的格式。而且,所述模式可以被自动地配置以存储解释所包含的企业数据所需的元数据。通过这种方式,其它软件应用程序,如报表工具,可以容易地使用所述数据库模式和其中包含的企业数据,来分析和报告。

本发明的一个或多个实施例的细节在下面的附图和说明中阐明。本发明的其它特征、目的和优点将从说明书和附图以及权利要求中显而易见。

附图说明

图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是说明示例性企业4的方框图,该示例性企业4具有计算环境10,其中多个用户12A-12N(统称为“用户12”)与企业规划系统14相互作用。在图1所示的系统中,企业系统14通过网络18可通信地连接到多个计算设备16A-16E(统称为“计算设备16”)。用户12与它们各自的计算设备16相互作用,以访问企业规划系统14。

出于示例的目的,本发明参考企业规划系统,如企业财务或预算规划系统来进行描述。这里描述的技术可以被容易地应用于其它使用多维数据的软件系统,包括其它大型企业软件系统。其它企业软件系统的实例包括定单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统,以及其它企业软件系统。

通常,企业规划系统14能够使企业的自顶向下的目标和详细的自底向上的预测相一致并实现自动化。企业规划系统14实施并管理企业规划过程,其通常包括三个功能:(1)建模(modeling),(2)贡献(contribution),以及(3)一致(reconciliation)。

最初,高等级的企业管理者或执行者,称为分析师,为企业定义组织的目标,并建立规划模板。分析师可能包括,例如财务分析师,如主要的财务官员、高级财务分析师或产品和销售分析师。更具体而言,分析师开发具有多个分层布置的节点的模板,其中所述节点代表组织(如商业单位或部门)中的各种成本中心。然后分析师为组织层次中的每个节点指定共同的目标数据。共同的目标数据根据企业执行的特定企业规划活动而可能包括财务数据、税务数据、定单数据、库存数据等。然后分析师为每个节点分配一个或多个企业用户12,如管理员,超级用户,销售代表,实验室管理员等,他们负责对应于该节点的成本中心的企业规划。每个企业用户12可以被指定为提供规划数据给企业规划系统14的贡献者(contributor)、接受或拒绝来自贡献者的贡献的审阅者,或两者。贡献者和审阅者可以是企业内或连接到网络18的其它实体内的授权用户,如供应商或客户。

被指定为贡献者的企业用户12与企业规划系统14相互作用,以贡献数据的形式输入详细的预测。如上所述,企业用户12可以根据企业执行的特定企业规划活动而提供详细的财务预测、税务预测、定单预测、库存预测、估计的资源需求等。

企业规划系统14自动使预测数据与分析师所提供的共同的目标数据相一致。尤其是,企业规划系统14依照定义的模板(即,由分析师创建的企业规划模板)进行操作,以提供具有多个一致等级的分层的规划过程。当每个贡献者提供他或她的贡献数据(一般称为“企业数据”)时,企业规划系统14实时地自动聚合整个企业的贡献数据,并向被指定为与企业的更高等级有关的审阅者的企业用户12提供对该聚合数据的访问。尤其是,当从贡献者接收到贡献数据时,企业规划系统14标识受新接收的贡献数据影响的组织模板的所有更高等级,并实时计算每个等级的新的聚合总数。

从而,审阅者在企业规划会话期间实时查看整个企业的聚合数据。在每个等级,企业规划系统14确保企业模板的节点所定义的审阅者使目标数据与预测数据相一致。每个审阅者例如可以考虑到由分析师提供的共同目标而拒绝或接受贡献数据。这个过程持续,直到贡献数据最终被组织层次中的最高等级核准,从而确保来自贡献者的贡献数据与分析师提供的共同目标相一致。

通过这种方式,企业规划系统14可以提供比传统技术所提供的更精确的企业规划。例如,企业规划系统14可以通过使得组织能够将共同模板和组织目标与详细预测相一致来提高企业规划的准确性和可预测性。该技术可以提供一个平台,其传递合作的、实时的规划能力,而不需要对预测进行离线整理和聚合。因为企业规划系统14能够实时聚合贡献数据,所以可以向所有的用户12呈现精确的、最新的数字。此外,企业规划系统14的构造可以容易地按比例缩放以应用于几千个用户,并可以被设计为围绕最好的规划实践。此外,该技术可以使企业用户12(即贡献者和审阅者)更多地参与,从而允许缩短精确的规划周期。

企业用户12可以使用多种计算设备通过网络18与企业规划系统14相互作用。例如,企业用户可以使用膝上型电脑、桌上型电脑等运行web浏览器(如来自华盛顿州雷蒙德市的微软公司的InternetExplorerTM)来与企业规划系统14相互作用。或者,企业用户可以使用个人数字助理(PDA),如来自加利福尼亚州圣克拉拉市的Palm公司的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的一个实施例的方框图,计算设备16A包括当用户12A(如贡献者或审阅者)操作时在其上执行的各种软件模块。在该示例性实施例中,计算设备16A包括web浏览器20,计算引擎22,以及一个或多个数据立方体24。此外,计算设备16A包括发布模块26,模式生成器30,模板生成器32,以及报表工具34。

在一个实施例中,计算引擎22包括前部的计算引擎22,其被包围在Active X对象中,其中Active X对象是以基于数组的语言建立的。在企业规划的实例中,用户12A可以与web浏览器20相互作用,以进入并操纵预算或预测数据。数据立方体24包括规划数据,其可以包括自顶向下的目标和自底向上的贡献数据。计算引擎22和数据立方体24为由计算设备16A本地执行的企业规划会话进行各种计算。因此,在这个实例中,贡献者可以修改他或她的各个贡献数据,并进行企业规划过程必需的计算,而不必访问企业规划系统14。换句话说,计算引擎22和数据立方体24可以通过计算设备16A本地保持(如作为Active X组件)。

用户12A可以本地保存规划数据,并提交规划数据给企业规划系统14,以与来自其他用户的规划数据进行聚合。企业规划系统14自动地实时聚合整个企业4的贡献数据,并向与企业的更高等级有关的审阅者提供对该聚合的数据的访问。这个过程持续,直到贡献数据最终被与组织层次的最高等级有关的审阅者核准,从而确保来自贡献者的贡献数据与共同目标相一致。在其它实施例中,计算引擎22和数据立方体24可以只在企业规划系统14中保持,并本地安装在计算设备16上。

通常,发布模块26代表从一个或多个数据立方体24发布多维数据的软件模块。用户,如用户12A,与发布模块26相互作用,以启动发布过程。在这个过程期间,用户12A从一个或多个数据立方体24中选择一个或多个维度。模式生成器30自动产生数据库模式,以以关系数据库的形式存储该选择的多维数据。特别地,模式生成器30分析数据立方体24和组成该立方体的维度,以确定需要在该数据库模式中创建哪一个关系表格。

模板生成器32基于数据库模式自动生成报表模板。报表工具34根据该报表模板输出报表17,以呈现所发布的多维数据。

图3是进一步详细说明远程计算设备的某些软件组件的方框图。如图3中说明的,发布模块26代表软件模块,用户,如用户12A,利用该发布模块26来发布来自一个或多个数据立方体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。当生成报表17以呈现所发布的多维数据时,用户报表模板38例如可以定义额外的计算或格式属性,以供报表工具34使用。模板生成器32可以保持活动日志22,以记录对基础模板40的修改,从而随后再次生成用户报表模板38。

图4是说明数据库模式36的一个实施例的图表。在说明的实施例中,数据库模式36包括用于存储元数据的元数据区域50和用于存储所发布的多维数据的数据区域52。

在图4的实例中,模式生成器30以关系星形模式的形式为每个数据发布自动组织数据区域52。数据区域52被称为“星形模式”,因为这种模式的整体关系图类似于星形,如图4中所示,其具有从中心表格星形辐射的“点”。特别地,星形的中心由大的事实表68组成,并且星形的点是维度表62A-62N(“维度表62”)。

对于来自数据立方体24的多维数据的每个发布,数据库模式36更新元数据区域50,并生成新的星形模式。因此,每个发布的特征在于具有非常大的事实表68以及大量较小的维度表62的星形模式,其中事实表68包含基本信息(即,数据立方体关键字和度量)。维度表62可以被看作查找表,它们中的每个包含关于事实表中的特定数据立方体的维度元素。作为一个实例,维度A可以代表地理销售区域,维度B可以代表产品,维度C可以代表时间,维度D可以代表版本。

通常,元数据区域50存储关于所发布的数据立方体24的元数据。特别地,元数据定义了已经发布的数据立方体24的任一个中的度量的数据类型和格式。元数据区域50还存储描述数据库模式36自身的元数据。这个元数据可以允许开发者或自动工具增强对数据库模式36的解释。作为一个实例,报表工具34和模板生成器32可以使用描述数据库模式36的元数据,以增强对所发布的多维数据的解释和报告。

在这个实例中,元数据区域50包括应用对象表格64,应用列表格66以及维度格式表格63。应用对象表格64包含描述不同的维度表62和事实表68的元数据,其中所述不同的维度表62和事实表68由模式生成器30自动创建,以发布所选择的多维数据。特别地,应用对象表格64的每行包含所发布的不同的多维对象的元数据并且尤其是存储所述多维对象的维度表62的元数据。表格1列出了应用对象表格64的一个实施例的示例性列。

表格1

  列描述  对象名称包含用于存储模板对象(如立方体和维度)的表格的名称。  显示名称包含用户12在企业应用程序中所看到的、模板对象(如立方体和维度)的显示名称。  对象id包含模板对象的全球唯一标识符(GUID)。  对象类型id包含对象类型标识符,其标识这一行所描述的是哪一类型的表格。  数据存储类型id包含数据存储对象类型标识符,其表示这一行所描

述的是什么类型的数据库对象,例如数据库TABLE或数据库VIEW。    对象版本指定用来创建对象的企业软件的版本。    最后保存的包含对象最后被发布时的时戳。这列是可选的。    库id包含用来创建该对象的企业软件库的标识符。这列是可选的。

应用列表格66包含描述不同的维度表62和事实表68的各个列的元数据。尤其是,应用列表格66的每行描述维度表62或事实表68的各个列。结果是,应用列表格66为应用对象表格62中的每个行包含多个行。表格2列出了应用列表格66的一个实施例的示例性列。

表格2

    列描述    对象名称包含模板对象的表格的名称。对象名称是与在应用对象表格的对象名称列中发现的相同的名称。    列名称包含用于发布对象的表格中所包含的列的名称。    显示名称包含用户在企业应用程序中所看到的显示名称,以与包含在用于发布规划对象的表格中的列相关。这实质是列的可读名称,以代替在数据库系统中使用的名称,其中数据库系统可能具有对某些字符的限制。    列id这是与包含在用于发布规划对象的表格中的列相关的GUID。    对象类型id包含包含该列的表格的对象类型id。    列类型id包含用于该列的独立的数据类型标识符。该标识符例如可以是TEXT_VALUE或FLOAT_VALUE。    列顺序包含在用于发布规划对象的表格中该列的顺序。这被用来对列的显示进行排序。

    逻辑数据类型包含用于该列的RDBMS独立类型标识符。

维度格式表格63包含描述不同的事实表68的度量列的数据类型和格式信息的元数据。尤其是,维度格式表格63的每一行描述度量列的数据类型和它的格式的属性,如数字值的缩放比例。表格3列出了维度格式表格63的一个实施例的示例性列。

表格3

    维度guid    包含格式化的列的维度的GUID。    项目id    具有数据类型和格式的列的GUID。    格式类型    列的数据类型。如数字,数据或百分比。    负标记符号    用于代表负值的符号。    小数位的数量    要显示的小数位(或精度)的数量。    缩放比例因数    数字值的缩放比例因数。    零值字符    用于表示等于0的值的字符。

图5说明了用于单个维度(如在该实例中的维度62A)的数据库模式36的示例性组织结构。当形成数据库模式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根据用户12A的希望创建项目表格70,简单总和表格72或计算的层次表格74中的一个或多个。

进一步地,模式生成器30将元数据存储在数据立方体元数据表格64中,该数据立方体元数据表格64描述所选择的数据立方体和被发布的组成维度。模式生成器还将元数据存储在模式元数据表格66中,该模式元数据表格66描述数据库模式36。模式生成器30可以是与发布模块26分离的软件应用程序,或者可以是一个或多个可被发布模块26调用的软件程序(如动态链接库)。

在数据库模式36创建之后,发布模块26访问所选择的数据立方体24,并获得多维数据以填充数据库模式(84)。如上所述,发布模块26用被发布的数据立方体的关键字和度量来填充新创建的数据库模式36的对应的事实表68。然后发布模块26填充正被发布的每个维度的维度表62。对于每个维度,发布模块26根据用户12A的希望来填充项目表格70,简单总和表格72或计算的层次表格74中的一个或多个。

接下来,模板生成器32基于新创建的数据库模式36自动生成基础报表模板40(86),并通过引入包含在基础报表模板中的定义来创建用户报表模板38。模板生成器32允许用户12A增强用户报表模板38(如,通过定义布局和格式属性)。模板生成器32保持活动日志22,以记录对用户报表模板38的修改(88)。通过这种方式,模板生成器32可以再次应用改变以在事件数据库模式36中重新生成用户报表模板38,并且基础报表模板32随后也被改变。

响应于来自用户12A的输入,报表工具34根据改进的用户报表模板38输出报表17,以呈现所发布的多维数据(90)。

图7A-10B图形示出了模式生成器30生成维度表62的简单总和表格72的一个示例性过程。简单总和表格72包含分层形式的维度元素。对于简单总和表格72,模式生成器30生成用于描述节点之间的简单父-子关系的简单层次。简单总和表格72的每行代表叶元素,并且更具体而言每行代表从维度层次的根到叶成员的完整路径。

如上面简单讨论的,为了使模式生成器30以保证提供正确总数的方式产生简单总和表格72,模式生成器30可以识别层次中的节点,以确保它们是可聚合的。通过保证信息是可聚合的,报表工具34可以应用层次的较低等级的和操作,并且相同的总数将被认为是数据立方体中的总数。随后,报表工具34可以使用简单总和表格72操纵该总和,并对所发布的数据进行进一步的分析。

通常,模式生成器30基于一组规则从维度生成简单总和层次。首先,模式生成器30扫描每个维度项,并使用项的相关数学表示来标识项的父母。项的父母是涉及该项的第一简单总和。在有多个节点的父母的候选者的情况下,节点被按模板顺序分配给第一父母,并且其它候选父母被认为是层次中的叶节点。模板顺序是指其中项已经被增加到模板的顺序。在使用两个前面的规则不能确定父母并且节点不是简单总和的情况下,该项被认为是根节点(在文本的剩余部分被称为孤节点)。叶节点仅仅是由这个算法定义的末节点,并且可以与复杂的计算相关联。最后,简单总和节点的所有父母和起源被包括在所发布的最终维度层次中。

简单总和节点是其相关计算是完全独立于层次中的任何其它节点的节点上操作的简单总和的那些节点。非简单总和可能包括,例如,其相关计算是除了简单总和之外的任何计算(如乘法)的那些节点。这种非简单总和的实例参考图9A-9B和10A-10B说明。非简单总和的另一实例可能包括其相关计算是不完全独立于层次中的另一节点的节点上操作的那些节点。这种非简单总和的一个实例参考图8A-8B说明。

在一个实施例中,为了抛开非简单总和节点,可以应用下面的规则。首先,如果节点具有多于一个父母,则将模板顺序中的第一父母指定为父母,并将层次顺序中的第二父母的子层移动到根部。这将导致层次顺序中的第二父母变为叶节点。第二,如果节点具有不是简单摘要的相关计算,则将那个节点的所有子层都移动到根部。这将导致非简单总和节点变为叶。

在图7A-10B中所示的实例中,说明了企业规划模板上的节点。这些节点由字母/数字组合表示,并且项之间的关系被画为线条。父节点表示从其它节点计算的项。父节点将它们的示例性值显示在圆括号中,如图7A中用于节点[B1]的“(3)”。叶节点显示2个值,如图7A中用于节点[D1]的“(5,0)”。圆括号中的第一项是节点值,第二项是“叶代码”。为了保证层次能够聚合数据立方体中表示的正确总数,当维度层次被识别时,模式生成器30使用叶代码来描述丢失的信息。

在图7A-10B中所示的示例性实施例中,叶代码如下:

0=简单总和节点的直接后代,

1=具有多个父母的叶,

2=叶项是已经被移动到根部的子层次的一部分,以及

3=叶项是孤立的,或者没有父母。

图7A表示在发布之前在数据立方体中定义的示例性维度层次。在这个实例中,维度层次的所有节点由简单摘要来定义。尤其是,在图7A中节点之间的关系在数据立方体中通过下面的等式来描述。

A1=B1+D1+G1,

B1=C1+E1,

G1=H1+P1,以及

P1=S1+T1。

图7B描述了由模式生成器在发布期间产生的简单摘要层次122,用于存储在简单总和表格72中。简单总和层次122的叶节点值和叶代码被表示在圆括号中。注意,因为层次120中的每个节点已经由简单摘要描述了,所以每个叶节点[C1],[E1],[D1],[H1],[S1]和[T1]具有等于0的叶代码。在这种情况下不需要层次120的识别,因为每个节点被定义为简单摘要。

图8A示出了维度层次126的一个实例,维度层次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说明了由模式生成器在发布期间产生的结果简单摘要层次128,用于存储在简单总和表格72中。

图9A示出了维度层次130的一个实例,维度层次130包括非简单摘要。图9A中的节点之间的关系由下面的等式描述。

A3=B3+D3+G3,

B3=C3+E3,

G3=H3+P3,以及

P3=S3*T3。

在图9A所示的实例中,父节点[P3]是叶节点[S3]和[T3]的乘积。在一个实施例中,模式生成器30将非简单摘要的叶节点移动到根部。因为节点[P3]变为叶节点,所以节点[S3]和[T3]被孤立并被移动到根部。图9B描述了由模式生成器在发布期间产生的结果简单摘要层次132,用于存储在简单总和表格72中。

图10A示出了维度层次134的一个实例,维度层次134包括非简单摘要的子层次133。图10A中的节点之间的关系由下面的等式描述。

A4=B4+D4+G4,

B4=C4*E4,以及

C4=S4+T4。

在这个实例中,节点[B4]是节点[C4]和[E4]的乘积。节点[C4]具有它自己的简单摘要层次。图10B描述了由模式生成器在发布期间产生的结果简单摘要层次136,用于存储在简单总和表格72中。因为非简单总和节点不可能是父母,所以模式生成器30识别层次,以使得节点[B4]变为叶,节点[E4]和[C4]变为孤立的并被移动到根部。节点[C4]保留其子层次。

图11示出了为所发布的数据立方体所创建的示例性事实表68的一部分。在图11的实例中,事实表68包含标识符列140A-140C,用于除了被选择和这个数据立方体一起发布的维度之外的每个维度。因此,在图11的实例中,事实表68包括用于“员工”维度,“elist”维度,和“版本”维度的标识符列140A-140C。

事实表68还包含一个或多个列,用于立方体的每个度量,取决于哪些列被用户12A选择。特别地,事实表68包含支持由用户12A所请求的数据类型的列。在这个实例中,三个列被用于每个度量。随后,模式生成器30生成事实表68,以包括列142A-142C,用来分别存储文本,浮点和日期形式的“等级”度量的数据。类似地,多个列被用于存储“底薪”度量和其它度量的数据,虽然为了易于说明,图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描述的(184)。特别地,模板生成器32装载最初用来生成报表模板的维度选择。

接下来,模板生成器32删除旧的基础报表模板40,并基于数据库模式36中修改后的元数据,再次生成基础报表模板(186)。然后模板生成器32使用户报表模板38同步(188)。特别地,模板生成器32删除用户报表模板,并根据新生成的基础报表模板40再次创建用户报表模板。然后模板生成器32再次应用记录在活动日志22中的改变(190),以再次存储用户12A对用户报表模板38进行的前述增强。然后模板生成器32基于更新的用户报表模板来更新默认报表(192)。

通过这种方式,模板生成器32保持了对用户报表模板38的增强,同时允许用户修改包含发布的多维数据的基本数据库模式36。报表工具34使用用户报表模板38来生成报表17。

在一个实施例中,模板生成器32将基础报表模板40创建为多个可扩展标记语言(XML)文件。模板生成器32在报表模板中生成一组文件夹,以存储描述数据库模式36的“物理视图”的定义。特别地,第一组文件夹包含描述数据库模式36的每个关系表格(包括事实表68和维度表62)的信息。第二组文件夹包含描述“商业视图”的定义,并包含描述表格之间的关系的信息。特别地,第二组文件夹包含与被选择用于报表模板的数据库模式中的每个事实表相关的每个星形模式的定义。当生成基础报表模板40时,模板生成器32包括指定事实表和维度表之间的关系的定义,尤其是主要的和外来的关键字和关系的基数。

而且,当创建基础报表模板40时,模板生成器32生成定义以定义关系表格的对象和数据库模式36的列。模板生成器32使用存储的元数据来确保在报表模板中分配给表格和列的名称与存储在企业规划系统中的模板中的相同。模板生成器32生成列的定义,其指定数据库模式中的每列的用途(如,数据类型、属性、标识符)。

模板生成器32还包括报表模板中的定义,其允许报表工具34理解由各种维度表62(如,项目表格70、简单总和表格72和计算的层次表格74)描述的维度的层次结构。如上所述,这可以在用户12A想要聚合并总结一个或多个报表17中的值时被报表工具34使用。当使用了共享维度时,这些定义由报表工具使用,以在正确的等级进行聚合。

图14是说明示例性用户界面200的屏幕,用户(如用户12A)利用用户界面200进行交互以启动多维数据的发布。图15是说明示例性用户界面202的屏幕,用户12A利用用户界面202来为可用的数据立方体(“D-Cubes”)的任一个选择一个或多个维度(“D-List”)。

图16是说明示例性用户界面204的屏幕,用户12A可以利用用户界面204选择选项206,以指导模式生成器30创建支持用于被发布的维度的数据类型所必需的所有列。或者,用户12A可以选择一个或多个数据类型208,以指导模式生成器30只创建用于指定数据类型的列。

图17是由模式生成器30产生的示例性用户界面210的屏幕说明,用于显示在创建数据库模式36时要创建的列以及它们相应的列名和列数据类型。

图18是模板生成器32的示例性用户界面214的屏幕说明。如图所示,用户界面212提供一列模板。对于每个模板,用户界面214显示相应的文件夹(如,物理视图文件夹、商业视图文件夹和所有子文件夹),以及所包含的对象定义(如表格定义)。

图19是模板生成器32的示例性用户界面216的屏幕说明,用户12A利用用户界面216从数据库模式36中选择数据立方体以在生成基础报表模板40和用户报表模板38时使用。

图20是模板生成器32的示例性用户界面218的屏幕说明,用户12A利用用户界面218来选择维度层次信息的类型,以包括在基础报表模板40和用户报表模板38中。特别地,用户界面218允许用户12A选择一个或多个:(1)无格式列表形式的项目表格70,(2)从简单总和表格72导出的层次列表,或(3)从计算的层次表格74计算的层次列表。

图21是模板生成器32的示例性用户界面220的屏幕说明,用户12A利用用户界面220启动改变数据库模式36之后的同步过程,以基于活动日志22再次创建用户报表模板38。如图所示,用户界面212提供可由用户选择的活动日志的列表。对于每个活动日志,用户界面2 12列出已经被记录的特定修改,和修改发生的顺序。通过这种方式,用户12A能够观察将在用户报表模板38和基础报表模板40同步后再次应用的修改。

已经描述了本发明的各种实施例。尽管参考企业规划系统(如企业财务或预算规划系统)进行了描述,但是该技术可以容易地应用于其它软件系统,包括其它大型企业软件系统。其它企业软件系统的实例包括定单管理系统、库存管理系统、销售人员管理系统、商业智能工具、企业报表工具、项目和资源管理系统以及其它企业软件系统。而且,该技术可以在任何类型的计算设备上实施,包括服务器、客户端计算机、膝上型计算机或其它设备。这些和其它实施例都在下面的权利要求的范围内。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号