基于条码扫描技术的配送签收系统设计与实现

2019-04-10 08:41袁星才冯文文JIAOJianYUANXingcaiFENGWenwen
物流科技 2019年3期
关键词:服务端条码出库

矫 健,袁星才,冯文文 JIAO Jian,YUAN Xingcai,FENG Wenwen

(1.中车青岛四方机车车辆股份有限公司 物流中心,山东 青岛 266111;2.中车青岛四方机车车辆股份有限公司 技术工程部,山东 青岛 266111)

0 引言

在物流活动当中,物料作为物流活动参与的主要因素,是传递过程的重要环节。物料的提供方与接收方一般要对物料进行交接确认,确认通常采用的方式是在送货单、交接单之类的文件上进行签字,随着信息技术的发展和应用,在大型企业、快递公司等单位,已经越来越多采用信息化手段进行物料签收,以提高物流活动的效率,减少纸张资源的使用,契合“低碳”的环保理念。

本文介绍了通过Java开发语言,企业SAP系统,Android智能手机等常见信息化资源和手段,构建具有企业特色、低成本的条码扫描签收系统设计思路和实现方法。

1 开发工具的选用

在生产环境中应当选用较为普及,具有较强的稳定性和可维护性的开发工具,同时应当兼顾学习和使用成本。本系统使用以下开发工具进行开发:

1.1 开发语言简介

Java是一种跨平台,适合于分布式计算环境的面向对象的编程语言,具有简单、可靠、安全、平台无关、可移植等特点。Java被广泛应用于网站后台以及Android手机软件的开发,全球有30亿部移动电话运行Java。本系统服务器端程序开发环境采用NetBeans,Android程序开发环境采用Android Studio。

1.2 ERP系统简介

在众多的企业ERP系统中,SAP是使用最广泛的系统之一,具有系统功能全面、稳定性好的优点,在国内中石化、中石油等大型企业集团均有应用。本系统中主要使用了SAP出库单查询和RFC功能。

1.3 数据库选用

数据库(Database)是按照数据结构来组织、存储和管理数据的仓库。目前应用较为广泛的主要是关系型数据库,数据库软件有Oracle、SQL Server、MySQL、PostgreSQL等,从系统存储的数据量及免费使用的角度出发,选用PostgreSQL 10。

1.4 程序运行载体

Android智能手机作为目前保有量最大的手持终端,作为应用程序载体具有良好的用户使用基础和较好的操作便利性。为便于扫描条码和二维码,Android手机应具备500W像素及以上后置摄像头,Android系统版本应高于4.4.4。

2 签收系统设计

2.1 分析配送实物流与信息流

企业物流管理活动中,在库物料一般首先由生产部门或者销售部门在ERP系统中提出需求,仓储部门根据需求计划进行物料的拣配,完成物料拣配后制作并打印出库单,随后物料与纸质出库单进入配送环节,物料接收单位确认物料无误后在出库单签字确认,由配送人员将出库单返回仓储部门存档备查。

配送过程的信息流产生于图1中方框所示环节,出库单是配送信息流源头,贯穿物料配送与签收各环节,直至签收数据存档后结束。

2.2 扫描签收系统流程设计

从获取SAP出库数据到完成现场签收,扫描签收系统工作流程主要分为两大部分,第一部分是定时与SAP系统进行数据同步,获取出库单。第二部分是在实际应用中,根据需要查询已获取出库单数据,并执行签收。

2.2.1 从SAP系统获取出库单数据

仓库人员在SAP系统制作出库单后,签收系统应在一定时间内获取该出库单并将出库数据存入签收系统数据库,以备签收使用。考虑到SAP系统负载以及物料实物包装、运输等环节耗时,一般设置为10~20分钟获取一次。

图2

图3

2.2.2 物料配送扫描签收

5.有效使用职业防护装备:从调查结果可以看出,黏膜暴露是除锐器伤之外的主要职业暴露类型,而黏膜暴露中,手术医生为高危人群。使用职业防护装备可以有效预防黏膜暴露。在物品准备中需强调职业防护装备的配置,列入标准配备物资清单。值得注意的是,手术医生反映戴护目镜会给个体带来不适,这是未落实护目镜使用的主要因素,在工作中防护措施可以有针对性地进行改进,如使用面罩,平光眼镜等,旨在提高医生使用防护用具的依从性,从而有效使用职业防护装备。

步骤1:用户认证,签收者为认证用户是签收凭据有效的前提,用户数据库应保存授权签收者的员工号、姓名、工作单位、密码等关键信息。

