营销云与ERP供应链集成:66条策略的多主体闭环实践
场景与价值
在某营养健康品牌的实际项目里,营销云负责前端订单与渠道流转,金蝶云星辰承担后端库存与财务核算,两边各管一摊。最典型的痛点是促销季结束后:营销云里有出库单,ERP 里却迟迟没有对应的销售出库凭证;采购入库和退货分散在多个业务主体下,人工对账要到节后第三天才能发现差异。问题不在某个系统抄表不及时,而在没有一条跨系统自动闭环——订单、发货、入库、退货、库存回写彼此孤立。
这次落地涉及 5 个业务主体、66 条集成策略,覆盖客户/物料/仓库主数据、销售出库、采购入库、退货入库、仓库调拨、库存回写以及连接器维护。目标只有一个:让营销云与 ERP 在主数据和单据层面实时一致,并在异常出现时自动告警、不阻塞主链路。
集成架构与数据流
整体架构分为四层:源系统(营销云)、目标系统(金蝶云星辰)、集成编排层(本方案在轻易云数据集成平台 Qeasy 上落地)以及监控与运维层。
数据流按四个阶段推进:
- 阶段一 基础资料同步(策略 1~18):先从 ERP 拉取客户、物料、仓库,建立编码映射;再按业务主体将主数据同步到营销云,仓库调拨单直接写入 ERP 调拨单。
- 阶段二 业务单据同步(策略 19~48):销售订单按业务主体拆分为 10 条出库单策略,退货 10 条、采购入库 10 条,均按已审核状态增量推送。
- 阶段三 连接器刷新(策略 49~52):4 个账套(新、旧、杭州益倍盛、杭州优百甲)的凭证定时刷新,避免 401 中断。
- 阶段四 校验与运维(策略 53~66):全量校验映射表一致性、死信队列重试、单据状态回写营销云、库存反向同步至营销云、整体健康检查。
接口清单
| 策略编号区间 | 数据对象 | 同步方向 | 备注 |
|---|---|---|---|
| 1~3 | 客户/物料/仓库 查询 | ERP → 映射表 | QUERY_ONLY,建立编码映射 |
| 4~8 | 仓库调拨单 | 营销云 → ERP | 按 5 个业务主体拆分 |
| 9~13 | 客户主数据 | ERP → 营销云 | 按 5 个业务主体拆分 |
| 14~18 | 物料主数据 | ERP → 营销云 | 按 5 个业务主体拆分 |
| 19~28 | 新版订单→销售出库单 | 营销云 → ERP | 按 10 个业务主体组合拆分 |
| 29~38 | 退货入库单 | 营销云 → ERP | 按业务主体拆分 |
| 39~48 | 采购入库单 | 营销云 → ERP | 按业务主体拆分 |
| 49~52 | 账套凭证刷新 | 系统级 | 每 2 小时刷新 |
| 53~57 | 映射校验/死信重试 | 双向 | 每日 02:00 |
| 58~60 | 单据状态回写 | ERP → 营销云 | 出库/采购/退货状态 |
| 61~65 | 库存数量 | ERP → 营销云 | 按 5 个业务主体 |
| 66 | 集成健康检查 | 系统级 | 每日 02:00 |
实施要点
分阶段调度。基础资料每 20~30 分钟跑一次,业务单据每 10 分钟一次,全量校验和健康检查放在每日凌晨 02:00,连接器刷新每 2 小时一次。基础与业务单据错峰,避免在同一个时间窗口打满接口配额。
增量与全量结合。日常运行以增量为主,基于 update_time / LAST_SYNC_TIME 过滤;首次部署或数据修复时执行全量;基础资料建议每天做一次全量校验,作为兜底。
编码映射集中管理。客户、物料、仓库、供应商、单位、业务主体六类映射放在统一映射表里,所有写入策略只能读这张表,不能在策略内部硬编码。这里容易翻车:一旦某个策略里硬编码了映射值,主数据变更后那条策略就会静默失败。
业务主体前置过滤。所有策略入口先按 org_code 过滤,只处理本主体数据,避免跨主体串数据。
异常重试分级。Token 失效(401)触发连接器刷新后重试 1 次;网络超时按 30s/60s/120s 指数退避重试 3 次;编码映射缺失时记录并跳过,不阻塞后续数据;目标系统限流超阈值时暂停并告警。
单据状态回写。ERP 审核完成后把状态回写到营销云,营销云侧的业务才能看到"已完成"。这一步是闭环的关键,常被忽略。
隐私处理。方案不包含真实客户名、账套号、凭证密钥;所有公司主体以业务编码(ORG_xxx)指代。
最佳实践与踩坑复盘
-
表头表体分阶段写入。订单类单据不要一次性整单写入 ERP,稳妥的做法是先写表头拿到 ERP 的单据编号,再写表体行,最后回写状态到营销云。这样中间任何一步失败都有明确回滚点。
-
多主体策略拆分而非合并。我们曾尝试把 5 个业务主体合并到一条策略里用参数切换,结果上游字段差异被掩盖,定位问题时非常痛苦。最终拆成 5~10 条独立策略,每条只服务一个主体或一个主体组合,调度和重试都更可控。
-
连接器刷新与凭证轮换分离。不要把 Token 刷新逻辑写进业务策略里。建议用轻易云平台上的独立 REFRESH 类型策略每 2 小时跑一次,业务策略只负责消费最新凭证。
-
死信队列必须配置。单条数据失败不应阻塞整批,失败记录进死信队列后由独立 RETRY 策略兜底,人工介入只在死信队列里处理。
-
库存回写要带业务主体过滤。ERP 库存反向同步到营销云时如果不带
org_code过滤,会把其他主体的库存也带过来,造成前端超卖或缺货幻觉。
何时使用轻易云
当供应链链路涉及多个业务主体、跨 ERP/CRM/营销云、需要按主体灵活调度并保留人工兜底通道时,轻易云数据集成平台(Qeasy)提供从映射表管理、调度编排到死信队列的一体化能力,把 66 条策略的依赖关系和异常处理收敛到一个工作流里运维,避免在多个脚本之间手动串联。