2. WMS出库拣货流程:出库单生成、拣货任务分配、拣货执行与数量确认

WMS(仓储管理系统)的出库拣货流程是供应链数据链路的起点,也是后续与TMS运输单进行数量比对的核心数据源。本章节详细拆解从订单触发到拣货数量确认的四个关键环节,帮助数据质量测试人员精准定位数据偏差的根因。

2.1 流程全景概览

WMS出库拣货流程可归纳为四个连续阶段,每个阶段均涉及数据状态变更与记录生成:

阶段 核心动作 数据产出 常见数据质量问题
① 出库单生成 接收上游订单(ERP/OMS),创建WMS出库单 出库单号、SKU、理论数量、波次号 订单重复、SKU映射错误、数量精度丢失
② 拣货任务分配 按波次/库区/策略生成拣货任务(波次单/拣货单) 任务ID、库位、拣货路径、分配数量 任务漏分配、库位锁定冲突、分配数量与出库单不一致
③ 拣货执行 操作员按任务指引拣取实物,扫描/确认 拣货明细(库位→SKU→数量)、操作时间、操作人 错拣、漏拣、多拣、扫描遗漏
④ 数量确认 复核/打包环节最终确认实际出库数量 复核单、出库确认记录、差异标记 复核数量与拣货数量不一致、未触发差异处理
数据质量要点: 比对TMS运输单时,应以WMS“数量确认”阶段的最终复核数量为准,而非拣货执行阶段的中间数量。中间数量可能因拣货错误、临时调整等原因与最终出库量存在偏差。
WMS出库拣货流程总图 WMS出库拣货流程(四阶段) ① 出库单生成 接收订单 → 创建出库单 ② 拣货任务分配 波次/策略 → 生成任务 ③ 拣货执行 扫描库位 → 拣取实物 ④ 数量确认 复核 → 最终确认 数据质量关注点 每个阶段的数据状态变更均需记录日志,确保出库单号、SKU、数量、时间戳可追溯 关键数据字段流转 出库单号 → 任务ID → 拣货明细ID → 复核单号(与TMS运输单号关联)

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 拣货执行标准流程

  1. 任务领取: 操作员在RF上领取拣货任务(波次单或单任务)。
  2. 库位导航: 系统按最优路径指引操作员前往第一个库位。
  3. 库位扫描: 扫描库位条码,系统校验是否为任务指定库位。
  4. SKU扫描: 扫描商品条码,系统校验SKU是否匹配。
  5. 数量输入: 操作员输入或扫描实际拣取数量(支持整箱/拆零)。
  6. 确认提交: 系统记录拣货明细,更新任务状态。
  7. 循环执行: 重复步骤2-6,直至任务内所有库位拣货完成。

2.4.2 拣货执行数据记录

数据项 记录方式 数据质量验证点
拣货明细ID 系统自动生成 唯一性、与任务ID关联完整性
实际拣货数量 操作员输入/扫描 是否等于分配数量?差异是否记录?
拣货时间 系统时间戳 是否在任务分配之后、复核确认之前?
操作员ID RF登录账号 是否可追溯至具体人员?
扫描日志 RF操作日志 是否记录每次扫描的库位/SKU/时间?
拣货执行与数量确认数据流 拣货执行数据流与数量确认点 拣货执行 RF扫描库位/SKU 输入实际拣货数量 生成拣货明细 数量比对点 拣货数量 vs 分配数量 差异记录 → 差异标记 触发补拣/异常处理 数量确认(复核) 复核员二次扫描 确认最终出库数量 生成复核单 数据质量关键控制点 拣货执行阶段的“实际拣货数量”为中间数据,复核确认后的“最终出库数量”才是与TMS比对的基准 TMS 运输单 比对

2.5 数量确认(阶段④)

数量确认是WMS出库流程的最终环节,通常由复核员在打包/装车前完成。复核员再次扫描商品条码,确认实际出库数量,系统生成复核记录并更新库存。

2.5.1 数量确认方式

  • 逐件扫描确认: 每件商品扫描一次,系统自动累加数量(适用于高值/零散商品)。
  • 批量确认: 输入整箱数量或扫描箱码确认(适用于整箱出库)。
  • 称重确认: 通过电子秤称重,系统根据单品重量反算数量(适用于按重量计的商品)。

2.5.2 数量确认数据与TMS比对的映射关系

WMS数据 TMS运输单数据 比对规则
出库单号 运输单号(关联字段) 一对一或一对多映射
复核确认数量(最终) 运输单装载数量 必须相等(允许误差范围需定义)
SKU编码 商品编码 编码体系一致或映射表正确
复核时间 发运时间 复核时间应早于或等于发运时间
比对方案核心结论: WMS出库拣货流程中,只有经过“数量确认(阶段④)”的最终复核数量,才具备与TMS运输单进行比对的资格。拣货执行阶段的中间数量仅用于过程监控,不可直接用于跨系统数据比对。数据质量测试人员应重点验证:复核数量 = 拣货执行数量(无差异时)或 复核数量 = 拣货执行数量 ± 差异调整(有差异时)。