APP下载

基于任务驱动的ERP实验系统开发探索

2014-06-05宋维宾

实验科学与技术 2014年5期
关键词:导学用户实验

宋维宾,陈 冰

基于任务驱动的ERP实验系统开发探索

宋维宾1,陈 冰2

(1.河南理工大学 能源科学与工程学院,河南 焦作 454000;2.焦作大学 信息工程学院,河南 焦作 454000)

针对高校企业资源计划实验教学中的主要问题,运用游戏设计思想和要素,设计了基于任务驱动的ERP实验系统。系统基于开源的OpenERP进行设计和开发,包括ERP系统和导学系统两部分,二者在服务器端相互独立,数据库共享共用,而在浏览器端则相互集成和融合。运用反向代理、数据库、JQuery等技术,解决了框架间跨域访问、浏览器端用户行为跟踪、数据库变化侦测等关键技术问题,实现了实验系统的核心功能。系统是面向管理类专业的通用实验平台,既适用于课堂教学,又可作为开放性自学平台。在驱动性、对抗性等方面完善提高后,系统具有较高的推广价值。

任务驱动;企业资源计划;实验系统;OpenERP软件

随着我国企业信息化建设步伐的加快和企业资源计划(enterprise resource planning,ERP)厂商的市场推广,我国已进入ERP普及时代。人才作为ERP实施成败的关键因素,企业对其质和量的需求与日俱增,ERP应用能力已成为社会对高校管理类(包括管理学类、物流类、工业工程类等)专业人才培养的新需求[1-4]。

面对社会对ERP应用人才的日益增长需求,作为ERP人才培养的主阵地,高校的应变和调整相对滞后,主要表现为:多数管理类专业培养方案未将ERP课程列入必修课程;一般不独立设置ERP实验课程,ERP实验课时极为有限。受软硬件、师资、学时等条件制约,加之教学中存在的理论与软件操作脱节、实验内容系统性差、实战性不强等问题,ERP实验开设困难和教学效果不佳的问题在国内高校中普遍存在[5-8]。

从学生自学角度来看,由于缺乏必要的激励和引导,丰富的书籍、教程(图文、视频)、试用软件等学习资源却得不到充分有效地利用。在课堂之外,能够系统学习ERP的学生少之又少。

针对上述问题,从建构主义教育理念出发,运用情景性、沉浸感、任务驱动、随机性等游戏设计要素[9-10],笔者设计开发了基于任务驱动的ERP仿真实验系统,旨在为管理类专业学生提供一个开放性实验平台。

1 系统设计

1.1 系统设计思路

实验系统集成开源ERP系统进行设计,包括导学系统和ERP系统,如图1所示。在导学系统中,将ERP的基本概念、理论、方法同ERP软件功能结合起来[11],按照由浅至深、通专结合的原则,将传统课堂上的实训题目,设计成为新手任务、进阶任务、专家任务等各种任务项目;用户在导学系统中开启任务,按照任务向导提示,在ERP系统中完成当前任务指定的业务操作。导学系统根据用户的客户端操作行为和ERP系统数据库的数据变动判别任务完成情况,任务完成后,导学系统给予用户一定的经验值和财富值奖励,并记录可供考核的日志。该系统综合运用任务驱动、情景模拟、荣誉激励等方法,系统性地引导学生完成销售、生产、采购、仓库、会计等日常业务处理任务,以及针对特定专业设计的实战性、专业性更强的业务操作任务。通过大量的任务训练,可加深学生对企业管理业务流程、ERP理论、ERP软件系统等的认识和理解,能使其积累一定的软件实操经验和管理实务经验,并形成继续学习ERP的动力和兴趣。

图1 实验系统整体架构

针对实验教学中理论与软件实操容易脱节的问题,任务设计采用向导式设计。任务向导既为学生提供连续完整的情景信息,包括时间(时机)、人物、地点(部门)、剧情等,又尽可能将体现在ERP软件中的理论知识揭示出来。换言之,学生在完成任务时,能够弄清任务的时间、部门、人物、事件等相关要素,能够感知物料、资金、信息的流动,能够搞清楚所模拟业务流程的来龙去脉。

考虑到各专业教学要求和目标的不同,导学系统支持企业类型和角色类别定制。用户在注册时,可设置模拟企业的类型,如商贸业、制造业等;用户登入系统后,可随时切换自己的角色类别。系统会根据角色类别,在其业务范围内生成实训任务。

1.2 系统功能设计

导学系统的主要功能模块包括任务、沙盘、伙伴、测评、对话、消息、日志等,以下重点介绍任务模块。

