从多个数据源获取数据的方法及系统的制作方法

文档序号:6613056阅读:158来源:国知局
专利名称:从多个数据源获取数据的方法及系统的制作方法
技术领域
本发明涉及计算机数据处理技术,特别是涉及一种从多个数据源获取数据 的方法及系统。
背景技术
在业务应用系统的数据处理过程中,常常需要从多个数据源获取数据来进 行处理。例如在财务应用方面,很多业务单据都需要进行预算控制,预算控制 系统就是通过处理单据的预算数据来实现预算控制功能。预算控制系统中根据 业务情况定义了预算控制时需要的预算控制参数,分别对应业务单据的一些属 性信息,当执行预算处理时,需要从业务单据中获取对应预算控制参数的属性 信息,组成预算控制参数,进行预算控制处理。例如所述预算控制参数包括预算组织、预算项目、预算要素、预算期间、币别,分别对应单据所属的组织、业务项目、预算的种类、业务发生日期、币种信息。当对该单据进行预算控制时,预算控制系统根据这种映射关系查找单据中对应的预算数据,再根据一定的规则来控制该单据的特定操作(比如付款)是否满足发生的条件,从而做出相应的决策,比如预算充足则扣减预算,单据进 入下一个业务处理环节,如果预算不足则返回进行人工决策等。在上述预算控制的示例中,业务单据作为数据源用于向预算控制系统^是供 预算数据,其中,单据的各种属性信息都可作为预算控制参数的数据源。如果 单据需要参与预算控制,现有的实现方式是采用代码方式实现,通过在单据所 在的业务系统中加入查找预算数据的功能实现,即由各个业务单据开发团队各 自完成业务单据查找预算的全过程。这种在程序中通过固定代码获取单据上的 属性来组成预算控制参数的方式,是一种被动的"推"的方式,存在以下几个缺点其一,预算控制的可变性很差,无法适应需求的变化,因为控制逻辑固定 在代码里。例如在凭证单据中,组成预算项目的来源可能有科目、科目+物 料、科目+组织等等很多不同形式,如果通过代码来完成这些组合将非常困难,因为代码中不能一一进行穷举,组合相对固定, 一旦用户需要的组合不在代码编写的组合之中,就得重新修改代码,维护代价很大;其二,开发工作量大,即所有启用预算控制的模块都要各自编写和预算控 制相关代码;其三,对各个业务系统的开发人员的预算业务知识要求很高,他们必须清 楚了解很多预算模块的细节,否则开发无法进行;其四,各个业务系统和预算控制系统的代码耦合性很强,导致预算系统进 行重构非常困难。发明内容本发明所要解决的技术问题是提供从多个数据源获取数据的方法及系统, 以解决目前采用固定代码获取数据的方式所存在的问题。为解决上述技术问题,根据本发明提供的具体实施例,本发明公开了以下技术方案从多个数据源获取数据的方法,包括 获取实体文件;从实体文件获取实体的所有属性,其中所述实体属性称为数据源; 解析实体属性,构建出实体结构树,并显示;查询所述实体结构树,从选中的数据源获取实体属性值。 其中,按照以下步骤解析实体预定义访问实体的规则;根据所述规则分 析实体属性性质;根据所述属性性质构建实体结构树;并根据所述规则保存解析好的实体信息。其中,按照以下步骤从选中的数据源获取实体属性值选择实体属性建立 与业务参数的映射关系;当执行所述业务参数时,根据所述映射关系获取对应 的实体属性值。从多个数据源获取数据的系统,包括实体解析单元,用于获取实体文件;从实体文件获取实体的所有属性,其 中所述实体属性称为数据源;解析实体属性,构建出实体结构树;交互单元,用于显示所述实体结构树,并提供查询实体结构树的功能; 数据获取单元,用于从选中的数据源获取实体属性值。
所述系统还包括通用接口,用于预定义访问实体的规则。其中,所述通用接口可扩展。其中,所述实体解析单元根据通用接口定义的规则分析实体属性性质,根 据属性性质构建实体结构树,并根据所述规则将解析好的实体信息保存。 其中,所述交互单元在"R供查询功能时,建立选中的实体属性与业务参数的映射关系;当执行该业务参数时,数据获取单元根据所述映射关系从相应数 据源获取实体属性值。从多个数据源获取数据的系统,包括客户端和服务器,所述客户端用于 向服务器发起数据获取请求,所述服务器用于从多个数据源获取数据并返回; 其中所述服务器端包括实体解析引擎,用于获取实体文件并从中获取实体的所 有属性,解析实体属性,构建出实体结构树,其中所述实体属性称为数据源; 所述客户端通过用户界面将所述实体结构树显示;还包括解析器,用于根据客 户端请求调用服务器端的实体解析引擎解析实体,并根据用户在实体结构树中 选择的实体属性从服务器端获取相应的属性值。从多个数据源获取数据的系统,包括客户端和服务器,所述客户端用于 向服务器发起数据获取请求,所述服务器通过组件从多个数据源获取数据并返 回给客户端;其中,所述组件包括实体解析引擎,用于获取实体文件并从中获取实体的 所有属性,解析实体属性,构建出实体结构树,其中所述实体属性称为数据源; 客户端界面,负责与用户交互,并将所述实体结构树显示给用户;解析器,用 于根据客户端请求调用所述实体解析引擎解析实体,并根据用户在实体结构树中选择的实体属性从服务器端获取相应的属性值。根据本发明提供的具体实施例,本发明公开了以下技术效果 首先,获取实体文件并取得实体的所有属性,其中所述实体属性称为数据 源,然后解析所述实体属性构建出实体结构树并显示给用户,用户可以才艮据需 求灵活定义实体属性(如单据属性)与业务参数(如预算控制参数)的对应关 系;在运行所述业务参it时才艮据定义的对应关系,通过一种"拉"的主动方式 从实体(如单据)中抽取对应的属性值,组成业务参数(预算控制参数),从 而无需通过固定编码就实现了预算控制的可变性。 其次,大大减少了代码量,代码维护小。再次,由于为用户提供了灵活设定单据属性与预算控制参数的界面,所以 预算控制系统从单据获取数据的功能从原来的各个业务系统分离出来,提供了 统一的平台,开发人员无需再了解相关的预算业务知识,因此降低了对开发人 员的要求。最后,由于提供了一个统一的数据获取平台,所以极大地降低了各个业务 系统与预算控制系统的代码耦合性,提供了预算控制系统的重构性。


