XML的数据处理技术在ERP中的使用

时间:2022-07-14 07:11:44

XML的数据处理技术在ERP中的使用

(江苏省无锡市华夏计算机技术有限公司,江苏 无锡 214000 )

摘要:由于XML自身的特点,它非常适合作为异构数据源之间数据转换的中介。本系统集成中采用XML作为数据转换的中介,实现了不同数据库之间的数据转换,并且实现了XML文档与关系数据库之间数据相互转换的构件,提高了ERP系统的可扩展性、灵活性和可维护性。该文分析了ERP系统中数据转换的基本需求,结合面向对象的方法和构件技术,设计并实现了基于XML的通用数据转换系统。本文总结了在实施ERP系统的实践中所使用的技术,提出了用标准XML模式作为交换单据的数据标识;详细描述了关系模式与XML模式之间映射的转换脚本;讨论了XML文档与关系数据库之间相互转换的数据转换构件的设计和实现接口;并基于DOM解析器,详细介绍了数据库转换构件中的数据转换的算法。在具体的使用过程中,只要对每种单据都生成一份简单直观的转换脚本,并调用数据转换构件的接口,就可以非常容易地提取(或存储)带有层次关系的XML文档。

关键词:XML;数据转换;数据库;构件;ERP

中图分类号:TP311文献标识码:A文章编号:1009-3044(2010)03-531-03

Realization and Application of Data Exchange Technology Based on XML in ERP System

WEN Jian

(Huaxia Computer Technology Co. Ltd, Wuxi 214000, China)

Abstract: This article analyses the primary demand of data exchange in ERP, combined with the mothod of object-oriented and component technique, it designs and realizes the system of universal data exchange based on XML. This article summarizes the technologies which are used in the practice of emplifing ERP system, and brings up that use normal XML mode as DID of exchange voucher; and describes the transform script of mapping between relational mode and XML mode in detail; it discusses the design of data exchange component and realizing joint of the exchange between XML document and RDB; and it presents how to count the data exchange in database exchange unit on the base of DOM resolver. As long as creates a simple and visual exchange sript to every kind of voucher and invokes the interface of data exchange unit during use, it will be very easy to extract(or storage) XML document with LEV relation.

Key words: XML; data exchange; database; component; ERP

1 课题的背景

本文的课题是我在公司时负责的一个某工厂项目中实施ERP系统过程中产生的。该工厂是的一个合资型跨国集团,在本土以及海外有多条生产线,因为项目保密条例不能说的更多,所以这里只需阐述下该工厂的生产主要基于ERP管理,从材料的采购、入库、生产、销售进行集中管理。本文作者参与了ERP实施中销售业务的开发。

在实施过程中,我们一方面既要增加系统的功能,另一方面又要集成已有的应用系统。例如,库存管理系统是在生产线引进时一并引进的,是基于ORACLE数据库的,我们无法也没必要另外开发一个库存管理系统;原有的财务结算系统是基于SQL SERVER数据库的;销售系统是重新开发的,基于SQL SERVER数据库的。销售系统、库存管理系统、财务结算系统相对独立,但也存在相互之间的数据查询、交换。例如,销售系统需要查询库存产品的规格、数量的信息;财务结算系统需要查询销售统计情况,并将查询到的信息存储到本系统中。这就向我们提出了不同数据库之间数据交换的问题。

2 数据转换系统的分析

该工厂的ERP系统项目中,既要考虑集成现有的系统,又要考虑为未来发展网上电子商务提供扩展。对于前者,现有的系统无法简单地采用替换的方式。如,引进生产线时就有一套生产的管理系统,包括产品库存管理,它与生产线不可分离,而且功能完善,不可能也没必要使用其它系统取而代之,ERP系统要充分利用这些资源。对于后者,广钢集团总部已初步建立电子商务平台,未来集团内部的结算将通过此平成,与外部贸易伙伴的销售、采购等业务也将逐步移到此平台上进行。电子商务是广钢集团发展的重点战略之一。

基于此背景,该ERP系统需要一个通用的数据转换软件,以实现内部和外部的数据交流。数据转换系统就是这样一个软件,它实现XML和数据库之间的数据交换,利用它能完成以下任务:1)从数据库中生成XML文档。2)将接收到的XML文档存入关系数据库中。通过标准格式的XML文档作为公共的传输介质,实现不同数据库间的数据交互。

系统分析示意图如图1。

其中要解决的主要问题:1)定义或生成用于交互的XML表单;2)数据转换方式的研究和实现(关系模式和XML模式的相互映射)。

2.1 提取用于数据交换的XML标准文档

通常情况下我们在编写XML文档时用到什么标记就创建什么标记,没有对这种标记和标记间依赖关系进行定义。这样作为文档的创作者可能会非常清楚标记的意义和标记间的依赖关系,但作为文档的使用者或处理该文档的程序而言就不明其义了。对于数据交换来说,最重要的是数据交换的双方要有一个统一的数据格式,只有采用统一的数据格式,才能实现数据的自动流转、处理等功能。其中每一个系统都将其内部的数据转换成行业标准的基于XML的数据格式,这样就可以实现不同系统之间的数据交换。

2.2 关系模式与XML模式相互转换脚本

要在商业MIS之间交换数据,必须先在XML文档和数据库之间转换数据,把XML模式映射到数据库模式和把数据库模式映射到XML模式。