任务模块的作用是开启、侦测和处理实训任务。系统根据用户属性(专业、级别等)和ERP系统现有经营数据,循序或随机从任务库中调取任务,并提醒用户有新任务产生。用户开启任务后,系统将定时(如每隔0.5 s)跟踪用户的鼠标操作行为,当侦测到ERP系统中标志性按钮被点击后,延时数秒等待ERP系统处理完毕,而后调用任务处理程序,在ERP数据库中查询当前任务相关数据的变化情况,如数据的增减、更新等,并依此判断任务是否完成。任务完成后,系统随即或按随机的时间间隔,调取下一个新任务。标志性按钮是指“保存”“审核”“入库”等表单提交按钮,当其被点击后,ERP数据库可能发生变动。

任务模块共设计新手、进阶、专家等三类任务。新手任务用于引导学生录入ERP基础资料,完成一个销售订单的完整业务流程操作,如图2所示。进阶任务难度稍大,所模拟的业务更接近生产实际,如销售业务要考虑折扣、客户信用等,按照ERP的功能,可分为销售、采购、仓库、生产、会计等类别,在调用时,根据用户的专业或角色类别,按照权重随机调取,若用户是市场营销专业或销售主管,则系统会更多地调取销售类任务。由于企业的大部分业务是订单驱动的,因此,销售订单任务在进阶任务中的产生概率最大。专家任务的专业性、综合性最强,如销售预测、排程、分析财务报表等。

图2 新手任务表(部分)

其他模块主要为提高系统可视性、互动性和趣味性而设置。沙盘模块是一个简单可视化信息看板,用于增强用户的情景体验,系统能根据ERP数据库中的基础资料,按照设定布局规则,在沙盘上绘制车间、工作中心、仓库、部门、合作伙伴的图标(可制作成动画,如运行中的生产线、入库、出库等),并动态调用相关信息,构成一幅直观的企业经营状态图。伙伴、对话、消息等模块是用户之间的交流互动平台。在伙伴平台上,ERP用户之间能够建立供应链合作关系,开展销售、采购等业务,用户还能在其他用户系统中担任角色,开展分角色协同操作;对话、消息系统为用户间沟通和交流的工具。测评模块为在线考试系统,用于测试用户的ERP知识技能水平。日志模块主要记录和显示用户的任务完成情况,日志数据详细记录了用户登录、任务完成等信息,日志数据清单可作为实验报告的附件。

1.3 系统界面设计

实验系统主界面采用左右框架结构,左框架显示ERP系统软件界面,右框架加载导学系统页面,如图3所示。导学系统的所有子窗口均采用对话框形式进行设计,在导学系统中点击对话框按钮,即打开相应的对话框窗口。为方便用户操作,在左框架中设置有隐藏/显示切换按钮,用户可根据需要隐藏或显示导学系统界面。

图3 实验系统界面

2 系统实现

2.1 开源ERP软件选择

从功能覆盖率、应用普及度、源码开放度、开发历史及影响、发展势头等多方面甄选,我们选择OpenERP作为本实验系统的ERP软件平台。

OpenERP是由比利时Tiny Sprl公司开发的一款开源ERP软件,目前,最新稳定版本为7.0。OpenERP使用Python语言开发,采用开源的PostgreSQL数据库,系统基于APGL开源协议发布,拥有上千个功能模块,其中官方标准模块有100多个,涵盖企业在销售、采购、库存、财务、生产、人力资源等方面的管理需求[12]。因其在易用性、第三方支持、定制和扩展等方面的优势,被Infoworld评为2012最佳开源ERP软件[13]。

2.2 开发方式选择

尽管OpenERP为二次开发提供了良好的支持,但对于导学系统而言,并不适合在OpenERP技术架构下进行开发。首先,若使用OpenERP的Python框架开发[14],则导学系统和原ERP系统耦合度高,ERP版本升级时,需要对导学系统进行大量的修改和调试工作;其次,掌握OpenERP的技术细节,需要较长的学习和研究时间。因此,导学系统开发宜采用相对独立的开发方式,即导学系统和ERP系统在服务器端相互独立,而在客户端则有机融合,两者共用同一数据库。

针对上述开发方式,系统环境按下述方案进行部署:(1)安装PostgreSQL数据库,建议使用9.0以上版本;(2)安装OpenERP server,XML-RPC端口设为8080;(3)安装Apache、PHP,配置PHP应用程序运行环境,HTTP端口为80;(4)配置A-pache反向代理功能,将其根目录指向OpenERP server;(5)在Apache根目录下创建一个子目录,存放导学系统程序文档,Apache对该目录不进行代理,如图4所示。按此部署,导学系统在服务器端可独立于ERP系统运行,既有利于日后ERP系统升级,又让开发者摆脱了ERP系统的技术框架,使其能够选择自己熟悉的程序语言(如PHP、JSP等)进行开发。