图1是本发明实施例所述从多个数据源获取数据的方法流程图;图2是本发明实施例中预算控制系统的配置界面示意图;图3是本发明实施例中凭证单据的实体结构树示意图;图4是本发明实施例所述从多个数据源获取数据的系统结构框图。
具体实施方式
为使本发明的上述目的、特征和优点能够更加明显易懂,下面结合附图和具体实施方式
对本发明作进一步详细的说明。本发明实施例提供了 一种从多个数据源获取数据的方法,通过MDA模型驱 动,定义了实体属性(即数据源)与业务参数的对应关系,在执行所述业务参 数时动态根据定义的对应关系,通过一种"拉"的方式主动从实体中抽取对应 的属性值,组成业务参数并进行后续处理,从而无需通过固定编码就实现了预 算控制的可变性,从根本上改变了预算控制可变性,大大减少了代码量。其中,上述MDA (Model Driven Architecture)是模型驱动架构,它是由 0MG( Object Management Gro叩,对象管理组织)定义的一个软件开发框架,把 系统才喿作的规范从系统利用底层平台能力的方式细节中分离出来的思想,MDA 提供了一种途径(通过相关的工具)来规范化一个平台独立的系统、规范化平 台、为系统选择一个特定的实现平台,并且把系统规范转换到特定的实现平台。 MDA的三个主要目标是通过架构性的分离来实现轻便性、互操作性和可重用 性。本发明实施例所述方法即以模型驱动的思想为基础,下面将仍以预算控制 为例进行说明。
为便于理解本发明的技术方案,首先介绍预算控制的处理方式。在进行预算控制时,如果单据要参与预算,则通过MDA模型驱动,用户需要在系统提供 的定义界面里选出进行预算控制的是哪个系统的哪种单据,然后选出预算控制 参数一一预算组织、预算项目、币别、时间、业务申请值等分别对应单据的哪 些字段。预算控制系统会根据用户的配置从相应单据中抽取信息,组装成预算 控制参数,进行预算控制。在这个过程中,本发明与现有技术的根本区别在于 设置预算控制参数与单据属性对应关系的方式不同,现有技术是通过固定编码 方式实现,而本发明是将这项配置功能在客户端前台实现,用户可以根据需要 灵活进行配置。下面将详细说明如何将配置功能面向用户实现。参照图1,是所述>^人多个 数据源获取数据的方法流程图。本发明实施例中,预算控制系统的应用环境包 括客户端和服务器端,在客户端提供了预算控制参数的配置界面,当用户需要 选择单据参与预算控制时,进入配置界面通it^户端向服务器发起请求,服务器端将执行以下步骤步骤IOI,根据请求获取实体文件。在基于MDA模型驱动的系统中,单据即为实体数据,实体数据以文件形式 存储, 一般以".entity"为扩展名称,对应一个业务单据实体。用户会在配 置界面首先设置需要从哪个系统的哪个单据进行预算控制,服务器端根据用户 设置从相应的业务系统获糾目应的实体文件。配置界面可参照图2所示,用户进入界面选择的业务系统为"管理会计", 业务单据为"差旅费用报销单",这两个选项在预算控制系统中对应的控制参 数为预算组织。步骤102,从实体文件中获取实体的所有属性。例如在单据实体中,包含 多个属性信息,如科目、物料等,这些属性信息构成预算控制参数的it据源。 根据预算控制需求,预算控制系统需要从多个数据源,即多个实体属性中抽取 数据来组成控制参数。步骤103,解析得到的实体属性,构建出实体结构树,并在客户端显示。 所述实体结构树按照实体在业务系统中的结构,以可视化的窗口展现给用 户。参照图3所示,是一个凭证单据的实体结构树示意图,该凭证单据包括"过
账"、"出纳"、"分录"等子属性,而每个子属性又包含若干个属性,以层级目 录的方式显示。
本实施例提供了一种根据实体属性构建实体结构树的方法,预先定义访问 实体的通用规则,该规则定义了如何获取实体属性中的字段名称、字^殳类型、 判断是否具有字段别名、是否含有叶结点等方法,然后根据所述规则解析实体
属性,从而构建出实体结构树。具体步骤包括首先构建根结点,然后根据步 骤102解析实体文件取得的所有属性,分析属性性质,如果当前属性无孩子, 则加入实体对象内;如果当前属性有孩子,则说明该孩子是这个属性的一个关 联属性(如图3中"分录"属性即为"凭证"实体的一个关联属性),首先在 实体对象内加入一个虚结点,然后根据关联关系取得孩子实体继续分析,如此 递归下去,构建出一棵实体结构树。其中,所述实体对象用于按照上述规则存 放解析好的实体信息(如字段名称等信息)。当然,也可以采用其他方法解析 实体并构建实体结构树。
步骤104,查询所述实体结构树,从选中的数据源获取实体属性值。 参照图3所示的实体结构树,用户可以在弹出的"源单据属性选择,,窗口 中选择凭证单据的各个属性来对应预算控制系统的预算项目、币别、时间等控 制参数。例如,选择其中的"分录"属性对应预算项目,或者选择"出纳+过 账"属性对应预算项目,这样用户的设置就非常灵活。当用户配置好单据属性
与预算控制参数的对应关系后,服务器端会根据所述对应关系到实体对象内抽 取真实数据。
参照图3举例说明整个过程,在控制策略内,选择"责任中心来源",系 统会弹出属性来源窗口,选择单据属性,系统弹出解析好的实体结构树,该树 为凭证实体的真实结构,用户可以选择凭证实体上面的"公司"属性,该属性 在凭证实体的关键字为company, id,该关键字被存入数据库。当凭证审批的 时候,预算控制系统会到凭证抽取company, id的真实数值,然后使用该id 去查找预算组织,然后在该组织按照一定规则查找预算数据(究竟会找到哪个 预算这依赖于控制信息的来源)。
通过上述方法,用户可以灵活进4亍预算控制配置,其他业务系统人员也不 必编写与预算控制系统相关的代码,大大降低了工作量。本发明实施例还提供了从多个数据源获取数据的系统,作为预算控制系统 的一部分,可从数据源所在的业务系统中抽取出预算数据进行预算控制。参照
图4,是所述系统的结构框图。所述系统主要包括实体解析单元401、交互单 元402和数据获取单元403。
所述实体解析单元401用于获取实体文件,从实体文件获取实体的所有属 性,并解析实体属性,构建出实体结构树;所述交互单元402负责与用户交互, 用于提供配置界面,显示所述实体结构树,并提供查询实体结构树的功能,用 户可设置实体属性与预算控制参数的对应关系;所述数据获取单元403用于从 选中的数据源获取实体属性值。其中,实体解析单元401在解析实体时,根据 通用接口 404定义的实体访问规则分析实体属性性质,根据属性性质构建实体 结构树,并根据所述规则将解析好的实体信息保存到实体对象中。所述通用接 口 404用于预定义访问实体的规则,并提供了扩展功能,用户可根据接口定义 的通用访问规则进一步扩展。
才艮据实际应用,本发明还提供了另一系统实施例,该系统包括客户端和服 务器,所述客户端用于向服务器发起数据获取请求,所述服务器用于从多个数 据源所在的业务系统获取数据并返回;其中所述服务器端包括实体解析引擎, 用于获取实体文件并从中获取实体的所有属性,解析实体属性,构建出实体结 构树;所述客户端通过客户端UI (User Interface,用户界面)将所述实体 结构树显示;还包括解析器,用于根据客户端请求调用服务器端的实体解析引 擎解析实体,并根据用户在实体结构树中选择的实体属性从服务器端获取相应 的属性值。
优选的,在应用组件的系统环境中,可以通过创建组件来实现,服务器通 过组件从多个数据源获取数据并返回给客户端。该组件包括实体解析引擎,用 于获取实体文件并从中获取实体的所有属性,解析实体属性,构建出实体结构
树;客户端UI,负责与用户交互,并调用服务器端功能将所述实体结构树显 示给用户;解析器,用于根据客户端请求调用所述实体解析引擎解析实体,并 根据用户在实体结构树中选择的实体属性从服务器端获取相应的属性值;实体 对象,用于存储解析好的实体信息,如字段名称等信息。
需要说明的是,在本发明中,"组件,,的概念指应用于计算机的相关实体,
如硬件、硬件和软件的组合、软件或执行中的软件等。详细地说,例如, 组件可以、但不限于是运行于处理器的过程、处理器、对象、可执行组件、 执行线程、程序和/或计算机。还有,运行于服务器上的应用程序或脚本程 序、服务器都可以是组件。 一个或多个组件可在执行的过程和/或线程中, 并且组件可以在一台计算机上本地化和/或分布在两台或多台计算机之间, 并可以由各种计算机可读介质运行。组件还可以根据具有一个或多个数据 包的信号,例如,来自一个与本地系统、分布式系统中另一组件交互的, 和/或在因特网的网络通过信号与其它系统交互的数据的信号通过本地和/ 或远程过程来进行通信。
图4所示系统中未详述的部分可以参见图1所示方法的相关部分,为了篇 幅考虑,在此不再详述。
以上对本发明所提供的从多个数据源获取数据的方法及系统,进行了详细
施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域 的一般技术人员,依据本发明的思想,在具体实施方式
及应用范围上均会有改 变之处。综上所述,本说明书内容不应理解为对本发明的限制。
权利要求
1、 从多个数据源获取数据的方法,其特征在于,包括 获取实体文件;从实体文件获取实体的所有属性,其中所述实体属性称为数据源; 解析实体属性,构建出实体结构树,并显示;查询所述实体结构树,从选中的数据源获取实体属性值。
2、 根据权利要求1所述的方法,其特征在于,按照以下步骤解析实体 预定义访问实体的规则;根据所述规则分析实体属性性质; 根据所述属性性质构建实体结构树; 并根据所述规则保存解析好的实体信息。
3、 根据权利要求1所述的方法,其特征在于,按照以下步骤从选中的数据源获取实体属性值选择实体属性建立与业务参数的映射关系;当执行所述业务参数时,根据所述映射关系获取对应的实体属性值。
4、 从多个数据源获取数据的系统,其特征在于,包括 实体解析单元,用于获取实体文件;从实体文件获取实体的所有属性,其中所述实体属性称为数据源;解析实体属性,构建出实体结构树;交互单元,用于显示所述实体结构树,并提供查询实体结构树的功能; 数据获取单元,用于从选中的数据源获取实体属性值。
5、 根据权利要求4述的系统,其特征在于,还包括通用接口,用于预 定义访问实体的规则。
6、 根据权利要求5述的系统,其特征在于所述通用接口可扩展。
7、 根据权利要求5述的系统,其特征在于所述实体解析单元根据通用 接口定义的规则分析实体属性性质,根据属性性质构建实体结构树,并根据所 述规则将解析好的实体信息保存。
8、 根据权利要求4述的系统,其特征在于所述交互单元在提供查询功 能时,建立选中的实体属性与业务参数的映射关系;当执行该业务参数时,数 据获取单元根据所述映射关系从相应数据源获取实体属性值。
9、 从多个数据源获取数据的系统,其特征在于,包括客户端和服务器, 所述客户端用于向服务器发起数据获取请求,所述服务器用于从多个数据源获 取数据并返回;其中所述服务器端包括实体解析引擎,用于获取实体文件并从 中获取实体的所有属性,解析实体属性,构建出实体结构树,其中所述实体属 性称为数据源;所述客户端通过用户界面将所述实体结构树显示;还包括解析器,用于根据客户端请求调用服务器端的实体解析引擎解析实体,并根据用户 在实体结构树中选择的实体属性从服务器端获取相应的属性值。
10、 从多个数据源获取数据的系统,其特征在于,包括客户端和服务器, 所述客户端用于向服务器发起数据获取请求,所述服务器通过组件从多个数据 源获取数据并返回给客户端;其中,所述组件包括实体解析引擎,用于获取实体文件并从中获取实体的 所有属性,解析实体属性,构建出实体结构树,其中所述实体属性称为数据源; 客户端界面,负责与用户交互,并将所述实体结构树显示给用户;解析器,用 于根据客户端请求调用所述实体解析引擎解析实体,并根据用户在实体结构树 中选择的实体属性从服务器端获取相应的属性值。
全文摘要
本发明公开了一种从多个数据源获取数据的方法及系统,解决目前采用固定代码获取数据的方式存在灵活性差的问题。所述方法包括获取实体文件;从实体文件获取实体的所有属性,其中所述实体属性称为数据源;解析实体属性,构建出实体结构树,并显示;查询所述实体结构树,从选中的数据源获取实体属性值。通过本发明,用户可以根据需求灵活定义实体属性与业务参数的对应关系,在运行所述业务参数时根据定义的对应关系,通过一种“拉”的主动方式从实体中抽取对应的属性值,组成业务参数,从而无需通过固定编码就实现了业务控制的可变性。
文档编号G06F17/30GK101145163SQ20071016603
公开日2008年3月19日 申请日期2007年10月30日 优先权日2007年10月30日
发明者冰 李 申请人:金蝶软件(中国)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1