2. WMS出库拣货流程:出库单生成、拣货任务分配、拣货执行与数量确认
WMS(仓储管理系统)的出库拣货流程是供应链数据链路的起点,也是后续与TMS运输单进行数量比对的核心数据源。本章节详细拆解从订单触发到拣货数量确认的四个关键环节,帮助数据质量测试人员精准定位数据偏差的根因。
2.1 流程全景概览
WMS出库拣货流程可归纳为四个连续阶段,每个阶段均涉及数据状态变更与记录生成:
| 阶段 | 核心动作 | 数据产出 | 常见数据质量问题 |
|---|---|---|---|
| ① 出库单生成 | 接收上游订单(ERP/OMS),创建WMS出库单 | 出库单号、SKU、理论数量、波次号 | 订单重复、SKU映射错误、数量精度丢失 |
| ② 拣货任务分配 | 按波次/库区/策略生成拣货任务(波次单/拣货单) | 任务ID、库位、拣货路径、分配数量 | 任务漏分配、库位锁定冲突、分配数量与出库单不一致 |
| ③ 拣货执行 | 操作员按任务指引拣取实物,扫描/确认 | 拣货明细(库位→SKU→数量)、操作时间、操作人 | 错拣、漏拣、多拣、扫描遗漏 |
| ④ 数量确认 | 复核/打包环节最终确认实际出库数量 | 复核单、出库确认记录、差异标记 | 复核数量与拣货数量不一致、未触发差异处理 |
数据质量要点: 比对TMS运输单时,应以WMS“数量确认”阶段的最终复核数量为准,而非拣货执行阶段的中间数量。中间数量可能因拣货错误、临时调整等原因与最终出库量存在偏差。
2.2 出库单生成(阶段①)
出库单是WMS拣货流程的触发凭证。上游ERP/OMS系统下发销售订单或调拨单后,WMS根据库存策略、波次规则生成出库单。
2.2.1 生成触发方式
- 实时接口触发: 上游系统通过API/WebService实时推送订单,WMS即时创建出库单。
- 定时批量拉取: WMS按固定时间间隔(如每5分钟)轮询上游订单表,批量生成出库单。
- 手工导入: 通过Excel或手工录入创建出库单(多见于异常处理场景)。
2.2.2 出库单核心数据字段
| 字段名 | 数据类型 | 说明 | 比对TMS时的关键性 |
|---|---|---|---|
| 出库单号 | VARCHAR(50) | WMS内部唯一标识 | ★ 与TMS运输单号关联 |
| 来源订单号 | VARCHAR(50) | ERP/OMS原始订单号 | ★ 用于跨系统追溯 |
| SKU编码 | VARCHAR(30) | 库存单位编码 | ★ 比对商品维度 |
| 理论出库数量 | DECIMAL(18,3) | 订单要求的数量 | ★ 比对基准值 |
| 波次号 | VARCHAR(30) | 波次分组标识 | 用于任务分配追踪 |
| 创建时间 | DATETIME | 出库单生成时间戳 | 用于时效分析 |
测试提示: 验证出库单生成时,需检查“理论出库数量”是否与上游订单数量一致。常见问题包括:数量精度截断(如3.5变为3)、SKU编码大小写不一致导致匹配失败、订单重复生成(同一订单生成多个出库单号)。
2.3 拣货任务分配(阶段②)
出库单创建后,WMS按波次策略将出库单拆解为具体的拣货任务。任务分配决定了“谁、在什么时间、去哪个库位、拣取多少数量”。
2.3.1 分配策略
- 按波次分配: 将同一波次内的出库单合并生成一张波次拣货单,提高拣货效率。
- 按库区分配: 将同一库区的拣货任务分配给指定区域的操作员。
- 按订单分配: 一张出库单独立生成一个拣货任务(适用于大件/贵重品)。
- 按库存批次分配: 指定FIFO(先进先出)或FEFO(先到期先出)策略,锁定具体库存批次。
2.3.2 任务分配数据模型
-- 拣货任务分配核心表结构示例
CREATE TABLE picking_task (
task_id VARCHAR(50) PRIMARY KEY, -- 任务ID
wave_no VARCHAR(30), -- 波次号
outbound_order_no VARCHAR(50), -- 出库单号
sku_code VARCHAR(30), -- SKU编码
location_code VARCHAR(30), -- 库位编码
allocated_qty DECIMAL(18,3), -- 分配数量
batch_no VARCHAR(30), -- 库存批次号
assign_time DATETIME, -- 分配时间
assign_status TINYINT -- 0=待拣货,1=拣货中,2=已完成
);
数据质量风险: 分配数量(allocated_qty)必须等于出库单的理论出库数量。实际测试中常见问题:分配数量因库存不足被自动截断(如只分配了80%),但系统未生成缺货标记,导致后续TMS运输单数量与WMS分配数量不一致。
2.4 拣货执行(阶段③)
操作员通过RF(无线终端)或PDA接收拣货任务,按系统指引到达指定库位,扫描库位码和SKU条码,确认拣取数量。
2.4.1 拣货执行标准流程
- 任务领取: 操作员在RF上领取拣货任务(波次单或单任务)。
- 库位导航: 系统按最优路径指引操作员前往第一个库位。
- 库位扫描: 扫描库位条码,系统校验是否为任务指定库位。
- SKU扫描: 扫描商品条码,系统校验SKU是否匹配。
- 数量输入: 操作员输入或扫描实际拣取数量(支持整箱/拆零)。
- 确认提交: 系统记录拣货明细,更新任务状态。
- 循环执行: 重复步骤2-6,直至任务内所有库位拣货完成。
2.4.2 拣货执行数据记录
| 数据项 | 记录方式 | 数据质量验证点 |
|---|---|---|
| 拣货明细ID | 系统自动生成 | 唯一性、与任务ID关联完整性 |
| 实际拣货数量 | 操作员输入/扫描 | 是否等于分配数量?差异是否记录? |
| 拣货时间 | 系统时间戳 | 是否在任务分配之后、复核确认之前? |
| 操作员ID | RF登录账号 | 是否可追溯至具体人员? |
| 扫描日志 | RF操作日志 | 是否记录每次扫描的库位/SKU/时间? |
2.5 数量确认(阶段④)
数量确认是WMS出库流程的最终环节,通常由复核员在打包/装车前完成。复核员再次扫描商品条码,确认实际出库数量,系统生成复核记录并更新库存。
2.5.1 数量确认方式
- 逐件扫描确认: 每件商品扫描一次,系统自动累加数量(适用于高值/零散商品)。
- 批量确认: 输入整箱数量或扫描箱码确认(适用于整箱出库)。
- 称重确认: 通过电子秤称重,系统根据单品重量反算数量(适用于按重量计的商品)。
2.5.2 数量确认数据与TMS比对的映射关系
| WMS数据 | TMS运输单数据 | 比对规则 |
|---|---|---|
| 出库单号 | 运输单号(关联字段) | 一对一或一对多映射 |
| 复核确认数量(最终) | 运输单装载数量 | 必须相等(允许误差范围需定义) |
| SKU编码 | 商品编码 | 编码体系一致或映射表正确 |
| 复核时间 | 发运时间 | 复核时间应早于或等于发运时间 |
比对方案核心结论: WMS出库拣货流程中,只有经过“数量确认(阶段④)”的最终复核数量,才具备与TMS运输单进行比对的资格。拣货执行阶段的中间数量仅用于过程监控,不可直接用于跨系统数据比对。数据质量测试人员应重点验证:复核数量 = 拣货执行数量(无差异时)或 复核数量 = 拣货执行数量 ± 差异调整(有差异时)。