在以上的系统部署方案中,借助反向代理技术,导学系统和OpenERP系统能够共用同一个URL空间(域),可有效避开浏览器对框架间跨域操作的安全限制,解决了两者在浏览器端集成时的跨域难题。

图4 系统部署方案

2.3 关键技术实现

在导学系统的各个功能模块中,同ERP系统联系密切的模块,一般开发难度较大。下面着重介绍这些功能模块中的关键技术。

2.3.1 鼠标点击事件的监听机制

在任务模块中,导学系统通过侦测标志性按钮的鼠标点击事件,来激发任务处理程序。这一工作机制的实现分三个步骤实现:(1)修改ERP系统CSS文件,在ERP系统界面中,为目标按钮添加新的CSS类,相当于作标记,使其成为导学系统可检出的标志性按钮;(2)在导学系统创建JavaS-cript函数,命名为taskCheck,该函数的功能是利用JQuery技术[15],根据CSS类名,从ERP系统页面中检出标志性按钮,并为其添加一个鼠标点击事件函数,命名为taskhander。taskCheck函数按定时器设定的间隔(如0.5 s)重复执行,当用户点击标志性按钮时,触发导学系统中定义的taskhander函数;(3)taskhander执行时,采用Ajax技术调用服务器端上的任务处理程序。

2.3.2 任务的生成机制

任务模块主要使用两个数据表:任务表和活动任务表。任务表存储任务编号、名称、说明、信息、经验值、财富值、类别等数据;活动任务表存放已载入的任务信息,包括任务编号、用户编号、任务状态(待开启、进行中、完成、放弃、过期)等数据。

任务生成是指从任务表中抽取任务信息并将其写入活动任务表的过程。新手任务生成时,先在活动任务表中查询已载入任务的最高等级,再从任务表中调取下一等级任务;进阶任务、专家任务生成时,先从任务表中随机抽取一条任务,检验其是否满足加载条件,若满足,则将其写入活动任务表。以“处理今日到期的发货单”任务为例,今日有到期的发货单时则加载,否则不加载。

进阶任务、专家任务生成过程具有较强的随机特性。首先,任务生成的间隔是随机的,在任务模块中,通过浏览器定时器来随机调用任务生成程序;其次,生成任务的类型是随机的;最后,任务信息是随机的。例如,任务相关的客户、物料等信息,都是从ERP系统数据库中现有数据中随机抽取的。

2.3.3 任务的处理机制

在ERP系统中,用户大多数操作都会引起数据库的数据变动包括数据插入、更新、删除等;任务模块依此来判别任务的完成情况。查询任务相关的ERP数据表,若发现有与预期相符的数据变化,任务处理程序则判定任务完成。以“完成一个销售订单”任务为例,若任务处理程序在ERP系统的sale order表中,检索到新增一条状态为“done”的记录,则表示任务完成;若在任务信息中指定了客户名称、商品名称、数量等信息,查询时也要判断这些约束条件是否满足。

任务处理程序在执行时,根据任务编号或等级调用相应的处理函数。当任务完成时,更新用户表、活动任务表、日志表等相关数据表,并做好加载新任务准备。

3 存在的问题及对策

目前,存在以下问题:(1)实验系统对学生自学活动的驱动力还有待加强;(2)用户间的对抗性偏弱;(3)OpenERP系统的核心逻辑同教材所描述的原理方法差异大;(4)OpenERP运行时占用系统资源较多,对服务器性能要求高。测试过程中,当20~30个用户同时登录时,系统频繁超负荷,影响用户访问。

现阶段的开发工作侧重于技术可行性探索,在模拟情景设计、任务编排及其实战性等方面暂未进行深入研究,这是系统驱动力不足的主要原因。今后将通过提高系统的情景性、趣味性和实战性,来增强系统的内在吸引力和驱动力。在实验系统中,除使用经验值、财富值、等级外,暂无模拟经营业绩的评价指标,这是系统对抗性弱的主因。这一问题是后续研究的重点。由于OpenERP是面向中小企业用户的简易ERP系统,在功能和流程方面,同商业ERP系统有一些差异,通过导学系统的补充和增强,可以使这一问题得以部分解决,如添加销售预测功能。至于系统负荷问题,可通过升级服务器或负载平衡来解决。

