李 采,刘幺和,花 奇,唐华承
(湖北工业大学机械工程学院,湖北 武汉430068)
企业资源计划系统(ERP)能帮助企业家更好地管理企业资源。更重要的是,ERP系统可以记录日常业务中包括进销存的各个环节在内的大量且复杂的流程,有助于企业决策者把握公司动态,实现实时动态的数据共享分析,了解业务细节,调整发展方向。由于ERP系统储存企业人、财、物的资源信息,这些信息包括HR(Human Resource人力资源管理)、FA(Financial Accountant财物会计管理)、MRP(Material Requirement Planning物料需求计划)、INV(Inventory Stocks Reserves库存管理)等模块流程的数据采集及其处理分析[1]。如何使大量数据分类储存,按流程处理分析,并最终呈现在决策者面前,是ERP数据处理的关键所在。本文提出使用EF(Entity Framework)的面向对象与关系数据库的解决方案存储原始数据,在页面和移动端分别使用jQuery和JQuery Mobile的轻量级页面展示技术,最终在Windows Phone操作系统上实现ERP系统轻量级移动化办公。
ERP系统采用的三层架构:第一层为表现层(Presentation layer),作用为在用户端接收并展现数据;第二层为业务逻辑层(Application layer),主要是形成合理完整的业务逻辑与应用以满足用户需求(包括对请求的接受处理、对 Web Service和数据库的访问交互),是系统的核心所在;数据访问层(Data access layer),即对数据库及其数据文件进行访问,进行select、insert、update、delete操作。其关系结构如图1所示。
图1 ERP系统结构
ERP系统是当今企业信息化的选择[2],其根据公司进销存经验的主要流程分成销售模块、项目管理模块、采购模块、制造模块、库存模块、品质管理、财物管理及人力资源管理等。ERP系统业务流程复杂多变。
公司经营的业务流程大致分为几个阶段:1)销售员与市场推广部一起接下订单;2)项目部接到订单后,给采购部门提出采购申请,原材料采购后进入库存供生产使用,生产部门下达生产制造计划;3)产品完成后存入待发货品库,进入发货流程;4)财务部门根据货物接收及买方付款情况,生成相应账目款项,并完成发票开具及相关账目入账,最终生成财务报表;5)穿插其中的是各流程人事分配及其工部完成,相应责任和绩效。图2为ERP系统业务流程。
图2 ERP系统基本业务流程
例如,在实际业务中,业务员谈好一笔订单,向ERP系统录入订单名称、物料编码(货物型号)、数量、单价、订货日期、收货日期、收货地址、账单地址、付款方式、付款金额等;项目组根据订单要求,在系统中向采购部发送采购清单及拟订入库日期,向生产部制定生产计划和要求及交付日期;生产部制定具体生产流程和产出交付计划(图4),并按照生产进度向系统录入生产记录;货物交付后,财务会随货物开出发票,在系统中生成账单及发票等具体账务信息,并和客户协商交货及付款方式,将货款加入系统账户余额中。
订单生成后,财物模块产生“借:接收帐户”“贷:应计负债”。入库后,财务模块生产“借:库存估值”。发票生成后,财务模块产生“贷:应付帐款”,客户付款后财务模块产生“贷:现金”等借接收账户、生产成本的“贷:应计负债”,入库的“借:库存估值”,发票的“贷:应付账款”,付款的“贷:现金”等;发票的单价、税金和发票价格差异;付款时的分期付款、折扣、付款方式等。每一步都在财务模块上表现出来。
通过ERP系统,项目经理可以实时监控项目进程,督促项目实施,并及时对相应情况作出调整;部门经理可以掌握部门人员的工作情况、各项目的成本收益,做人事管理;企业决策者可以在财物总账上看到总的财物亏益情况,并根据业务需要,查出每个部门甚至项目的整个过程,掌握公司动态,推断市场需求,及时调整业务方向,对企业未来进行规划。
EF全称 ADO.NET Entity Framework[3],是微软推出的开源Windows开发平台,其核心为Entity Data Model(EDM)[4]。它利用抽象的数据化结构,将数据库转化为应用程序式的对象,将数据库、表单、字段转化为属性,使得E/R模型的数据库成为对象模型。软件工程师可以直接用应用程序模型编程访问数据库,减少了开发工作量,同时减少了系统数据的维护工作量[5]。
使用EF技术,采用 Asp.Net支持 LINQ to Entity[6]的实体类来建立实体(图3),使用linq语句可以操作数据库,达到“增、删、查、改”功能。其代码结构清晰,简单易懂,大大减少代码量,方便操作。其部分代码如下:
StudentEntities est=new StudentEntities();//增加插入
Table_1u= new Table_1();
u.stuID =20;
u.stuName="xiamai";
u.stuSex="man";
u.stuHobby="ball";
u.stuCity="modu";
est.Table_1.AddObject(u);
est.SaveChanges();
Asp.Net还支持数据绑定操作[7],如xxData-Source,以便数据显示:
<asp:EntityDataSource ID="EntityDataSource1"runat="server"ConnectionString="name=StudentEntities"DefaultContainerName="StudentEntities" EntitySet-Name="Table_1">
</asp:EntityDataSource>
图3 Windows使用Entity Framework建立数据结构
完成了ERP系统的数据存储,还要把数据呈现出来[8]。笔者采用jQuery轻量级技术把大量的数据快速展现在前端界面上。
JQuery是当今使用最广泛的一个轻量级的开源JavaScript库,属于Ajax框架。它广泛兼容CSS3和多种浏览器,可使程序开发员写最少的代码得到最多的界面设计。其特点有:动态特效、ajax,可拓展插件、渐进增强、链式调用等,插件包括:数据表格、时间、进度条、通知消息、树形结构、导航菜单等,可使开发者根据不同需求选择相应特性。
其轻量级特性在实际网站中的体现尤为突出。网站中用到的jQuery.min.js只有几十到几百KB的大小,其官网免费下载的完整开发包也不到1MB。还可以把jQuery存储在CDN公共库上,这样可以加快网站的载入速度,并提高其稳定性。现在可以从 Google、Microsoft、SAE、BAE等公共的网络服务器中选择引用。
jQuery的显示技术是标准的HTML和CSS的表示技术,数据交换和处理是使用XML和XSLT技术,异步数据搜索使用XMLHttpRequest技术。jQuery还简化了选择器的使用方式、事件定义方式和CSS的操作,并能快速对DOM进行操作。使用$.get()、$post()、等 Restful Web Services方法实现数据交换,易于人们阅读并适合及其解析。图4是使用jQuery技术显示的表格数据。
图4 使用jQuery技术的ERP数据显示界面
jQuery显示数据表格,其代码简单易读,结构清晰,适合网站开发,可提高网站开发效率。使用jQuery能方便读取并显示大量信息,后期维护更加容易。其部分关键代码如下:
<head>
<meta charset="UTF-8">
<title>Basic DataGrid-jQuery EasyUI Demo</title>
<link rel="stylesheet"type="text/css"href="jquery-easyui-1.4.1/themes/default/easyui.css">
<link rel="stylesheet"type="text/css"href="jquery-easyui-1.4.1/themes/icon.css">
<link rel="stylesheet"type="text/css"href="jquery-easyui-1.4.1/demo/demo.css">
<script type="text/javascript"src="jqueryeasyui-1.4.1/jquery.min.js"></script>
<script type="text/javascript"src="jqueryeasyui-1.4.1/jquery.easyui.min.js"></script>
</head>
<body>
<h2>Basic DataGrid</h2>
<p>The DataGrid is created from markup,no JavaScript code needed.</p>
<div style="margin:20px 0;"></div>
<table class="easyui-datagrid"title="Basic Data-Grid"style="width:700px;height:250px"data-options="singleSelect:true,collapsible:true,url:'jquery-easyui-1.4.1/demo/datagrid/datagrid_data1.json',method:'get'">
<thead>
<tr>
<th data-options="field:'itemid',width:80">I-tem ID</th>
<th data-options="field:'productid',width:100">Product</th>
<th data-options="field:'listprice',width:80,align:'right'">List Price</th>
<th data-options="field:'unitcost',width:80,align:'right'">Unit Cost</th>
<th data-options="field:'attr1',width:250">Attribute</th>
<th data-options="field:'status',width:60,align:'center'">Status</th>
</tr>
</thead>
</table>
</body>
</html>
Windows Phone是微软公司为智能手机和智能掌上电脑等移动端开发的操作系统。其功能强大,因而在移动端采用 Windows Phone的操作系统。
手机ERP界面数据展示采用与jQuery一脉相承的jQuery Mobile(jQuery在手机和平板设备上的版本)。jQuery Mobile框架的整体比较小,JavaScript库12KB,CSS 6KB,还包括一些图标。jQuery Mobile同时支持高端和低端设备,增强的布局由外部链接的CSS提供,增强的行为由外部链接的JavaScript提供。此时,终端用户浏览器偏好受到尊重。
jQuery Mobile采用最新的 HTML5、CSS3和JavaScript,但并非所有移动设备都提供这样的支持。对于那些非JavaScript支持的设备,jQuery Mobile也会尽量提供最好的用户体验。另外,jQuery Mobile在设计时考虑了访问能力,它拥有Accessible Rich Internet Applications (WAIARIA)支持,可辅助残障人士访问web页面。
有了良好的移动端轻量级的数据显示界面,我们要采用Restful Web Service方法,用最简单的请求从服务器发送读取需求。物联网移动终端数据传输是在云平台上交换和传输的,对于基于网络分布式的应用,网络传输是其一个重要影响因素,如何使用缓存来节省网络传输带来的损耗,是每一个构建分布式网络应用的物联网开发人员必须考虑的问题。由于 Restful Web Service是轻量级的,结合HTTP直接传输数据的无状态请求可以用服务器回答,这适应了云计算之类的环境。Restful Web Service方法已经成为最常见的替代方法,Restful Web Service通常可以通过自动客户端或代表用户的应用程序访问,这种服务的简便性让用户能够与之直接交互,使用它们的Web浏览器构建一个Get URL并读取返回的数据内容。
例如,从 Web Service中显示一个phonebook图像,用SOAP代码形式表达为:
<?xml version=”1.0”?>
<soap:Envelope
Xmlns:soap=http://www.w3.org/2001/12/soapenvleope
soap:encodingStyle=”http://www.w3.org/2001/12/soap-encoding”>
<soap:body pb=”http://www.acme.comm/phonebook”>
<pb:GetUserDetails>
<pb:UserID>12345<pb:UserID>
<pb:GetUserDetails>
</soap:Body>
<soap:Envelope>
而使用Restful Web Service代码形式表达为:
http://www.acme.comm/phonebook/UserDetails/12345
显然,用REST直接与网络连接并显示在浏览器上既简单又实用。近几年,Restful Web Service渐渐开始流行,并大量用于解决异构系统间的通信问题。而ERP系统根据企业行业不同有所区别,但其基本原理是相同的,即对企业资源的信息化一体化管理。其模块间的联系也包含其数据库的关系,所以它的数据库也是按照关系数据库的模式设计的。为数据库提供机构统一的数据源,可以方便获取数据,提高预处理的速度和难度[9]。其表单如图5所示。
图5 Windows Mobile操作显示界面
这样,我们可以在移动端(手机)对ERP系统从产品销售期望、生产计划制定、生产需求满足、原料采购储存、生产管理、产品出库销售等流程进行查询访问。这种动态数据获取使得使用者可以及时、全面、准确掌握企业信息[10]。
ERP的数据分析将各功能模块中的大量数据转化为可利用的信息并随时获取,从生产及管理的海量信息中挖掘出可用信息,经数据分析后,生产资源的利用率(包括人力、物力、财力、生产效率等)一目了然,方便决策者作出更合理的资源分配,使资源利用率最大化。
[1] 张丽伟.面向ERP的商务智能应用研究[D].成都:成都理工大学,2013.
[2] 张玲玲.基于ERP的机械制造企业投入产出表结构及分析[J].中国管理科学,2007,2(01):55-63.
[3] 谢日星.ADO_NETEntityFramework建模技术研究[J].科技传播,2010,11(21):221.
[4] 但斌斌.EntityFramework在KR脱硫自动控制系统中的应用[J].控制技术,2013,35(03):8-10.
[5] 陈永松.EntityFramework数据访问性能优化的几种方法[J].电脑开发与应用,2014,7(07):71-73.
[6] 韦 军.运用LinqtoEntity快速构建信息系统结构[J].科技世界,2012,8(24):42-44.
[7] 赵 亮.使用EntityFramework快速开发Asp_net网站[J].技术市场,2010,9(18):269-270.
[8] 胡佳林.ERP数据系统的分析与研究[J].东方汽轮机,2012(04):70-76.
[9] 李高峰.基于WindowsMobile的移动终端端研究及在图书馆管理系统中的应用[D].成都:西南石油大学,2010.
[10]喻金龙.基于ERP的数据管理研究[D].成都:西南石油大学,2005.