Sync Log
这个菜单做什么
WMS Sync Hub 每次跟 WMS 通信 —— 推 picking note、同步 item、收到状态更新、PO 转 ASN —— 都会在这里写一行日志。
v1.6.3 起:每条记录还会保存完整的 request + response JSON,让你能精确看到 WMS 返回了什么。
想回答这类问题就来看它:
- 那张 picking note 到底有没有送到 WMS?
- 我的 PO 为什么没变成 ASN?
- WMS 返回的具体错误信息是什么?
- WMS 什么时候把订单标成 shipped 的?
怎么用
- 在左侧菜单点 Sync Log。
- 表格显示每一次动作,最新的在上面(默认最近 200 条)。
- 点任一行高亮,然后点顶部的 View Payload 按钮,或双击那一行 → 弹出对话框显示完整的 request + response JSON。
各列是什么意思
| 列 | 意思 |
|---|---|
| # (LogKey) | 自增编号,最新最大 |
| Type | 动作类型(见下面清单) |
| Reference | 相关的 AutoCount 单据 —— picking note 号、PO 号、item code 等 |
| Dir | OUT = 我们推送到 WMS / BAS;IN = WMS 推送过来的 webhook |
| OK | ✓ 成功 / ✗ 失败 |
| Error | 失败的话,WMS 回的 code + message |
| Date | 动作发生的时间 |
常见的 Type
| Type | Direction | 意思 |
|---|---|---|
| ORDER_CREATE | OUT | 推 picking note 到 WMS(GLINK_CREATE_ORDER_NOTIFY) |
| ORDER_CANCEL | OUT | 取消 picking note(GLINK_CANCEL_ORDER_NOTIFY) |
| ORDER_STATUS | IN | WMS 推送订单状态变化(webhook) |
| ASN_CREATE | OUT | PO 推送为 ASN(GLINK_CREATE_ASN_NOTIFY) |
| ASN_CANCEL | OUT | 取消 ASN(GLINK_CANCEL_ASN_NOTIFY) |
| ASN_STATUS | IN | WMS 推送 ASN 收货状态(webhook,触发 GRN 创建) |
| ITEM_SYNC | OUT | item 推到 WMS GLINK |
| ITEM_TYPE_SYNC | OUT | Item Type 推到 WMS BAS(建分类) |
| UOM_PUSH | OUT | UOM 描述推到 WMS BAS(Phase 2) |
View Payload 对话框
点 View Payload 或双击行 → 弹出的对话框:
- 顶部:当前 log 的概要(编号、类型、参考号、时间、是否成功)
- Request payload:我们发送给 WMS / BAS 的完整 JSON(pretty-printed)
- Response payload:WMS / BAS 返回的完整 JSON
- 每个面板都有 Copy 按钮,可以复制给 Solution Provider 排查
找 picking note 的具体 WMS 错误
排查 picking note 同步失败:
- 来 Sync Log
- 用 Search 输入 PN 号
- 找 Type =
ORDER_CREATE+ Dir =OUT的行 - 双击 → 看 Response payload 里
code和message字段
Cleanup & Retention(高级 —— Ctrl+Alt+0)
Sync Log 表会越长越大,特别是 200 行 picking note × 大量 SKU = 一行就几 KB JSON。WMS Sync Hub 提供两种清理方式:
自动清理(默认开启)
每小时一次,自动把超过 N 天的 RequestPayload + ResponsePayload 置为 NULL(保留行的元数据:refNo、time、success、error,只丢内容)。
默认保留 90 天。可以在 Ctrl+Alt+0 面板里调整(PayloadRetentionDays,0 = 关闭自动清理)。
手动清理(按日期范围)
按 Ctrl + Alt + 0 弹出 Sync Log — Cleanup & Retention 对话框:
- From / To 日期 + Type 过滤
- Clear Payloads 按钮:把符合条件行的 payload 字段清空(保留行)
- Delete Rows 按钮(红色):把整行删除(连元数据都丢)—— 谨慎用
- Auto-clear payloads after [N] days 输入框:调整自动清理的保留天数
- Save Retention 按钮:保存到
Z_WmsSyncSetting.PayloadRetentionDays
Delete Rows 不可逆
Clear Payloads 是温和的(保留行 + 审计元数据),而 Delete Rows 是硬删除。除非你确定不再需要历史,否则优先用 Clear。
看失败的记录
如果某行是 ✗,双击或 View Payload 看具体内容:
- "INVALID_DATA: Item ABC-123 not exists" —— 先去 Item Code Sync 同步这个 item,再 Retry Failed 重试。
- "ORDER_NOT_EXIST" —— 取消已经处理过的订单;通常没事。
- "INSUFFICIENT_INVENTORY" —— WMS 库存不够,问仓库。
- "出库模式配置异常" —— 仓库的 outbound mode 配置不全(warehouse 地址、carrier 路由等)—— 找 Solution Provider 联系 WMS 团队补全。
- 看起来很技术的代号 —— 复制整行 + payload 给 Solution Provider。
常见问题
- 问:Sync Log 太多怎么办? 系统已经在自动清理(每小时把超过 90 天的 payload 置 NULL)。如果还是觉得多,按 Ctrl+Alt+0 手动 Clear 一段日期范围。
- 问:清理 payload 后还能看到那条记录吗? 能 —— Clear Payloads 只清空 RequestPayload + ResponsePayload 字段,行还在。你能看到 type、refNo、success、error 这些元数据,只是看不到完整 JSON 了。
- 问:双击行没反应? 确保你 View Payload 时先点了那一行让它高亮。如果还不行,看一下 Sync Log 里这条记录是否有 RequestPayload(旧版本可能没存 payload)。
- 问:能导出成 Excel 吗? 可以,右键表格 → Export To Excel(DevExpress 标准功能)。但 export 不会包含 payload 内容,只导出表格列。要 payload 就 View 单条 + Copy 按钮。