4 结束语

针对ERP实验教学中的主要问题,设计开发了基于任务驱动的ERP实验教学系统。系统借用游戏设计方法,将ERP原理知识和软件操作结合起来,设计成为任务项目。学生在系统设计的模拟情景中,在任务驱动下,能够轻松、主动地完成ERP业务操作。在深入理解ERP理论知识的基础上,获得一定实务经验和软件操作技能。系统适合于管理类专业学生使用,支持分角色扮演,既可用于实验课堂教学,又可作为课外自学平台。

系统基于OpenERP系统进行开发,运用反向代理、数据库、JQuery等技术,解决了框架跨域访问、鼠标点击事件跟踪、任务生成与处理等关键技术,成功实现了ERP系统与所开发导学系统的集成和融合。

目前,大多商业ERP系统已支持Web访问,运用本实验系统的设计思想和开发模式,基于商业ERP系统能否成功开发类似的实验系统,值得探索和尝试。本实验系统经进一步完善后,具有较大的推广价值。

[1]张涛.企业资源计划(ERP)原理与实践[M].北京:机械工业出版社,2010.

[2]周玉清,刘伯莹,周强.ERP原理与应用教程[M].北京:清华大学出版社,2010.

[3]张莉莉.新编用友ERP生产管理系统实验教程[M].北京:清华大学出版社,2009.

[4]文洋,尹风霞.SAP从入门到精通[M].北京:人民邮电出版社,2010.

[5]耿丽丽,李伟.ERP仿真综合实验平台的构建及教学模式探讨[J].实验室研究与探索,2011,30(6):201-203.

[6]陈畅,严志刚.高校ERP实践教学体系创新研究[J].沈阳教育学院学报,2009,11(2):72-73.

[7]徐爱,高树风,赵鹤芹.经管类专业ERP综合实践教学体系的构建[M].实验室研究与探索,2012,31(2):185-188.

[8]刘新艳,吴琨.提升工商管理类学生专业能力的ERP实验教学探讨[J].中国大学教学,2010(10):70-72.

[9]张庆华,彭晓英.基于情境设计的ERP综合实训模式[J].实验室研究与探索,2011,30(6):370-372.

[10]Adams E,Rolling A.游戏设计基础[M].王鹏杰,董西广,霍建同,译.北京:机械工业出版社,2009.

[11]吴叶葵,唐志豪.“ERP软件应用”课程开放式实验教学模式探索[J].实验室研究与探索,2012,31(7):202-205.

[12]Fabien Pinckaers,Geoff Gardiner.OpenERP Book[EB/ OL].[2013-03-27].http://doc.openerp.com/ v7.0/book/index.html.

[13]Infoworld.The Best Open Source Applications[EB/OL].(2012-09-18)[2013-03-27].http://www. infoworld.com/slideshow/65165/bossie-awards-2012-the-best-open-source-applications-202530.

[14]李勇,王文强.Web程序员成功之路:Python Web开发学习实录[M].北京:清华大学出版社,2011.

[15]赵增敏.jQuery全面提速[M].北京:机械工业出版社,2010.

Development and Exp loration of ERP Training System Based on Task-driven Approach

SONGWeibin1,CHEN Bing2
(1.School of Energy Science and Engineering,He'nan Polytechnic University,Jiaozuo 454000,China;2.College of Information Engineering,Jiaozuo University,Jiaozuo 454000,China)

Direct against themain problems of ERP practice training in universities,applying game theory and design elements,the ERP training system based on task-driven approach was designed.The training system was developed on the basis of open-source Open-ERP.The system consists of two parts:ERP system and guiding system,which are independentof each other on the server side,integrated mutually on the browser side,and share the same database service.We applied various web application technologies,such as reverse proxy,database and JQuery,the key technical problems of access across domains,tracking online behavior of users,listening changes of database tableswere successfully solved,and the core functionality of the system was implemented.As a generalexperiment platform formanagementmajors,it applies to both classroom teaching and self-learning.The system has a great promotional value after further improvement.

task-driven approach;enterprise resource planning;experimental system;OpenERP software

TP31

A

10.3969/j.issn.1672-4550.2014.05.018

2013-09-26;修改日期:2013-10-29

宋维宾(1976-),男,在读博士,实验师,研究方向:矿业工程。

猜你喜欢

导学用户实验
记一次有趣的实验
三角函数考点导学
“概率”导学
做个怪怪长实验
函数知识快乐导学
关注用户
“阉割课堂”,本不是“学案导学”的错
NO与NO2相互转化实验的改进
实践十号上的19项实验
关注用户