解决XML模式和数据库模式相互映射问题,有两种途经:基于表格的映射和基于关系-对象的映射(第四章)。这里采用基于表格的映射来解决XML模式和数据库模式相互映射问题。对于每一个具体的关系模式与XML模式之间的相互转换,都要编写一个转换脚本,对于具体某个关系数据库,依据表单DTD(或XML Schema),定义从关系模式到XML模式的转换脚本,和从XML模式到关系模式的转换脚本。

转换方法示意图如图2。

在转换脚本中嵌入预定义的查询语句(基于模板的查询),由数据转换构件执行查询语句得到表格式的数据,然后再使用转换脚本的转换规则将表格式的数据转换为结构化的XML文档数据。

2.3 基于XML的数据转换构件

在定义了数据转换脚本之后,数据转换构件使用这些转换脚本在关系数据库和XML文档之间相互转换数据。

在数据交换中使用表单XML文档的问题并不是简单地共享一个表单模式,在贸易合作伙伴间按照模式发送表单。贸易合作伙伴间的数据库是异构的:发送的表单是多样的,因此有必要定义一个关系模式与一种表单XML文档之间的转换脚本,并调用数据转换构件的相应接口,通过深度遍历转换脚本,逐个分枝拓展创建,最终完成整个XML文档的DOM树的创建,实现广度的实体关系到深度的实体关系的映射,能够从关系数据库中提取出发送给任何贸易合作伙伴的表单XML文档。通过使用转换脚本能实现发送或接收的单据模式本地化。

3 系统实现

3.1 数据转换构件的实现

对于XML文档,数据转换构件是通过DOM(文档对象模型)读取XML文档中的节点。DOM是最基本也是最底层的XML存取技术,它是W3C推荐的一种技术标准,实际上是提供一组API来存取XML数据。在数据转换构件中,具体的XML模式与关系模式的数据转换需要涉及较为复杂XML格式分析处理及数据库操作和有效性的校验。

数据转换构件验证XML数据合法性的过程:在C/S环境中,客户机和服务器都可以使用Schema来验证文档。在客户机端验证的主要对象是转换脚本,在服务器端验证的主要对象是发来的XML文档。相对客户端而言在服务器端验证的意义更重大,在实际应用中也更为常见。由于连接到服务器上的客户数是很多的,所以有必要在处理客户端发送来的数据之前,先检验接到的数据是否与预期的结构一致。验证的步骤如下:将XML文档载入DOM树;判断是否连接DTD(只需验证根元素是否设置了xmlns属性);如果没有连接,服务器就要依据XML文档类型指定一个DTD进行连接,然后将更新的文档重新载入到另一个DOM树中,进行验证。

3.2 数据类型的转换

数据转换构件负责把XML文件中的文本转换成数据库中的数据类型,反之亦然。转换的方法是数据转换构件根据数据库模型来确定数据类型。

3.3 空值(null)的转换

在数据库中,空值意味着没有数据,这和值为0的数字或长度为零的字符串区别很大。XML文件中通过可选元素或属性支持这种空值的概念,如果一个可选元素或属性的值为空,就不会包含在文件内。将XML文档的结构映射到数据库(或反过来)时,可选元素类型或[空值]属性会被映射到允许空值的字段,如果不是这样的话,可能会产生插入错误(当转换数据到数据库时)或非法文件错误(从数据库中取出数据时)。

在集成ERP系统中,数据转换构件针对的是具体应用的领域,数据库的数据模式和XML文档的结构都有清晰的定义,数据类型确定,对于XML文档中的注释、处理指令、标记等等采用忽略的方法。

4 结论

本文重点讨论了利用XML作为媒介实现异构数据库数据交换的方法,详细描述了提取标准表单XML文档的方法,描述了编写XML文档和关系数据库之间数据转换的转换脚本的方法,设计了构件的功能和结构,以及描述关键算法的实现。

数据转换构件和各种转换的脚本目前在该工厂ERP系统中应用,实现了数据库与XML文档之间数据相互转换的目的,由于转换脚本是容易编写和维护的,未来单据的变化通过更改转换脚本就能适应新的环境,因此提高了整个系统的可维护性。又由于该工厂的ERP系统是基于XML文档进行数据交换的,未来与外部合作企业之间的交流将更加容易,因此提高了系统的可扩展性。

数据转换构件的功能是在该工厂的ERP系统环境下实现的,证明了其可行性。为了达到数据转换构件对不同数据库的适应性以及提高通用性,计划进一步研究基于ODBC接口的可扩展的XML数据库交互构件。

参考文献:

[1] 雷.TPT的ERP系统实施.(内部文件).2004.

[2] 张维明.语义信息模型及应用[M].北京: 电子工业出版社.2002.

[3] xml中国论坛.xml初学进阶. .cn

[4] 蔡希尧、陈平.面向对象技术[M].西安电子科技出版社.1995.

[5] 张晓东等.Java数据库高级教程[M].北京:清华大学出版社.2004.

[6] 结构. .

[7] Didier Maitin.XML高级编程[M].北京:机械工业出版社.2001.

[8] 朱三元、钱乐秋、宿为民.软件工程技术概论[J].北京:科学出版社.2002.

[9] David Carson.XML应用的UML建模技术[M].北京: 清华大学出版社.2003.

[10] 阿捷.XML轻松学习手册(5)XML语法. .cn.

[11] 杨芙清、梅宏、李克勤.软件复用与软件构件技术[J].电子学报.1999,27(2).

[12] Ronald Bourret.XML与数据库. .

上一篇:VC#.NET数据库应用程序设计课程建设的探索与实... 下一篇:Autoit脚本实现计算机等级考试修改考试用户名