用于企业软件系统的导出队列的制作方法

文档序号:6553072阅读:167来源:国知局

专利名称::用于企业软件系统的导出队列的制作方法
技术领域
:本发明涉及软件系统,尤其涉及从企业软件系统中导出数据的技术。
背景技术
:企业软件系统通常是能够支持如说成百上千个并发用户的复杂的、大规模的系统。企业软件系统的实例包括财务规划系统、预算规划系统、订单管理系统、库存管理系统、销售力管理系统、商业智能工具、企业报表工具、项目与资源管理系统以及其他企业软件系统。在许多情况下,用户会希望从企业软件系统中导出数据。例如,用户可能希望从财务规划系统向报表系统导出数据。在这些情况F,经常要求提供"一致性导出",即,导出的数据正确地反映企业数据在启动导出时的状态。例如,在导出过程中进行更新或其他数据发生变化都会导致不一致的数据,这是因为无法将更新的部分传递给已经导出的企业数据部分。结果,只有一部分的数据可以反映该更新,而之前导出的数据会反映在更新之前的状态。企业软件系统所采用的一种传统的解决方案是"冻结"或"锁定"整个企业软件系统,以导出一致性数据。例如,必须在启动任何导出之前使某些软件系统脱机。按照这种方式,企业软件系统设法防止在导出处理过程中有任何更新或数据变化。然而,该导出处理也许是耗费时间的,而且在一段时间内将企业用户封锁在外是不合需要的。因此,某些企业软件系统设法通过定义"中转区"而使系统脱机的时间最小化。当启动导出处理时,企业软件系统对将要导出的数据进行快照,并将快照复制到中转区。该解决方案会减少将用户封锁在系统外的时间量;然而,该解决方案在需要多个并发导出时并不适用。而且,将要导出的数据量是庞大的,消耗在复制数据以形成快照上的物理资源也许是巨大的。发明概述总体而it,本发明涉及用于从如企业软件系统的软件系统中导出数据的技术。具体来说,该技术用于从软件系统中导出一致性数据集合。而且,即使是在多个并发导出时该技术也提供一致性数据。在一个实施例中,系统包括一个数据库,一个或多个企业软件模块和一个导出控制模块。数据库存储用于定义多个节点的建模数据,以及在每--个节点内相关联的企业数据。企业软件模块访问数据库并修改企业数据。导出控制模块接收用于指定一组节点的导出选择,并响应于导出选择,将与所指定的该组节点相关联的企业数据作为导出数据输出。在修改任何节点的企业数据之前,当导出选择指定了要修改的节点时,企业软件模块创建该节点的企业数据存档。导出控制模块利用存档的企业数据来输出一致性导出数据。在另一个实施例中,方法包括存储用于定义企业的一组节点的建模数据,其中每一个节点包含相关联的企业数据;以及存储用于定义一个导出选择的导出控制数据,其中导出选择使该组节点与至少一个导出客户相关联。该方法进一步包括接收用于更新与其中一个节点相关联的企业数据的请求,为所请求的其中这个节点创建企业数据的存档,并基于未更新的企业数据和存档的企业数据,输出针对导出选择的一致性导出数据。在另一个实施例中,计算机可读介质包含指令,这些指令使得处理器存储用于定义企业的一组节点的建模数据以及用于定义一个导出选择的导出控制数据。每一个节点包含相关联的企业数据,而且该导出选择使得该组节点与至少一个导出客户相关联。该指令还使处理器接收请求用于更新与其中一个节点有关联的企业数据的请求,为所请求的其中这个节点创建企业数据的存档,并基于未更新的企业数据和存档的企业数据,输出针对该导出选择的一致性导出数据。以下在附图和说明书中阐述了本发明的一个或多个实施例的细节。根据说明书、附图和权利要求书,本发明的其他特征、目的和优势将变得显而易见。图1是表示一种示范性计算环境的方框图,其中多个用户与企业规划系统交互,该企业规划系统能够启动并自动实现自上而下的目标与自F而上的预测之间的调和(reconciliation)。图2是进-一步详细表示企业规划系统的示范性实施例的方框图。图3是表示关于导出控制数据的示范性数据组织模型的方框图,该导出控制数据用于控制来自企业规划系统的数据的--致性导出。图4是表示用于导出一致性数据的导出控制模块的示范性操作的流程图。具体实施例方式图1是表示示范性计算环境IO的方框图,其中多个用户12A-12N(统称为"用户12")与企业规划系统14交互。在图1所示的系统中,企业规划系统14通过网络18与多个计算装置16A-16E(统称为"计算装置16")通信连接。用户12与他们各自的计算装置16交互,以访问企业规划系统14。出于示例性目的,参照一种企业规划系统来描述本发明,例如企业财务或预算规划系统。在此描述的技术可以容易地应用到其他软件系统中,包括其他大规模企业软件系统。其他企业软件系统的实例包括订单管理系统、库存管理系统、销售力管理系统、商业智能工具、企业报表工具、项目与资源管理系统以及其他企业软件系统。通常,企业规划系统14启动并自动实现企业自上而下的目标与具体的自下而上的的预测之间的调和。企业规划系统14执行并管理企业规划处理,该处理通常包括三个功能(l)建模,(2)贡献(contribution)禾卩(3)调和。最初,高级企业经理或执行官(称为分析师)定义组织的目标,并为该企业建立规划模型。举例来说,分析师可以包括财务分析师,例如首席财务官、高级财务分析师或者产品与销售分析师。更具体地说,分析师开发一个模型,该模型包括多个分等级排列的节点,而这些节点表示该组织内的各个成本中心,例如业务单位或部门。然后,分析师为组织体系的每一个节点指定共同的(corporate)目标数据。根据企业所执行的特定企业规划活动,该共同的目标数据可以包括财务数据、税收数据、订单数据、库存数据等等。然后,分析师将一个或多个企业用户12分配给每一个节点,例如经理、主管、销售代表、实验室管理者等等,他们负责与该节点相对应的成本中心的企业规划。每一个企业用户12都可以被指定为向企业规划系统14提供规划数据的贡献者,接受或拒绝来自于该贡献者的贡献的审阅者,或被指定为两者。贡献者和审阅者可以是企业内的授权用户或与网络18相连的其他实体内的授权用户,例如供应商或消费者。指定为贡献者的企业用户12与企业规划系统14交互,从而以贡献数据的形式输入具体的预测。如上所述,根据企业所执行的特定企业规划活动,企业用户12可以提供详细的财务预测、税收预测、订单预测、库存预测、估计出的资源需求等等。企业规划系统14利用分析师所提供的共同目标数据,自动实现预测数据的调和。具体而言,企业规划系统14根据所定义的模型来进行操作,即按照由分析师创建的企业规划模型进行操作,用以提供一种具有多个调和等级的分级规划处理。由于每一个贡献者都提供他/她的贡献数据(通常称为"企业数据"),所以企业规划系统14自动实时汇总整个企业的贡献数据,并向被指定为与企业的各个更高等级相关联的审阅者的企业用户12提供对该汇总数据的访问。具体而言,一旦接收到来自于贡献者的贡献数据时,企业规划系统14识别受最新接收的贡献数据影响的该组织模型中的所有较高等级,并实时计算每一个等级的新的汇总的总数。因此,审阅者在企业规划会议(session)过程中实时査看整个企业的汇总数据。在每一个等级,企业规划系统14确保作为该企业模型的节点所定义的审阅者能够使目标数据和预测数据相调和。举例来说,每一个审阅者可以鉴于分析师所提供的共同目标来拒绝或接受贡献数据。该处理一直持续直至贡献数据最终由该组织体系的最高等级批准,从而确保来自于贡献者的贡献数据与分析师提供的共同目标相调和。如此,企业规划系统14可以提供比利用传统技术更为精确的企业规划。例如,企业规划系统14可以通过利用详细的预测使组织来调和共同模型与组织目标,从而提高企业规划的精确度和可预测性。该技术可以提供一个用于传递合作的实时规划能力的平台,而无需脱机进行预测的合并和汇总。由于企业规划系统14可以实时汇总贡献数据,所以可以为所有用户12呈现一种精确的、更新的数字查看。此外,企业规划系统14的体系结构可以容易地调整到成千上万个用户,并可以指定其为近似于实现最佳规划。另外,该技术激发了企业用户12,即贡献者和审阅者的高度参与性,并使得精确规划的周期减少。企业用户12可以利用各种计算装置来通过网络18与企业规划系统14交互。例如,企业用户可以利用膝上型计算机、台式计算机等运行网络浏览器来与企业规划系统14交互,其中该网络浏览器例如为来自位于华盛顿Redmond的微软公司的InternetExplorer。可选地,企业用户可以使用个人数字助理(PDA),例如来自位于加利福尼亚SantaClara的Palm公司的Palm管理器,或可上网的蜂窝电话或类似的装置。网络18表示任何通信网络,例如像因特网那样基于信息包的数字网络。如此,系统10可以容易地调整为适合于大型企业。企业用户12可以通过局域网直接访问企业规划系统14,或者通过虚拟专用网络、远程拨号或类似的远程访问通信机制来远程访问企业规划系统14。企业规划系统14可以运用一种"消减"处理,利用该处理可根据所定义的企业模型为每一个用户12"切割"多维数据存储。在该处理过程中,企业规划系统14识别出分配给作为贡献者或审阅者的用户12的所定义模型的区域,并且企业规划系统14在该分配的基础上"切割"数据存储。当给定用户12登录并继续进行企业规划活动时,企业规划系统14将各自的数据片段传递给相应的计算装置16,以便通过扩展的电子制表应用软件显示给用户。如此,企业规划系统14不必将整个模型传递给每一个用户12,从而减少了通信时间以及资源需求。相反,每一个用户12只接收相关的信息。用户12与计算装置16交互以获取贡献数据,并使该贡献数据与组织目标相调和。正如在此所描述的,企业规划系统14提供一个导出接口用以导出数据。具体而言,企业规划系统14提供一致性导出数据集合17,举例来说,该数据集合可供其他企业软件系统19使用。而且,企业规划系统14即使是在请求和启动多个并发导出时也提供一致性导出数据17。企业规划系统14具有一个用户接口,任何一个用户12都可以通过该用户接口启动对企业规划系统14所维护的规划数据的导出。另外,企业规划系统14提供一个应用编程接口(API),利用该接U口丁自动启动该导出处理,例如,通过fi动代理或任何--个企业软件系统19。图2是进一步详细地表示企业规划系统14的实施例的方框图。在例举的实例中,企业规划系统14包括网络服务器20、应用服务器26和数据库服务器40。网络服务器20提供一个接口用以通过网络18来与导出客户22进行通信。网络服务器20运行网络服务器软件,例如来自位于华盛顿Redmond的微软公司的InternetExplorer。同样地,网络服务器20提供用于根据软件模块21来与贡献者、分析师和审阅者进行交互的环境,软件模块包括分析模块30、贡献模块32、报表生成器34和导出用户接口38。软件模块21典型地采用存储在计算机可读介质中的指令的形式,以便由一个或多个处理器运行。软件模块21可以包括VisualBasic模块、Java脚本、JavaApplet、动态服务器主页、用超文本标记语言(HTML)或动态HTML编写的网页、ActiveX对象和其他适当的模块。网络服务器20提供由软件模块21定义的网页,并将这些网页传递给企业用户12的计算装置。该网页可以包括静态媒体,如文本和图形图像,以及用于从企业用户12接收信息的传统输入媒体,例如,文本输入框、单选按钮、下拉式菜单等等。软件模块21与数据库服务器40交互以访问企业数据42,该企业数据42包括用户数据42A、建模数据42B、规划数据42C和导出控制数据42D。企业数据可以以多种不同的形式进行存储,包括一个或多个数据存储文件,或者在一个或多个数据库服务器上运行的一个或多个数据库管理系统(DBMS)。此外,尽管该企业数据42被单独表示,但是也可以将企业数据42合并到单个数据库或其他数据存储结构内。举例来说,企业数据42可以实现为单个关系数据库,例如来自微软公司的SQL服务器。用户数据42A为每一个用户12存储信息,包括姓名、电子邮件地址和该用户的其它联系信息。建模数据42B存储由分析师定义的企业规划模型。例如,建模数据库42B存储用于定义由分析师拟定的调和处理的信息,包括调和等级数目,体系中的各个不同的"节点",以及与每一个节点相关联的贡献者。规划数据42C为一个或多个规划会议存储每一个节点的实际贡献数据(即"企业数据")。正如以下进一步所述,导出控制数据42C存储与导出客户22指定的导出选择相关的数据。举例来说,导出客户22可以是任何一个用户12、自动代理或任何一个企业系统19。再次参照软件应用21,分析模块30包括一个或多个用以创建企业规划模型的软件模块,用以控制整个规划处理,其中该企业规划模块例如为企业4的财务模块。贡献模块32包括用来提供贡献接口以获取来自于贡献者的贡献数据的软件模块。贡献模块32实时获取并汇总整个企业4的贡献数据,并向与企业4的更高等级相关联的审阅者提供对该汇总数据的访问。报表生成器34包括分析软件模块,该模块根据从贡献者接收并存储在规划数据42C内的贡献数据而生成企业规划报表。特别地,该分析软件模块允许用户12用公式表示复杂的查询以便生成报表,并完成对企业模型的当前数据进行的其他数据分析功能。这些软件模块可以是具有浏览器接口的基于网络的模块,或者可以是独立的可执行程序。商业逻辑模块46在应用服务器26所提供的操作环境内运行,并提供响应于软件模块21而访问和处理数据库42内存储的数据的功能。特别地,商业逻辑模块46包括用以实现企业规划函数的软件程序,并由软件模块21调用。导出控制模块45基于由导出客户22启动的导出选择来控制来自规划数据42C的一致性数据的导出。具体而g,导出控制模块45接收来自于导出客户22的导出选择,而该导出选择指定所有或部分的规划数据42C。举例来说,一个选择可以指定由建模数据42B定义的规划模型的一个或多个节点,并请求导出与每一个指定节点相关联的当前规划数据。导出控制模块45更新规划数据42C并导出控制数据42D以记录该选择,并在请求时提供数据的一致性导出。导出控制模块45提供导出应用编程接口(API)47,导出客户22可以利用该导出应用编程接口直接请求和获得规划数据的一致性导出。可选地,导出用户接口38提供一个手动机制用以调用导出API47。具体而言,人工导出客户22(例如,用户12)可以与导出用户接口38交互来手动指定一个或多个节点并启动该导出处理。在这种情况下,导出用户接口38轮流调用导出API47,使其与导出控制模块45交互。可选地,导出客户22可以直接调用导出API47。在这种情况下,导出客户22可以是自动软件代理或任何一种企业系统19。在一个实施例中,导出API47公开了以下表1中所列的用于与导出控制模块45进行交互的方法。表l<table>tableseeoriginaldocumentpage15</column></row><table><table>tableseeoriginaldocumentpage16</column></row><table>方法createExportClient接收一个唯一的标识符(例如,全球唯一的标识符),该标识符唯-一地识别出一个导出客户22。另外,createExportClient的参数集合用于识别出请求导出客户22希望从中导出数据的规划数据42C的一组节点。导出控制模块45更新导出控制数据42D,以便将作为可能的导出客户的该唯一标识符记录和识别出的节点记录下来。方法removeExportClient使得导出控制模块45注销该导出客户。方法export具有一个参数集合,该参数集合包括一个或多个与以前注册的导出客户22相关联的唯一标识符。具体而言,导出控制模块45更新导出控制数据42D,以使该唯一标识符的集合与共用"导出选择"相关联。换言之,导出控制模块45确保export方法内指定的每一个导出客户22接收相同(即,一致的)的一致性导出数据。这些或其他导出客户22可以连续地调用export方法来创建附加的导出选择,其中每一个导出选择与不同的一致性导出数据集合相关联。正如以下详细描述的那样,导出客户22调用方法dataForNode为模型中的一个特定节点获得与特定导出选择相关联的导出数据。一旦导出客户22针对给定导出选择获得了所有所需的导出数据,该导出客户就调用exportClientComplete。当与一个导出选择相关联的所有导出客户22都指示该导出处理已经完成,导出控制模块45就可以运用常规事务处理来释放资源。图3是表示针对导出控制数据42D的示范性数据组织模型68的方框图。在该实例中,导出控制数据42D包括多个数据库表。导出客户表70存储用于识别所注册的导出客户22的数据。导出客户表70包括多个行和列,如通常在关系数据库中那样。每一行使--个注册的导出客户22与一个导出选择相关联。在一个实施例中,每一行存储相应的导出客户22的唯一标识符、与该特定导出选择相关联的客户名和唯一标识符。如此,该行内的客户标识符和选择标识符将所识别出的导出客户与特定的导出选择相关联。客户名可以用于其中两个处理共享该导出客户的应用中,而不必传递该客户标识符。导出选择表74存储了用于描述特定导出选择的数据。在一个实施例中,每一行都与一个不同的导出选择相对应,并包括一个唯一选择标识符和一个选择版本。该选择版本是一个整数,其在定义导出选择时增加,并用来跟踪与每一个导出选择相关联的一致性数据的特定版本。如图3所示,导出客户表70与导出选择表74的关系是N:1,表示导出客户表70内任何N行(即,导出客户)可以与导出选择表74中任何一行相关联。如此,多个导出客户22可以与同一导出选择相关联。导出客户节点表72存储用于使所注册的导出客户与规划模型内将导出数据的节点相关联的数据。在一个实施例中,导出客户节点表72的每一行都包括一个所注册的导出客户22的标识符和规划模型内一个节点的--个标识符,正如规划数据42C所定义的。当创建和删除新的导出客户时(即,通过createExportClient禾卩removeExportClient方法),导出控制模块45更新导出客户节点表72内的表项。在示范性实施例中,导出客户节点表70与导出客户节点表72的关系是1:N,表示注册在导出客户表72内的任何一个导出客户可以与规划模型中任何N个节点相关联。节点状态表76存储与每一个节点相关联的实际规划数据,即图2的规划数据42C。在一个实施例中,每一行都与一个不同的节点相关联,并将针对特定节点的数据存储为一个XML字符串。此外,每一行都包括一个或多个"存档"标签(例如,比特),该标签指出是否必须在更新前对规划数据进行存档(即,备份复制)。具体而言,该存档标签用来识别是否有任何导出客户将该节点指定为一个导出选择的目标,并由此必须在变化前对规划数据进行存档。如此,存档的规划数据可以用来满足与该导出选择相关联的一致性数据集的导出。导出客户节点表72与节点状态表76的关系是N:1,gp,其中节点状态表的每一个节点都可以通过导出客户节点表与多个客户相关联。导出节点复制表80存储-一些节点的数据存档副本,这些节点当前与一个导出处理相关联并包含修改了的原始数据(即,节点状态表76内存储的数据)。换言之,在修改原始规划数据42C之前,软件模块21检査节点状态表76内的存档标签,如果该标签己经设置,就将当前数据存档到导出节点复制表中。举例来说,软件模块21可以直接将当前数据存档到节点复制表中,或者可以调用导出控制模块45来对该数据进行存档。在-个实施例中,节点复制表80的每一行都包括一个节点标识符,一个选择版本,存档的数据,以及一个标签,该标签用来确保在修改该节点的当前规划数据之前就已经完成了存档。应用状态表78存储元数据,该元数据描述了企业规划系统14在创建每一个导出选择时的状态。例如,存储的元数据可以高速缓存全部或部分建模数据42B,以便正确地分析导出数据。如此,导出客户22可以利用元数据来重建该模型以便处理(例如,分析和生成报表)导出数据。图4是表示导出控制模块45的示范性操作的流程图。最初,导出控制模块45接收并记录针对导出客户22的注册(100)。举例来说,导出客户22可以通过导出API47公开的createExportClient方法来调用导出客户模块45。导出控制模块45通过更新导出客户表70来注册导出客户,以便记录正在注册的特定导出客户22的唯一标识符,并更新导出客户节点表72,从而使导出客户与标识出的将要从中导出数据的节点相关联。该处理可以持续一段时间,在这段时间内可以注册多个导出客户22(100,102)。在任一点上,所注册的导出客户22都可以指定一个导出选择并启动该导出处理(104)。举例来说,导出客户22可以调用export方法,并指定一个或多个与该导出选择相关联的导出客户。作为响应,导出控制模块45访问导出客户节点表72,以识别出所有将要为export方法内指定的导出客户集导出数据的节点。然后,导出控制模块45遍历节点状态表76,并为每一个节点设置存档标签,以便表示己经指定该节点进行导出(106)。在一个实施例中,导出控制模块45在节点状态表76的每一行内都维护两个标签,以确保一致性数据。具体地说,导出控制模块45为每一个指定的节点都维护一个"即将设置"标签。一旦每一个节点的该"即将设置"标签被设置,导出控制模块45就在单个原子操作中将"即将设置"标签复制到每一行的存档标签中。如此,导出控制模块45防止在对指定节点的存档标签进行设置时出现任何数据更新。另外,导出控制模块45使当前选择版本递增。接卩来,企业规划系统14以常规方式运行,即,继续该实例中的企业规划会议。在该处理过程中,用户12可以发出请求,以更新规划模型中任何一个节点的规划数据42C,包括与一个或多个导出选择相关联的节点。当处理一个更新时,软件模块21首先检査是否己经在节点状态数据表76内为正在更新的特定节点设置了存档标签。如果设置了存档标签,软件模块21就将针对该节点的当前规划数据存档到导出节点复制表80中,并且一旦该存档完成,就修改节点状态数据表76内的当前规划数据(108)。当存档一个给定节点的规划数据时,软件模块21更新导出节点复制表80内一个预先创建的表项,以存储当前选择版本的规划数据。软件模块21可以直接对导出节点复制表80进行写入,或者可以调用导出控制模块45来进行数据存档。尽管在图4中没有示出,但是在任一点上,还是可以启动一个或多个连续的导出选择。导出控制模块45处理上述的这些导出选择,并在接收到每一个导出请求时使当前选择版本递增。而且,一旦创建存档,其记录的选择版本就不再改变。结果,用于存储该存档的规划数据的导出节点复制表80内的表项会具有增加的选择版本。在规划处理中随后的一点上,导出控制模块45可以接收请求,以导出关于一个导出选择的数据,并且,具体地说,是一个与该导出选择相关联的节点(110)。具体地说,导出客户22可以调用dataForNode方法,它为一个导出选择指定一个特定节点和一个句柄(即,引用)。作为响应,导出控制模块45有选择地从节点状态表76或导出节点复制表80中输出规划数据,这取决于是否由于一个修改请求而对所请求的节点的规划数据进行了存档(112)。如果未对该节点的规划数据进行存档,导出控制模块45就从导出节点状态表76中获得当前规划数据。然而,如果对来A于该节点的规划数据进行了存档,导出控制模块45就判断存档的规划数据的版本是否等于或超出当前正在起作用的导出选择的版本。如果是,当存档的规划数据表示在该导出选择创建时的规划数据状态,则导出控制模块45从导出节点复制表80中获得存档的规划数据。然而,如果存档的规划数据包含的版本低于与该导出选择相关联的版本,该存档规划数据就"老"于创建导出选择时的规划数据。在这种情况下,导出控制模块45获得存档规划数据的最早的有效版本。如不存在其版本等于或超出与该导出选择相关联的版本的存档规划数据表项,则导出控制模块45就从导出节点状态表76中获得当前规划数据。该处理一直持续,直至所有与一个特定导出选择相关联的导出客户22都已经获得所需的导出数据并指示该导出处理已经结束,例如,通过调用exportClientComplete(114)。一旦所有客户都完成,导出控制模块45就更新导出选择表74来删除该导出选择(116),注销该导出客户(118),并处理导出节点复制表76来删除任何不再需要保存的存档数据,即不再与任何导出选择相关联的节点的存档数据(120)。已经描述了本发明的多种实施例。尽管参照企业规划系统,例如企业财务系统或预算规划系统,进行了描述,但是也可以将该技术容易地应用到其他软件系统,包括其他大规模企业软件系统。其他企业软件系统的实例包括订单管理系统、库存管理系统、销售力管理系统、商业智能工具、企业报表工具、项目与资源管理系统以及其他企业软件系统。而且,该技术可以在任何类型的计算装置上实现,包括服务器、客户计算机、膝上型或其他装置。这些和其他实施例都落入以下权利要求的范围内。权利要求1、一种用于从软件系统中导出数据的方法,包括存储用于定义企业的一组节点的建模数据,其中每一个节点包含相关联的企业数据;存储用于定义一个导出选择的导出控制数据,其中所述导出选择使得该组节点与至少一个导出客户相关联;接收用于更新与所述节点之一相关联的所述企业数据的请求;创建将要更新的与所述节点相关联的所述企业数据的存档;以及基于未更新的企业数据和所述存档的企业数据,输出针对所述导出选择的一致性导出数据。2、根据权利要求1所述的方法,进一步包括将一个版本分配给所述导出选择;以及当创建所述企业数据的存档时,将所述版本与所述企业数据的存档一起记录下来。3、根据权利要求2所述的方法,其中输出一致性导出数据的步骤包括基于与所述存档一起记录的所述版本,有选择地输出所述未更新的企业数据或所述存档的企业数据。4、根据权利要求2所述的方法,其中所述导出选择包括第一导出选择,且所述版本包括第一版本,所述方法进一步包括接收对多个附加导出选择的多个请求;更新所述导出控制数据以定义所述多个附加导出选择;以及将一个新版本分配给所述多个附加导出选择中的每一个。5、根据权利要求4所述的方法,其中记录所述版本的步骤包括当创建所述企业数据的存档时,记录关于所述企业数据的存档的最新版本。6、根据权利要求5所述的方法,其中输出针对所述第一导出选择的一致性导出数据的步骤包括当所记录的关于所述存档的企业数据的版本等于或超出分配给所述第一导出选择的版本时,输出所述存档的企业数据。7、根据权利要求6所述的方法,其中输出针对所述第一导出选择的一致性导出数据的步骤进一步包括为与所述导出选择相关联的各个剩余节点输出所述未更新的企业数据。8、根据权利要求1所述的方法,其中创建所述企业数据的存档的步骤包括-在数据库内存储所述企业数据。9、根据权利要求8所述的方法,进一步包括将所述存档的企业数据存储为按照各个选择版本排序的多个表项之一,其中所述各个选择版本对应于不同的导出选择。10、根据权利要求1所述的方法,进一步包括接收对所述企业数据的多次并发一致性导出的请求;以及更新所述控制数据以定义多个导出选择,所述多个导出选择中的每一个对应于所述多次并发一致性导出中不同的导出。11、根据权利要求1所述的方法,其中所述软件系统包括企业规划系统,且所述企业数据包括企业规划数据。12、一种系统,包括数据库系统,用于存储定义了多个节点的建模数据,以及与所述多个节点中的每一个相关联的企业数据;--个或多个企业软件模块,用于访问所述数据库并修改所述企业数据;一个导出控制模块,用于接收指定了一组节点的导出选择,并响应导出选择而将与所指定的该组节点相关联的所述企业数据输出为导出数据,其中在修改所述多个节点中任何一个的企业数据之前,当所述导出选择指定了所要修改的节点时,所述企业软件模块为该节点创建所述企业数据的存档。13、根据权利要求12所述的系统,其中所述企业软件模块调用所述导出控制模块,以创建所述存档。14、根据权利要求12所述的系统,其中所述导出控制模块包括应用编程接口,导出客户通过该应用编程接口来指定所述导出选择。15、根据权利要求14所述的系统,其中所述导出客户是所述企业软件模块中之一。16、根据权利要求12所述的系统,其中导出控制模块在所述数据库内维护导出控制数据,以定义所述导出选择。17、根据权利要求12所述的系统,其中所述导出控制模块包括应用编程接口,正在请求的企业软件模块通过该应用编程接口接收所述导出数据。18、根据权利要求12所述的系统,其中所述导出控制模块输出所述导出数据,以有选择地包含未更新的企业数据或存档的企业数据。19、根据权利要求12所述的系统,其中所述导出控制模块将一个版本分配给所述导出选择,并将所述版本和所述存档的企业数据一起记录下来。20、根据权利要求12所述的系统,其中所述导出控制模块通过向所述数据库内的一个表中写入所述企业数据的副本,而对所述企业数据进行存档,其中所述表中的表项用于存储针对所述导出选择中已经发生修改的一个节点的存档企业数据。21、根据权利要求20所述的系统,其中所述导出控制模块接收对多个导出选择的请求,并将不同的版本分配给每一个附加导出选择。22、根据权利要求21所述的系统,其中当存档所述企业数据时,所述导出控制模块在请求所述修改时记录当前版本。23、根据权利要求12所述的系统,其中所述数据库进一步包括导出客户表,用以存储定义了多个导出客户的数据;导出选择表,用以存储定义了所述导出选择的数据;导出客户节点表,用以存储将各个导出客户映射到所述各个节点的数据;以及导出节点复制表,用以存储针对所述导出选择中请求修改的每一个节点的所述存档企业数据。24、根据权利要求12所述的系统,其中所述导出控制模块接收对所述导出选择的请求,并标记与所述导出选择相关联的各个所述节点,以指出在修改节点之前要对所述企业数据进行存档。25、根据权利要求12所述的系统,其中所述软件系统是企业规划系统,所述企业数据包括企业规划数据。26、一种系统,包括企业规划系统,用于根据一个包含多个节点的企业模型来维护与--个企业规划会议相关联的多维数据;计算装置,通过网络连接到所述企业规划系统,其中用户与该计算装置交互,从而参与所述企业规划会议,其中所述企业规划系统输出针对多个并发导出选择的一致性导出数据,且所述导出选择用于识别出从中导出数据的各个节点的不同隹入朱no27、根据权利要求26所述的系统,其中所述企业规划系统包括数据库系统,用于存储(i)定义了所述模型和所述多个节点的建模数据,以及(ii)与所述多个节点中的每一个相关联的企业数据;以及导出控制模块,用于输出所述企业数据的一部分,作为针对每一个所述导出选择的所述导出数据。28、根据权利要求27所述的系统,其中所述导出控制模块在修改所述企业数据之前创建与针对所述导出选择的一个或多个节点相关联的所述企业数据的存档。29、一种计算机可读介质,包含使计算装置的可编程处理器进行以下操作的指令,这些操作包括存储用于定义企业的一组节点的建模数据,其中每一个节点具有相关联的企业数据;存储用于定义导出选择的导出控制数据,其中所述导出选择使该组节点与至少一个导出客户相关联;接收用于更新与所述节点之一相关联的所述企业数据的请求;为所述节点中的所请求的节点创建所述企业数据的存档;以及基于未更新的企业数据和所述存档的企业数据,输出针对所述导出选择的一致性导出数据。全文摘要描述了一种大规模企业软件系统,该系统为并发的导出输出一致性导出数据。该系统包括一个数据库和一个导出控制模块。数据库存储用于定义多个节点的建模数据,以及在所述每一个节点内相关联的企业数据。导出控制模块响应于一个导出选择来将一部分企业数据输出为导出数据,其中该导出选择使得一组节点与至少一个导出客户相关联。在该导出过程中,导出控制模块在修改企业数据之前创建与该导出选择的一个或多个节点相关联的企业数据存档(例如,副本)。导出控制模块利用当前的企业数据和存档的导出数据来为多个并发的导出客户输出一致性导出数据,其中针对未修改的节点利用当前的企业数据,针对在导出过程中修改的节点,利用存档的导出数据。文档编号G06Q10/00GK101167091SQ200580039866公开日2008年4月23日申请日期2005年11月8日优先权日2004年11月22日发明者D·S·L·鲍恩申请人:科格洛斯公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1