摘 要:设计了基于XML的业务建模平台,该平台能在短时间内构建复杂的业务模型,同时以较低成本进行系统的运营维护。在平台中,将业务单据抽象为一个表单对象模型,该模型定义了表单与数据库的接口、定义了表单的属性、表单操作界面的具体属性等,实现了表单参照定义、字典参照定义、公式计算定义、列表查询定义等功能。通过对铁路发运系统管理进行深入分析,实现了铁路发运管理系统中流程自定义,很好地完成了采购管理、销售管理、结算管理、计量管理等功能模块,满足了企业的各种业务需求,在企业发运物资管理中具有很强的实用价值。
关键词:XML文档模型;发运物资管理;业务建模平台
随着计算机技术的飞速发展,计算机在企业管理中应用将进一步加强。对于大中型煤炭运输企业来说,利用计算机软件高效率的管理铁路发运控制,是适应现代化制度的要求、推动企业走向科学化、规范化的必要条件。通过对合同管理业务、计划管理业务、计量管理业务、结算业务的难点和舞弊行为进行分析和研究之后,在充分考虑企业整个采购、仓储、销售过程中的关系的基础上开发出管理系统。铁路发运系统对各业务环节进行了严密的流程设计,采用计算机网络、数据库、软硬件技术,可以帮助企业实时监控整个计划流程、计量流程、结算流程,减少人员的参与,从而防止了人为因素的影响,提高工作效率。
1 开发工具
软件建模是提高与有效控制软件质量的有效途径,近年来,大家关注的主要是数据设计模型、对象模型和业务流程模型。目前主要的建模工具软件如Sybase Power Designer、IBM Rational Rose、Computer Associates的ERWin等都在加强各自建模工具的融合与集成[1]。Power Designer灵活的分析和设计特性允许使用一种结构化的方法有效地创建数据库,同时提供符号表示,使数据库的创建更加容易,同时能更加简单地向非技术人员展示数据库和应用的设计。本文采用建模平台PowerDesigner15进行开发。Visual Studio是微软公司推出的开发环境,是目前最流行的Windows平台应用程序开发环境。Visual Studio 2010开发的程序需要.NET Framework 4.0平台支持,支持Microsoft SQL Server、IBM DB2和Oracle等数据库。铁路发运管理系统正是需要一个高效、集成的开发环境,系统开发平台设计平台Microsoft Visual Studio 2010,数据库平台Microsoft SQL Server 2005以及XML的相关技术。
2 XML文档对象模型
可扩展标记语言XML(Extensible Markup Language),用于标记电子文件使其具有结构性的标记语言,用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言[4]。XML易于在任何应用程序中读写数据,能够很快成为数据交换的唯一公共语言,XML同时也推出一种新型文档类型,使得开发者也可以不必定义文档类型。文档对象模型DOM(Document Object Model),是W3C组织推荐的处理可扩展置标语言的标准编程接口[2]。它是一种与平台和语言无关的应用程序接口,可以动态地访问程序和脚本,更新其内容、结构。DOM是一种基于树的API文档,它要求在处理过程中整个文档都表示在存储器中。DOM分为HTML DOM和XML DOM两种,它们分别定义了访问和操作HTML/XML文档的标准方法,并将对应的文档呈现为带有元素、属性和文本的树结构。
XML访问数据库的机制如图1所示。

本文所探讨的铁路发运管理系统中,采用的是将XML文档以文本方式存入数据库表的一个字段中,这个字段通常是文本型(6 000个字符大小)的,这样便于存放容量较大的XML文档[5]。
3 业务建模平台设计
经过对多个已经完成的项目进行分析后,可以发现一些共有的特征模块。从而提出4个基本单元模块:数据、报表、表单、打印。在开发系统中,基本上都要用到这几个模块,因此将这4个部分进行模型化,再加上一些控制组件,进行组合和调试之后,形成一个快速开发的平台,这样就可以对软件开发的基础需求进行快速的开发,大大缩短了软件开发的周期,节省了开发成本。在平台中可以将每一个业务需求抽象为一个采用XML表示的表单对象模型,该模型定义了表单与数据库的接口、定义了表单的属性、定义表单操作界面的具体属性等,并且实现了公式自定义、表单参照自定义、字典参照自定义、列表查询自定义等功能[5-6]。业务建模平台功能结构如图2所示。

