重要约定
WMS管理立体库货位库存,WCS仅记录托盘、货位及对应的SKU、批号、有效期,用于入库配位。
WMS任务下发时,可以看作无规则的单个任务。
入库流程:
入库时,WMS发送托盘号、SKU、批号、有效期,WCS按下面逻辑分配货位并反馈给WMS系统:
WCS需要优先找同品同批所在的通道;
WCS需要优先找同品所在的通道。并且有效期最长的放在里面,有效期短的放在最外面(利弊:会造成入库缓慢,但可以大幅提高出库效率)。
如果入库过程中,涉及其他托盘位置的调整,也需要反馈调整后的信息。
出库流程:
WMS根据出库业务规则分配出库的托盘和货位,WCS可以根据库内的情况,优化出库的货位。
WMS发送指定的托盘、货位给WCS通知出库,过程中涉及其他的托盘变动由WCS负责处理,出库完成时,如果实际的出库货位与WMS下发的货位不同,WCS反馈具体的出库货位给WMS。
出库过程中,涉及其他托盘位置的调整,也需要反馈调整后的信息。
出库完成回库后,WCS返回回库信息。可以视为入库流程。
WMS发送紧急任务,使用优先级字段。当优先级大于指定的值时,使用优先级规则,否则使用WCS的最优路径。
1.WMS与WCS交互流程
<1> 普通入库|出库回库
流程说明:
WMS下发入库任务信息(任务ID,托盘号、SKU、批号、件数等信息)至WCS(INTER_PALNO_TASK_W2C);
入库完成后,WCS回传 WMS入库完成信息(任务ID,托盘号、入库位置、任务完成状态等信息)至WMS(INTER_PALNO_TASK_C2W);
<2> 普通出库/在线拣选
流程说明:
WMS下发出库任务(任务ID、托盘号、SKU、批号、件数等信息)至WCS(INTER_PALNO_TASK_W2C);
堆垛机空闲时,WCS驱动堆垛机进行拣选/盘点出库;
托盘到达出口,WCS上传出库完成信息(任务ID、托盘号、完成状态等信息)至WMS(INTER_PALNO_TASK_C2W);
WMS拣选\盘点完成后,WMS下发回库任务信息(任务ID,托盘号、等信息)至WCS(INTER_PALNO_TASK_W2C);
密集库入库完成后,WCS回传 WMS入库完成信息(任务ID,托盘号、任务完成状态等信息)至WMS(INTER_PALNO_TASK_C2W)。
<3> 在线拣选整箱任务(补货/分拣)
流程说明:
在线拣选整箱的补货与分拣任务是依靠WMS所贴标签(标签后3位为目的弹出口,B01:为补货01口,F01:为分拣机01出口)获取任务。
补货时出现“NoRead”,将包裹就近向左弹出,分拣时出现“NoRead”将包裹分配至异常出口。
路径日志传到WMS中的表
<4> 更改任务优先级
流程说明:
WMS发送更改任务优先级信息给WCS
WCS接收到信息检查是否可更改,如果可更改响应FLAG为“T”,如果不可更改响应FLAG为“F”,如果托盘仍在站台响应“FF”,WMS定时重发这条任务直至完成,如果回库任务重复响应“FE”,WMS直接删除该任务。
2.WMS与WCS接口技术规范
接口方式
接口通信技术 | Web Service |
服务端 | WCS/WMS |
客户端 | WMS/WCS |
WMS和WCS的接口通过WebService方式实现,互相提供WebService地址,通过访问地址,调用相关函数实现数据交互。
接口定义
序号 | 接口名 | 接口描述 | 服务提供方 |
---|---|---|---|
1 | INTER_PALNO_TASK_W2C | WMS下发托盘出入库等信息 | WCS |
2 | INTER_PALNO_TASK_C2W | WCS回传托盘出入库等结果信息 | WMS |
3 | INTER_ASRS_FINISH_W2C | WMS下发密集库在线拣选完成信息 | WCS |
4 | INTER_PACK_LOG_C2W | WCS回传密集库系统路径日志 | WMS |
5 | INTER_STORE_QTY_C2W | WCS回传密集库系统实际库存数量 | WMS |
6 | INTER_CHANGE_PRIO_W2C | WMS下发更改任务优先级 | WCS |
3.WMS与WCS接口数据结构定义
<1> WMS任务下发:INTER_PALNO_TASK_W2C
字段名称 | 字段描述 | 字段类型 | 备注 |
---|---|---|---|
ID | 序号 | Bigint | 自增长字段 |
Pickno | 波次号 | Varchar(30) | 入库时为空 |
Taskid | 任务号 | Varchar(30) | |
Palno | 托盘号 | Varchar(30) | 密集式存储出库时不用传 |
Optype | 任务类型 | Varchar(10) | IA:普通入库IB:拣选回库/移库出回库ID:养护回库/盘点回库业务OA:整托出库 (目的货位放到整托)OB:拣选出库/移库出(目的货位分到箱拣站台)OD:养护出库/盘点出库 |
Priority | 优先级 | Int | 数字越大优先级越高 |
Senddat | 发送时间 | Datetime | WMS插入时间 |
Wavedtlid | 波次分配ID | Varchar(30) | 波次分配ID(入库为空) |
Customerid | 客户ID | Varchar(20) | 不为空(入库为空) |
Routeid | 线路ID | Varchar(20) | 不为空(入库为空) |
Skuno | SKU编号 | Varchar(30) | 货品主档ID |
Batch | 批号 | Varchar(50) | |
Valdate | 有效期 | Varchar(20) | 20200811 |
Quant | 件数 | Int |
示例:
JSON串格式如下
{ “MSGTYPE”:” INTER_PALNO_TASK_W2C”, “COUNT”:”2”, “ROWS”:[
{“ID”:”100001”,
“Taskid”:”T100001”,
“Order_code”:”PALNO10001”,
“Optype”:”BO”,
“Pickno”:” Pickno0001”,
“Skuno”:”LA010101”,
“Mname”:”0”,
“Specificatios”:”A”,
“Batch”:”111111”,
“Makedate”:”2016-11-20 20:23:51”,
“Valdate”:”2016-11-20 20:23:51”,
“Quant”:”10”,
“Prio”:”0”,
“Ifrec”:”Y”,
“Errorcode”:”0”,
“Senddat”:”2016-11-20 20:23:51”,
},
{“ID”:”100002”,
“Taskid”:”T100002”,
“Order_code”:”PALNO10001”,
“Optype”:”BO”,
“Pickno”:” Pickno0001”,
“Skuno”:”LA010101”,
“Mname”:”0”,
“Specificatios”:”A”,
“Batch”:”111111”,
“Makedate”:”2016-11-20 20:23:51”,
“Valdate”:”2016-11-20 20:23:51”,
“Quant”:”10”,
“Prio”:”0”,”
“Ifrec”:”Y”,
“Errorcode”:”0”,
“Senddat”:”2016-11-20 20:23:51”,
}
]}
JSON下发接收后返回消息结果
{
“MSGTYPE”: “INTER_PALNO_TASK_W2C”,
“COUNT”: 2,
“ROWS”: [
{
“ID”: “100001”,
“FLAG”: “T”
},
{
“ID”: “100002”,
“FLAG”: “F”
}
]
}
备注:若返回值为“T”,代表数据正常写入,无需再次发送;若返回值为“F”,则调用方需要将数据重传。
<2> 密集库任务完成确认:INTER_PALNO_TASK_C2W
字段名称 | 字段描述 | 字段类型 | 备注 |
---|---|---|---|
ID | 序号 | Bigint | 自增长字段 |
Pickno | 波次号 | Varchar(30) | 入库时为空 |
Taskid | 任务号 | Varchar(30) | |
Palno | 托盘号 | Varchar(30) | |
DestStation | 目的站台 | Varchar(30) | |
Optype | 任务类型 | Varchar(10) | IA:普通入库IB:拣选回库/移库出回库ID:养护回库/盘点回库业务OA:整托出库 (目的货位放到整托)OB:拣选出库/移库出(目的货位分到箱拣站台)OD:养护出库/盘点出库 |
Statuscode | 任务完成状态 | Varchar(10) | 0:任务正常完成1:任务异常、提供其他状态及含义 |
ErrorReason | 异常原因 | Varchar(500) | |
Senddat | 发送时间 | Datetime | WCS插入时间 |
Wavedtlid | 波次分配ID | Varchar(30) | 波次分配ID(入库为空),波次的细单 |
customerid | 客户ID | Varchar(20) | 不为空(入库为空) |
Routeid | 线路ID | Varchar(20) | 不为空(入库为空) |
Skuno | SKU编号 | Varchar(30) | 货品主档ID |
Batch | 批号 | Varchar(50) | |
Quant | 件数 | Int | |
Wcsposno | WCS货位 | Varchar(50) | 密集库货位, |
Detaddre | 目的货位 | Varchar(30) | 出库站台 |
<3> WMS在线拣选完成信息: INTER_ASRS_FINISH_W2C
字段名称 | 字段描述 | 字段类型 | 备注 |
---|---|---|---|
ID | 序号 | Bigint | 自增长字段 |
Pickno | 波次号 | Varchar(30) | |
Palno | 托盘号 | Varchar(30) | |
Optype | 任务类型 | Varchar(30) | 默认:OPFN |
Senddat | 发送时间 | Datetime | WMS插入时间 |
<4> WCS回传密集库系统路径日志INTER_ PACK_LOG_C2W
字段名称 | 字段描述 | 字段类型 | 备注 |
---|---|---|---|
ID | 序号 | Bigint | 自增长字段 |
Type | 扫码器类型 | int | 1:图像、2:五方 |
BarCode | 条码、标签 | Varchar(30) | 标签里面某位标识是否扫描药监码 |
Station | 当前站台 | Varchar(30) | |
ToStation | 到达站台 | Varchar(30) | |
DrugCode | 药监码 | Varchar(30) | |
Length | 长 | Decimal(16,6) | |
Width | 宽 | Decimal(16,6) | |
Height | 高 | Decimal(16,6) | |
Weight | 重量 | Decimal(16,6) | |
Senddat | 发送时间 | Datetime | WCS插入时间 |
<5> WCS提供密集库系统实际库存数量INTER_STORE_QTY_C2W
字段名称 | 字段描述 | 字段类型 | 备注 |
---|---|---|---|
ID | 序号 | Bigint | 自增长字段 |
Skuno | SKU编号 | Varchar(30) | |
Batch | 批号 | Varchar(50) | |
Valdate | 有效期 | Varchar(20) | |
Wcsposno | WCS货位 | Varchar(50) | 密集库货位, |
Senddat | 发送时间 | Datetime | WCS插入时间 |
Palno | 托盘号 | Varchar(30) |
<6> WCS提供任务优先级更改INTER_CHANGE_PRIO_W2C
字段名称 | 字段描述 | 字段类型 | 备注 |
---|---|---|---|
ID | 序号 | Bigint | 自增长字段 |
Taskid | 任务号 | Varchar(30) | WCS任务ID |
Senddat | 发送时间 | Datetime | WCS插入时间 |
Palno | 托盘号 | Varchar(30) | |
Priority | 优先级 | Int | 数字越大优先级越高 |
OPTYPE_IA("整托盘入库", "IA"),
OPTYPE_IB("拣选回库", "IB"),
OPTYPE_IC("空托盘回库自动码垛", "IC"),
OPTYPE_ID("空托盘垛入库任务(WMS下发)", "ID"),
OPTYPE_IE("空托盘垛入库请求(WCS发起)", "IE"),
OPTYPE_IF("养护回库/盘点回库", "IF"),
OPTYPE_IG("一楼整托盘入库请求任务", "IG"),
OPTYPE_IR("双重改址", "IR"),
OPTYPE_OA("整盘出库", "OA"),
OPTYPE_OB("拣选出库", "OB"),
OPTYPE_OF("养护出库/盘点出库", "OF"),