步骤2:获取出库单,获取出库单应提供按出库单号精确查询出库单或通过项目、物料、日期等信息进行出库单范围查询两种方式。按出库单号查询可通过输入送货单号或者扫描送货单号条码实现。

步骤3:核对物料与出库单信息,签收者核对物料实物名称、规格、数量、项目等信息与系统出库单是否相符,如果相符则确认收货,如不相符联系仓库人员处理。在核对方式上,可通过扫描物料上的二维码信息通过手持设备自动比对,签收者只清点数量即可。

3 扫描签收系统程序设计与实现

3.1 数据库设计

本系统使用两个数据表用于存储签收系统使用的数据。分别为用系统用户表(表1) 与物料出库数据表(表2)。

3.2 服务端程序设计与实现

3.2.1 创建后台定时任务

签收系统的核心功能主要是网络通信,因此采用Servlet作为服务端程序,运行在Tomcat(Win64)服务器下。签收系统后台需要定时从SAP获取出库单数据,Servlet的定时运行需要使用到Servlet的监听器与定时器,监听器在服务器启动后自动运行,定时器可定时执行任务。主要代码如下:

表1 系统用户表结构

表2 物料出库记录表结构

其中获取SAP出库单数据的程序代码放入SAPDataTask类中。

3.2.2 配置RFC运行环境

SAP系统为方便用户使用SAP数据进行二次开发,提供了RFC接口协议,RFC是SAP系统与外部通信的基本协议。在Java程序中使用RFC通信协议有两点前提条件,一是SAP端配置了相应RFC函数和相应的权限,二是需要在程序中引入进程间通讯组件SAP Java Connector(Jco)。JCo可从SAP官方获取,将jar文件引入项目库,将dll文件复制到系统system32文件夹。JCo详细使用方法参见官方API,其中连接SAP服务端主要代码如下:

如果连接测试未抛出异常,表示程序与服务端连接成功,可以进行出库单查询操作。

3.2.3 导入SAP出库单数据

程序成功与服务端连接后,即可调用SAP端RFC函数进行出库单查询,本系统使用的RFC函数名称为Query_Receipt_RFC,该函数接收6个参数,并将查询结果以表格形式返回,逐行逐列对表格进行遍历即可取出查询结果,并通过数据库操作存入到物料出库记录表。主要代码如下:

出库单的导入频率及相应的查询参数应当根据业务实际情况及服务器负载情况设置,避免频繁查询影响服务器运行。

3.2.4 响应手持端请求

获取出库单数据后就即可为手持端提供服务,服务端与手持端数据结构传递使用JSON格式。服务端主要响应两个请求,一是用户认证请求,二是出库单查询与签收请求。这两个请求主要进行的数据库读写以及比对操作,代码略。

3.3 手持端程序设计与实现

3.3.1 配置条码扫描组件

Zxing-android-embedded是基于Google公司的Zxing项目并进行了二次封装的开源安卓系统条码应用类库。将Zxing-android-embedded项目整体导入后,根据Android Studio提示解决依赖问题并尝试进行编译,编译通过表示导入成功。

3.3.2 查询送货单数据及签收

手持终端查询送货单时,可通过精确查询和范围查询两种方式取得送货单数据。精确查询时,可使用摄像头扫描随物料外包装的送货单条码,或者手动输入送货单号,直接查询到该单据送货单明细。也可以通过扫描物料粘贴的二维码信息,同时指定出库日期范围,查询到相关出库单列表,由接收人员最终确定具体出库单。

3.3.3 送货单明细及信息核对

确定具体的出库单后,即可将出库单明细显示到手持终端上,接收人员可以对照显示结果清点物料实物,如果清点结果符合,接收人员点击“确认签收”,完成出库单签收后整个流程结束。如果清点结果不符,接收人员可拒绝签收该出库单,并由仓库人员进行处理。

4 总 结

通过使用扫描签收系统,可以缩短签收时间,在能够实现数据长期保存的基础上,节省存储纸质档案所用空间。在后续查询签收记录时,相比翻阅纸质档案,查询效率大幅提高。另外,纸张节省不仅能够节约企业成本,还能有效减少碳排放量,符合“绿色发展的新理念”,本系统具有较强的实用性,值得企业推广应用。

猜你喜欢
服务端条码出库
中国条码技术与应用协会
条码微站
热线互动
云存储中基于相似性的客户-服务端双端数据去重方法
卷烟配货出库流程的优化与应用
散粮出库 加快腾仓
在Windows Server 2008上创建应用
“出库费” 应由谁来付
基于PLC的物流自动化包装线出库穿梭车的设计
基于固定条码与电子标签比对设备的设计