对于一个管理系统来说,核心内容是基于流程的表单设计,对于不同的企业来说,即使是相同类型的管理系统,其所要求的表单内容都有可能不一样,为了能在短时间内设计出符合要求的表单,必须实现表单自定义[7]。
表单界面的描述文档(XML)
表单界面的描述文档主要提供表单上元素的相关属性和数据。例如表单元素的名称、大小、位置、类型、公式、参照,对应的数据等。可以将描述文档形式化表述为:
Form={f1,f2……fn}
f1=<head>,记录表单头部信息。
head=<标题,单据编码格式,预览模板,打印模板,窗体背景,窗体背景色,必输项颜色,参照项颜色,只读项颜色,单据类型,类型,其他参数>
f2=<data>,记录表单表头的数据信息。
data=<表,视图,主键>,另外在data的子节点中记录可以使用的列的集合。
……
F4=<text>,记录了表单输入项信息,其子节点定义了每个输入项位置、大小、颜色、字体等属性;保存了单据参照关系自定义与字典参照自定义,公式自定义等信息。
fn=<gridlist>,记录列表信息。对查询、过滤、列表进行了自定义。
以下是对代发合同的表单设计进行说明:
<?xml version="2.0"encoding="utf-8"?>
<root>
<head>
<标题>采购合同</标题>
<单据编码格式 允许手工编码="0">收货磅码单编码</单据编码格式>
<打印模板 prnlst="0">002001001</打印模板>
<单据类型>01001</单据类型>
<参数><!—表单基本参数-->
<限制删除他人单据id="C02"value="1"tag="0不限制1限制"/>
<限制弃审他人单据id="C03"value="1"tag="0不限制1限制"/>
<限制修改他人单据id="C01"value="1"tag="0不限制1限制"/>
</参数>
</head>
<!—数据项定义 对应数据表、主键、每一字段项名称、参照、必输等设置-->
<data tablename="DF_HT"viewname="hv_DF_HT"primarykey="THBM"order=""sql="">
<HTBM type="C"visible="1"db="1"refer="0"put=""get=""name="合同编码"point=""default=""required="1"readonly="0"zero="0"maskinput=""format=""sys="1"formula=""value=""min=""max=""/>
……
</data>
<!—表体数据项定义 对应数据子表、主键、外键、每一字段项名称、参照、长度等设置-->
<databody tablename="HTMX"primarykey="MXID"foreignkey="DJBM">
<DJBM length="100"align="left"summary=""min=""max=""…/>……
</databody>
<!—标签项定义 表单上每个标签x y字体、字号等设置-->
<label newlblcount="5">
<BDBM visible="2"x="4"y="221"fontname="宋体"fontsize="9.75"fontcolor="Black"b="0"i="0"u="0"select="0">磅单编码</BDBM>
……
</label>
针对数据库中的一个数据表,通过设计不同的单据类型可以设计多个表单,根据用户的需求,可通过修改表单类型来实现,从而对系统的可扩展性有了很大的提高。编辑完成之后建模平台运行结果如图3所示。

4 铁路发运系统设计
对发运系统进行了总体设计,首先做了需求分析,确定了系统建设的目标,然后从业务、网络、硬件、存储等方面进行了分析与设计,并就业务流程进行了业务分析与设计,给出了业务流程图。
4.1 系统需求分析
系统采用多级树形菜单将功能进行划分,按不同的岗位进行权限管理。系统包括采购管理、销售管理、门禁管理、计量管理、质检化验管理、结算管理、系统维护等功能模块,系统所包含的模块如图4所示。

4.2 业务建模平台功能设计
功能:将业务单据、报表在设计器中进行设计,定义数据库的连接、格式和数据的交换格式同时生成XML对象模型,并保存到数据库中。
输入:表单、打印格式,数据库表结构。
输出:以XML文件描述的表单及报表,XML文件等。
流程图如图5所示。

4.3 功能实现
业务基于建模平台进行表单建模,设计表单样式、打印样式以及报表样式,然后在Microsoft Visual Studio 2010开发平台中对相关业务进行开发。合同窗体frmHT_DF是从BaseForm2继承集成过来的,表头输入合同基本信息,其中合同单号与供应商发的提货单编号对应,同时还包含了对表单基本操作,如新增、批量新增、编辑、审核、保存、删除、导出、作废、查询、预览、打印、导出EXCEL;浏览定位页可以列表形式查看合同,并且可方便地实现过滤、排序、汇总、分组、拖动显示等功能,所有列表可方便的导出EXCEL文件。合同管理主要是对合同的新增、修改、删除、审核等功能,不同用户有不同的权限。以代发合同为例说明。
合同新增如图6所示,点击合同菜单,点击新增后,按要求填写相应的属性,完成后点击保存。如需修改可直接点击编辑进行修改。点击取消可以取消本次操作,回到上一步操作。如果合同已经审核通过的,就不可以再次进行编辑,只有审核人弃审后才能修改。

根据工程实际应用,基于XML开发了一套完整的业务建模平台,通过业务建模平台,可以更加快速的进行软件开发。在对用户需求进行分析的基础上,可在平台上进行拖拉,快速绘制出用户的需求,从而大大调高了软件开发的效率,缩短了软件开发的成本,更加方便地为用户进行修改维护。目前,建模平台相对覆盖面比较窄,还需要进一步拓宽,不断适应更多行业的软件开发需求,也是今后的研发重点。
参考文献
[1] 王卫国.基本对象模型及其应用技术[J].兵工自动化,2010(3):30-33.
[2] 辛爱莉.基于XML对象树模型的异构数据集成技术研究[J].中国科技信息,2009(13):22-24.
[3] KIM Y, KANG S, KIM D, et al. WW-FLOW: Web-based workflow management with runtime encapsulation[J]. IEEE Internet Computer, 2002,4(3):55-64.
[4] 方美琪.XML及其在电子商务中的应用[M].北京:清华大学出版社,2003.
[5] 王春红,何志林.基于XML的Web系统报表精确打印实现[J].现代电子技术,2007(5):37-39.
[6] 王振辉.基于RDBMS的XML数据存储技术[J].计算机系统应用,2011(3):32-34.
[7] 董萍萍.基于XML技术的物流信息系统平台研究[J].物流技术,2011(1):18-20.
[8] 李霞,王琦.基于.NET构件模型的用友U8凭证接口构件模型分析与设计[J].山西大同大学学报(自然科学版),2010(5):41-43.