基于ABP框架SaaS模式入库管理系统的设计与实现
2019-01-18支影亚
刘 杰, 支影亚
(沈阳师范大学 科信软件学院, 沈阳 110034)
0 引 言
在电子商务蓬勃发展的背景下,物流行业得到飞速的发展,因此也致使仓储管理这个行业得到快速的发展[1-3]。所以对于仓储管理系统的研究和实现也是具有巨大意义的。观察传统软件的模式,经历初期开发、具体实施以及运营维护等阶段。在这些阶段中,企业用户需要有以下方面的投入:
1) 初期开发的费用:开发软件所需用的费用,可能还需要添置相关硬件设施。
2) 意外情况的费用:如果项目实施过程中失败,需要承担这些风险,而且有可能在开发接近尾声的时候项目需求发生了重大变化,需要重新开发。
3) 后期维护费用:需要有专业人员专门维护项目。
而“软件即服务”模式即SaaS(Software as a Service)[4-8],则可以在上面所述的很多方面上有很大的改善,主要体现在:
1) SaaS软件是根据企业用户实际的需要来提供服务的。所以企业可以灵活的根据不同时期的实际需求来调整对于软件的费用投入。
2) 用户使用特别便捷,因为SaaS模式的软件是基于互联网的服务,用户租用时仅仅需要有普通PC和网络即可,所以也节约了用户对于硬件设备的费用投入。
3) 由于SaaS模式的软件是基于互联网的服务,所以软件的主要的运行的环境都是由服务商进行维护和跟踪的,在此基础上也降低了企业在这方面的人员投入。
在当今的背景之下,SaaS是软件发展的方向,如何将SaaS模式很好的应用到物流的仓库管理系统(WMS)中具有很大的研究意义[9-11]。”
1 项目概述
1.1 系统总体概述
仓库管理系统(Warehouse Management System,WMS)包括:业务决策、业务管理、业务操作和系统辅助四大类12个子系统。
图1 仓库管理系统WMS的系统结构图Fig.1 System structure diagram of warehouse management system WMS
1) 业务决策类,包括: 费用管理、绩效管理、计划管理;
2) 业务管理类,包括: 资料管理、策略管理、配置管理;
3) 业务操作类,包括: 入库管理、出库管理、库存管理;
4) 系统辅助类,包括: 报表中心、系统设置、租户运维。
1.2 业务分析
业务分析-入库流程
1) 到货通知: 仓储管理系统根据数据新增到货通知单(根据实际情况导入或者新增明细表),之后生成对应的收货任务(生成入库单);
2) 收货作业: 根据到货通知生成的入库单,进行收货操作,如果整单收货,需要在整单收货之前先打印入库单;
3) 上架操作: 执行收货操作之后的对应单号,会显示在上架作业页面,在此页面执行上架操作。
入库流程如图2所示。
图2业务流程
Fig.2 Operation flow
1.3 系统分析
首先实现支持系统运行的前提功能包括:设置中心(包括系统设置,系统参数,系统日志以及审计日志),报表中心(包括查询中心,统计报表以及日志报表),数据中心(包括资料管理,策略管理,配置管理,费用管理,绩效管理以及计划管理),其次实现入库管理模块的:到货通知,收货操作,上架操作对应的仓储管理功能。功能模块所包含的基本内容如图3所示。
图3 入库管理模块功能Fig.3 Warehousing management module function
1) 到货通知: 到货通知单主要是指在货物未到达仓库之前生成的到货通知单,表明货物即将到达仓库,实现到货通知功能模块“新增,生成收货任务,撤销,导出,导入到货通知,下载导入模板,查询,重置”等子功能。
2) 收货操作: 入库单功能主要是辅助仓库进行入库收货的。用户可以对入库单进行新增和修改操作,收货员根据入库单进行收货操作,根据对应入库单号实现收货作业功能模块“作业信息维护,关闭入库单,返回,打印记录,打印入库单,整单预收” 等子功能。
3)上架操作: 将产品收到指定的上架库位完成上架操作。
2 系统的实现
2.1 技术介绍
2.1.1 基于.NET的ABP框架(ASP.NET Boilerplate Project)
本项目采用ABP框架来进行开发。ABP遵循DDD(领域驱动设计)的原则[12-13],将工程分为4个层:
1) 展现层(Presentation): 提供一个用户界面,实现用户交互操作。
2) 应用层(Application): 进行展现层与领域层之间的协调,它不包含业务逻辑。
3) 领域层(Domain): 包括业务对象和业务规则,这是应用程序的核心层。仓储接口和工作单元接口全部放在领域层。
4) 基础设施层(Infrastructure): 提供通用技术来支持更高的层。例如基础设施层的仓储(Repository)可通过ORM来实现数据库交互。
采用ABP框架来进行开发的的优点:
ABP遵循的DDD(领域驱动设计)原则,把软件开发视为一个过程,根据此原则对软件开发和维护进行过程监控和研究,领域模型可以维护领域内数据之间的业务规则以及数据的一致性,可以使其更加科学化、标准化、使企业能够更好地实现商业目标。
图4 ABP框架分层Fig.4 ABP framework layering
2.1.2 Web层使用ASP.NET MVC来实现页面应用程序
MVC是Model-View-Controller的简称,即模型-视图-控制器[14-15]。
1) Model(模型): 其主要功能是对用户提交的数据进行加工、对业务流程的处理、制定服务于业务逻辑的规则和实现制定的业务逻辑流程或逻辑规则。
2) View(视图): 用于展示用户交互界面(UI)。
3) Controller(控制器): 控制用户的和系统之间的交互。
图5 WEB应用中的MVC框架图Fig.5 MVC framework diagram in WEB application
2.2 技术路线
本项目采用理论、设计、和实现相结合的研究方法,技术路线如下:
图6 入库单数据模型Fig.6 Warehousing data model
图7 入库单明细数据模型Fig.7 Warehousing detailed data model
1) 采用ABP框架进行开发。ABP遵循DDD(领域驱动设计)的原则。
2) 应用程序服务层的开发采用基于ASP.NET MVC框架的解决方案。
3) 数据层采用Entity Framework for Data Source的数据访问模式,对数据进行增删改查。
在项目开始阶段,先构建了相关业务设计,并进行建模,通过EF将数据库实体映射到平台数据层中,再分别建立不通的model用于服务各个业务场景规则,通过接口的形式与仓储管理平台MVC框架中的控制器相关联,并指定视图进行输出,实现其功能。
3 系统测试
3.1 测试方法
使用TestManager来创建一个测试计划,基于黑盒测试原理,对仓储管理系统进行功能测试,并且使用TestManager对用例进行管理以及验证用例的可行性。
3.2 测试过程
1) 首先搭建好测试环境,将源码发布包部署到服务器上,在本地安装TestManager并创建每个部分各个功能对应的测试用例,配置好之后开始测试基本功能。
2) 创建测试用例文件夹来分层次地组织测试用例,分别对入库管理模块的到货通知,收货操作以及上架操作的每一个基础功能进行编写测试用例。
3.3 测试结果
设置中心:系统设置,系统参数,系统日志以及审计日志;报表中心:包括查询中心,统计报表以及日志报表;数据中心:包括资料管理,策略管理,配置管理,费用管理,绩效管理以及计划管理基本功能均测试通过。
入库管理模块:到货通知,收货操作,上架操作对应的仓储管理功能均测试通过。
4 结 语
本文主要从理论到实践上对基于ABP框架SaaS模式入库管理云仓储系统进行了设计与实现,入库管理模块主要实现了3大功能:到货通知,收货作业和上架作业,且验证了3个功能模块的可行性。