李 采,劉幺和,花 奇,唐華承
(湖北工業(yè)大學(xué)機械工程學(xué)院,湖北 武漢430068)
企業(yè)資源計劃系統(tǒng)(ERP)能幫助企業(yè)家更好地管理企業(yè)資源。更重要的是,ERP系統(tǒng)可以記錄日常業(yè)務(wù)中包括進(jìn)銷存的各個環(huán)節(jié)在內(nèi)的大量且復(fù)雜的流程,有助于企業(yè)決策者把握公司動態(tài),實現(xiàn)實時動態(tài)的數(shù)據(jù)共享分析,了解業(yè)務(wù)細(xì)節(jié),調(diào)整發(fā)展方向。由于ERP系統(tǒng)儲存企業(yè)人、財、物的資源信息,這些信息包括HR(Human Resource人力資源管理)、FA(Financial Accountant財物會計管理)、MRP(Material Requirement Planning物料需求計劃)、INV(Inventory Stocks Reserves庫存管理)等模塊流程的數(shù)據(jù)采集及其處理分析[1]。如何使大量數(shù)據(jù)分類儲存,按流程處理分析,并最終呈現(xiàn)在決策者面前,是ERP數(shù)據(jù)處理的關(guān)鍵所在。本文提出使用EF(Entity Framework)的面向?qū)ο笈c關(guān)系數(shù)據(jù)庫的解決方案存儲原始數(shù)據(jù),在頁面和移動端分別使用jQuery和JQuery Mobile的輕量級頁面展示技術(shù),最終在Windows Phone操作系統(tǒng)上實現(xiàn)ERP系統(tǒng)輕量級移動化辦公。
ERP系統(tǒng)采用的三層架構(gòu):第一層為表現(xiàn)層(Presentation layer),作用為在用戶端接收并展現(xiàn)數(shù)據(jù);第二層為業(yè)務(wù)邏輯層(Application layer),主要是形成合理完整的業(yè)務(wù)邏輯與應(yīng)用以滿足用戶需求(包括對請求的接受處理、對 Web Service和數(shù)據(jù)庫的訪問交互),是系統(tǒng)的核心所在;數(shù)據(jù)訪問層(Data access layer),即對數(shù)據(jù)庫及其數(shù)據(jù)文件進(jìn)行訪問,進(jìn)行select、insert、update、delete操作。其關(guān)系結(jié)構(gòu)如圖1所示。
圖1 ERP系統(tǒng)結(jié)構(gòu)
ERP系統(tǒng)是當(dāng)今企業(yè)信息化的選擇[2],其根據(jù)公司進(jìn)銷存經(jīng)驗的主要流程分成銷售模塊、項目管理模塊、采購模塊、制造模塊、庫存模塊、品質(zhì)管理、財物管理及人力資源管理等。ERP系統(tǒng)業(yè)務(wù)流程復(fù)雜多變。
公司經(jīng)營的業(yè)務(wù)流程大致分為幾個階段:1)銷售員與市場推廣部一起接下訂單;2)項目部接到訂單后,給采購部門提出采購申請,原材料采購后進(jìn)入庫存供生產(chǎn)使用,生產(chǎn)部門下達(dá)生產(chǎn)制造計劃;3)產(chǎn)品完成后存入待發(fā)貨品庫,進(jìn)入發(fā)貨流程;4)財務(wù)部門根據(jù)貨物接收及買方付款情況,生成相應(yīng)賬目款項,并完成發(fā)票開具及相關(guān)賬目入賬,最終生成財務(wù)報表;5)穿插其中的是各流程人事分配及其工部完成,相應(yīng)責(zé)任和績效。圖2為ERP系統(tǒng)業(yè)務(wù)流程。
圖2 ERP系統(tǒng)基本業(yè)務(wù)流程
例如,在實際業(yè)務(wù)中,業(yè)務(wù)員談好一筆訂單,向ERP系統(tǒng)錄入訂單名稱、物料編碼(貨物型號)、數(shù)量、單價、訂貨日期、收貨日期、收貨地址、賬單地址、付款方式、付款金額等;項目組根據(jù)訂單要求,在系統(tǒng)中向采購部發(fā)送采購清單及擬訂入庫日期,向生產(chǎn)部制定生產(chǎn)計劃和要求及交付日期;生產(chǎn)部制定具體生產(chǎn)流程和產(chǎn)出交付計劃(圖4),并按照生產(chǎn)進(jìn)度向系統(tǒng)錄入生產(chǎn)記錄;貨物交付后,財務(wù)會隨貨物開出發(fā)票,在系統(tǒng)中生成賬單及發(fā)票等具體賬務(wù)信息,并和客戶協(xié)商交貨及付款方式,將貨款加入系統(tǒng)賬戶余額中。
訂單生成后,財物模塊產(chǎn)生“借:接收帳戶”“貸:應(yīng)計負(fù)債”。入庫后,財務(wù)模塊生產(chǎn)“借:庫存估值”。發(fā)票生成后,財務(wù)模塊產(chǎn)生“貸:應(yīng)付帳款”,客戶付款后財務(wù)模塊產(chǎn)生“貸:現(xiàn)金”等借接收賬戶、生產(chǎn)成本的“貸:應(yīng)計負(fù)債”,入庫的“借:庫存估值”,發(fā)票的“貸:應(yīng)付賬款”,付款的“貸:現(xiàn)金”等;發(fā)票的單價、稅金和發(fā)票價格差異;付款時的分期付款、折扣、付款方式等。每一步都在財務(wù)模塊上表現(xiàn)出來。
通過ERP系統(tǒng),項目經(jīng)理可以實時監(jiān)控項目進(jìn)程,督促項目實施,并及時對相應(yīng)情況作出調(diào)整;部門經(jīng)理可以掌握部門人員的工作情況、各項目的成本收益,做人事管理;企業(yè)決策者可以在財物總賬上看到總的財物虧益情況,并根據(jù)業(yè)務(wù)需要,查出每個部門甚至項目的整個過程,掌握公司動態(tài),推斷市場需求,及時調(diào)整業(yè)務(wù)方向,對企業(yè)未來進(jìn)行規(guī)劃。
EF全稱 ADO.NET Entity Framework[3],是微軟推出的開源Windows開發(fā)平臺,其核心為Entity Data Model(EDM)[4]。它利用抽象的數(shù)據(jù)化結(jié)構(gòu),將數(shù)據(jù)庫轉(zhuǎn)化為應(yīng)用程序式的對象,將數(shù)據(jù)庫、表單、字段轉(zhuǎn)化為屬性,使得E/R模型的數(shù)據(jù)庫成為對象模型。軟件工程師可以直接用應(yīng)用程序模型編程訪問數(shù)據(jù)庫,減少了開發(fā)工作量,同時減少了系統(tǒng)數(shù)據(jù)的維護工作量[5]。
使用EF技術(shù),采用 Asp.Net支持 LINQ to Entity[6]的實體類來建立實體(圖3),使用linq語句可以操作數(shù)據(jù)庫,達(dá)到“增、刪、查、改”功能。其代碼結(jié)構(gòu)清晰,簡單易懂,大大減少代碼量,方便操作。其部分代碼如下:
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還支持?jǐn)?shù)據(jù)綁定操作[7],如xxData-Source,以便數(shù)據(jù)顯示:
<asp:EntityDataSource ID="EntityDataSource1"runat="server"ConnectionString="name=StudentEntities"DefaultContainerName="StudentEntities" EntitySet-Name="Table_1">
</asp:EntityDataSource>
圖3 Windows使用Entity Framework建立數(shù)據(jù)結(jié)構(gòu)
完成了ERP系統(tǒng)的數(shù)據(jù)存儲,還要把數(shù)據(jù)呈現(xiàn)出來[8]。筆者采用jQuery輕量級技術(shù)把大量的數(shù)據(jù)快速展現(xiàn)在前端界面上。
JQuery是當(dāng)今使用最廣泛的一個輕量級的開源JavaScript庫,屬于Ajax框架。它廣泛兼容CSS3和多種瀏覽器,可使程序開發(fā)員寫最少的代碼得到最多的界面設(shè)計。其特點有:動態(tài)特效、ajax,可拓展插件、漸進(jìn)增強、鏈?zhǔn)秸{(diào)用等,插件包括:數(shù)據(jù)表格、時間、進(jìn)度條、通知消息、樹形結(jié)構(gòu)、導(dǎo)航菜單等,可使開發(fā)者根據(jù)不同需求選擇相應(yīng)特性。
其輕量級特性在實際網(wǎng)站中的體現(xiàn)尤為突出。網(wǎng)站中用到的jQuery.min.js只有幾十到幾百KB的大小,其官網(wǎng)免費下載的完整開發(fā)包也不到1MB。還可以把jQuery存儲在CDN公共庫上,這樣可以加快網(wǎng)站的載入速度,并提高其穩(wěn)定性。現(xiàn)在可以從 Google、Microsoft、SAE、BAE等公共的網(wǎng)絡(luò)服務(wù)器中選擇引用。
jQuery的顯示技術(shù)是標(biāo)準(zhǔn)的HTML和CSS的表示技術(shù),數(shù)據(jù)交換和處理是使用XML和XSLT技術(shù),異步數(shù)據(jù)搜索使用XMLHttpRequest技術(shù)。jQuery還簡化了選擇器的使用方式、事件定義方式和CSS的操作,并能快速對DOM進(jìn)行操作。使用$.get()、$post()、等 Restful Web Services方法實現(xiàn)數(shù)據(jù)交換,易于人們閱讀并適合及其解析。圖4是使用jQuery技術(shù)顯示的表格數(shù)據(jù)。
圖4 使用jQuery技術(shù)的ERP數(shù)據(jù)顯示界面
jQuery顯示數(shù)據(jù)表格,其代碼簡單易讀,結(jié)構(gòu)清晰,適合網(wǎng)站開發(fā),可提高網(wǎng)站開發(fā)效率。使用jQuery能方便讀取并顯示大量信息,后期維護更加容易。其部分關(guān)鍵代碼如下:
<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是微軟公司為智能手機和智能掌上電腦等移動端開發(fā)的操作系統(tǒng)。其功能強大,因而在移動端采用 Windows Phone的操作系統(tǒng)。
手機ERP界面數(shù)據(jù)展示采用與jQuery一脈相承的jQuery Mobile(jQuery在手機和平板設(shè)備上的版本)。jQuery Mobile框架的整體比較小,JavaScript庫12KB,CSS 6KB,還包括一些圖標(biāo)。jQuery Mobile同時支持高端和低端設(shè)備,增強的布局由外部鏈接的CSS提供,增強的行為由外部鏈接的JavaScript提供。此時,終端用戶瀏覽器偏好受到尊重。
jQuery Mobile采用最新的 HTML5、CSS3和JavaScript,但并非所有移動設(shè)備都提供這樣的支持。對于那些非JavaScript支持的設(shè)備,jQuery Mobile也會盡量提供最好的用戶體驗。另外,jQuery Mobile在設(shè)計時考慮了訪問能力,它擁有Accessible Rich Internet Applications (WAIARIA)支持,可輔助殘障人士訪問web頁面。
有了良好的移動端輕量級的數(shù)據(jù)顯示界面,我們要采用Restful Web Service方法,用最簡單的請求從服務(wù)器發(fā)送讀取需求。物聯(lián)網(wǎng)移動終端數(shù)據(jù)傳輸是在云平臺上交換和傳輸?shù)?,對于基于網(wǎng)絡(luò)分布式的應(yīng)用,網(wǎng)絡(luò)傳輸是其一個重要影響因素,如何使用緩存來節(jié)省網(wǎng)絡(luò)傳輸帶來的損耗,是每一個構(gòu)建分布式網(wǎng)絡(luò)應(yīng)用的物聯(lián)網(wǎng)開發(fā)人員必須考慮的問題。由于 Restful Web Service是輕量級的,結(jié)合HTTP直接傳輸數(shù)據(jù)的無狀態(tài)請求可以用服務(wù)器回答,這適應(yīng)了云計算之類的環(huán)境。Restful Web Service方法已經(jīng)成為最常見的替代方法,Restful Web Service通??梢酝ㄟ^自動客戶端或代表用戶的應(yīng)用程序訪問,這種服務(wù)的簡便性讓用戶能夠與之直接交互,使用它們的Web瀏覽器構(gòu)建一個Get URL并讀取返回的數(shù)據(jù)內(nèi)容。
例如,從 Web Service中顯示一個phonebook圖像,用SOAP代碼形式表達(dá)為:
<?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代碼形式表達(dá)為:
http://www.acme.comm/phonebook/UserDetails/12345
顯然,用REST直接與網(wǎng)絡(luò)連接并顯示在瀏覽器上既簡單又實用。近幾年,Restful Web Service漸漸開始流行,并大量用于解決異構(gòu)系統(tǒng)間的通信問題。而ERP系統(tǒng)根據(jù)企業(yè)行業(yè)不同有所區(qū)別,但其基本原理是相同的,即對企業(yè)資源的信息化一體化管理。其模塊間的聯(lián)系也包含其數(shù)據(jù)庫的關(guān)系,所以它的數(shù)據(jù)庫也是按照關(guān)系數(shù)據(jù)庫的模式設(shè)計的。為數(shù)據(jù)庫提供機構(gòu)統(tǒng)一的數(shù)據(jù)源,可以方便獲取數(shù)據(jù),提高預(yù)處理的速度和難度[9]。其表單如圖5所示。
圖5 Windows Mobile操作顯示界面
這樣,我們可以在移動端(手機)對ERP系統(tǒng)從產(chǎn)品銷售期望、生產(chǎn)計劃制定、生產(chǎn)需求滿足、原料采購儲存、生產(chǎn)管理、產(chǎn)品出庫銷售等流程進(jìn)行查詢訪問。這種動態(tài)數(shù)據(jù)獲取使得使用者可以及時、全面、準(zhǔn)確掌握企業(yè)信息[10]。
ERP的數(shù)據(jù)分析將各功能模塊中的大量數(shù)據(jù)轉(zhuǎn)化為可利用的信息并隨時獲取,從生產(chǎn)及管理的海量信息中挖掘出可用信息,經(jīng)數(shù)據(jù)分析后,生產(chǎn)資源的利用率(包括人力、物力、財力、生產(chǎn)效率等)一目了然,方便決策者作出更合理的資源分配,使資源利用率最大化。
[1] 張麗偉.面向ERP的商務(wù)智能應(yīng)用研究[D].成都:成都理工大學(xué),2013.
[2] 張玲玲.基于ERP的機械制造企業(yè)投入產(chǎn)出表結(jié)構(gòu)及分析[J].中國管理科學(xué),2007,2(01):55-63.
[3] 謝日星.ADO_NETEntityFramework建模技術(shù)研究[J].科技傳播,2010,11(21):221.
[4] 但斌斌.EntityFramework在KR脫硫自動控制系統(tǒng)中的應(yīng)用[J].控制技術(shù),2013,35(03):8-10.
[5] 陳永松.EntityFramework數(shù)據(jù)訪問性能優(yōu)化的幾種方法[J].電腦開發(fā)與應(yīng)用,2014,7(07):71-73.
[6] 韋 軍.運用LinqtoEntity快速構(gòu)建信息系統(tǒng)結(jié)構(gòu)[J].科技世界,2012,8(24):42-44.
[7] 趙 亮.使用EntityFramework快速開發(fā)Asp_net網(wǎng)站[J].技術(shù)市場,2010,9(18):269-270.
[8] 胡佳林.ERP數(shù)據(jù)系統(tǒng)的分析與研究[J].東方汽輪機,2012(04):70-76.
[9] 李高峰.基于WindowsMobile的移動終端端研究及在圖書館管理系統(tǒng)中的應(yīng)用[D].成都:西南石油大學(xué),2010.
[10]喻金龍.基于ERP的數(shù)據(jù)管理研究[D].成都:西南石油大學(xué),2005.