barcode编码规则

WMS3.0中如何实现编码管理 R2E-WMS3.0可以帮助您管理系统中各类对象(如货物、库位等)的编码,从而实现全面的编码管理。编码管理的内容包括三个方面:制定编码规则、根据规则生成编码和校验编码。

编码规则的分类和用途

在系统中可以针对某类对象设置两类编码规则 —— 校验规则和生成规则:

编码校验规则 :用来描述某类对象的编码应该遵循的原则,系统据此来对对象的编码进行格式验证,以防止非法数据的输入。例如,采集货物条码时根据规则检查条码是否合法。

编码生成规则:如果您希望系统能为对象按照一定的规则自动编号,例如新建凭证(单据)时自动产生单据号,或者根据入库单为将入库的货物自动产生货物编号(条码号)等,那么您可以通过定义生成规则来实现。也就是说,编码生成规则是用来指导系统为对象自动编码的规则。

编码校验原理

校验规则的组成结构

一个编码校验规则主要包括以下属性:

所属对象类型:指定该规则是属于哪类对象的。我们可以为系统所管理的各类对象设定编码规则,这些对象包括:货物类别、货物品种、货物单元、货物批次、库房、库位、各种业务凭证(单据)、来往单位、部门、职员等。

名称:标识该规则的名字。为每个编码规则取一个能够反映其用途及特点的名字将有助于对规则的管理。

编码格式串:形象化地描述编码的组成部分及顺序的一个字符串,形式如“日期(YYMMDD) + 数字串(2位)”,具体说明见本节后续部分。

正则表达式:是一个科学、严谨地定义规则的公式,形式如“\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d\d” ,具体说明见本节后续部分。正则表达式是系统进行编码校验

所真正依据的标准。

编码格式串

编码格式串是一种描述编码规则的形象化的方法。

假设我们想要为货物批号定义一种规则如“编码长度8位,前6位是一个YYMMDD格式的日期(例如090821表示2009年8月21日),后2位是一个数字编号(01-

99)”。对这样一个规则,在WMS3.0中可用如下所示的编码格式串来描述:

日期(YYMMDD)+ 数字串(2)

编码格式串描述了编码的各个组成部分(单元)以及它们的先后顺序。其中,各单元可以是一个“编码元素”,也可以引用已经定义的其它的编码。上例中定义的批号规则就是由“日期”和“数字串”两个编码元素组成的。下面的例子中,我们用货号(货物品种编码)、批号两个编码和一个5位的数字串元素组成了一个新的格式串,用来描述需要按批次和单件管理的货物的编码(条码)格式:

货号 + 批号 + 数字串(5)

尽管组成格式串的各单元可以是一个编码元素,也可以是其它编码,但归根到底,编码元素是格式串最基本的组成单位。WMS3.0支持的可用于定义校验规则的编码元素有“日期”、“常量”、“数字串”、“字母串”、“任意字符串”等几类,各类元素还有具体的属性区分,如“日期”分不同格式,“数字串”有长度设定等。

正则表达式

正则表达式是校验规则的核心定义。

正则表达式(Regular Expression)作为一项技术,它已被广泛应用于计算机文字搜索和处理,例如大家常用的互联网搜索引擎就使用了这项技术。WMS3.0正是使用了这项技术来对输入的编码字符串进行格式验证。

一个正则表达式就是描述文本规则的一个公式,例如表达式“\d\d”定义了一个由两个数字组成的字符串规则,数字串“01”-“99”符合这个规则。

应用正则表达式除了需要按照特定语法编写(或生成)规则表达式外,还要有相应的计算机算法程序来将需要校验的字符串与规则表达式进行比对验证。WMS3.0可以根据编码格式串自动生成正则表达式,并且在主程序及配套的数据终端程序中都实现了格式校验算

法。

设置校验规则

在WMS3.0中设置校验规则通常是一项非常简单的工作,您只需要通过选择编码元素或其它编码来构造一个编码格式串,系统会将这个格式串自动地转换成相应的正则表达式从而生成所需的规则。

日期(YYMMDD)+ 数字串(2)

\d\d(0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])\d\d

一般情况下,使用上述方法就能够构造出所需的规则。但是,也有可能您设计的规则非常复杂,无法用编码格式串来描述,这时就需要通过直接编写正则表达式来定义规则,这方面的工作通常需要由专业的系统实施人员来完成。

校验编码

一旦为某类对象设定了校验规则,系统就会自动地在相应的数据录入和采集过程中对该类对象的编码进行格式校验,从而防止非法数据的输入。

在WMS3.0中,可以为某类对象设定一个或多个校验规则,当然也可以不设规则,在这些情况下系统的校验原则如下:

如果为某类对象只设定了一个校验规则,则该类对象的编码必须符合这个规则;

可以为某类对象设定多个编码校验规则,在这种情况下输入的编码只要符合其中任意一个规则即可通过校验;

如果没有为某类对象设置编码校验规则,则系统不对该类对象校验所输入编码的合法性(即可以是任意值)。

编码生成规则原理

生成规则的组成结构

与校验规则一样,生成规则也有所属对象类型、名称、编码格式串等属性。但不同的是,生成规则没有正则表达式属性,生成规则的核心定义就是编码格式串。

生成规则的编码格式串与校验规则的编码格式串结构相同,但其中的各组成单元(编码元素或其它编码)有些差别。在校验规则中,各组成单元只是指定一种格式,而在生成规则中的各组成单元应该能导出具体的值。举个例子,在前面介绍校验规则时我们提到过一个编码元素“日期(YYMMDD)”,而在定义生成规则时对应的元素则是“当前日期(YYMMDD)”。

设置生成规则及生成编码

了解生成规则的组成结构后,设置规则和生成编码的过程也就清楚了 —— 通过选择编码元素或其它编码来构造一个编码格式串;系统在需要时按照编码格式串中各组成单元的定义生成单元值,再将它们按顺序组合起来形成编码值。

在生成规则的设置和使用方面,有一些相关的概念或原则介绍如下:

编码生成有一个时机(或条件)的概念。例如,新建单据时产生单据号,入库时(根据入库单)生成货物编号等。

生成规则相对比较简单,不像校验规则可以通过直接编写正则表达式来实现非常复杂的校验逻辑。WMS3.0目前支持的用于构建生成规则的编码元素还只有日期、常量、流水号等几种。

由生成规则可以导出校验规则,并且在WMS3.0中为某类对象设置了一个生成规则后,系统同时会自动添加一个与该规则对应的校验规则。

系统中一般的对象类型只能设置一个生成规则,只有与货物相关的货号(品种编码)、批号和货物编号(通常就是货物条码号)可以设置多个生成规则,这些规则可以绑定到不同的货物类别以实现不同的编码要求(比如企业的原材料和成品采用不同的编码方案)。


© 2024 实用范文网 | 联系我们: webmaster# 6400.net.cn