type: adr module: TPM-MM status: accepted date: 2026-06-19 author: Kabin tags: [#s4, #adr, #tpm, #mm, #interface, #uom]
ADR-002:TPM → S4 基本单位规则¶
状态¶
draft — 待会议确认后改为 accepted
背景¶
TPM(纷享销客)促销活动中的物料采购需求通过采购接口(入站)推送到 S/4HANA 创建 PR/PO 时,TPM 侧使用的业务单位(箱/个/包/套/吨)与 SAP 物料主数据的基本单位(Base UOM,如 EA/CT/KG/TO)不一致,导致:
- PR 数量写错,收货数量对不上账
- 单位换算无标准,各环节理解不一致
- 跨系统传递无校验,错误静默传递
约束¶
- A2 金额单位 RMB'000 是该文件本身的定义规则,与物料单位无关,PR 金额仍以 CNY 为准
- 物料单位归属 MM/SD 主数据范畴,由 SAP 物料主数据统一管控
- TPM 侧业务人员必须能看懂单位(如"箱"),不接受纯 SAP 系统代码(如"EA")
场景分析¶
场景 A:费用类(非物料)¶
促销活动费用本身(TPCP 费用/Accrual/结算)→ 走 FI 接口,不涉及 MM,不存在单位问题。
场景 B:库存类采购(促销赠品 / POSM / 买赠物料) 🔴¶
TPM 传入物料代码 + 数量 + 单位 → SAP 创建 PR。
问题链:
| # | 问题 | 影响 |
|---|---|---|
| ① | TPM 选的单位,SAP 物料主数据里有没有? | PR 数量概念不一致 |
| ② | 有单位但换算系数对不对? | 系数错了库存乱套 |
| ③ | TPM 物料选择范围是否受限? | TPM 选了 SAP 不存在的 UOM → 静默失败 |
场景 C:跨系统传递治理¶
决策¶
选择:方案 A — SAP 侧单位硬转
TPM 传入的单位在 SAP BAPI 增强中做校验和转换,以物料主数据为权威。
详细规则¶
| 规则 | 描述 |
|---|---|
| ① UOM 校验 | TPM 传入的 UOM 必须在 SAP 物料主数据的 UOM 组内,不在则拒绝并回传错误码 |
| ② 转换权威 | 换算系数以 SAP 物料主数据(Base UOM → Alternative UOM 转换系数)为准,PI 和 TPM 不做二次换算 |
| ③ 显示 vs 存储 | SAP 按 Base UOM 存数量;TPM 可显示业务单位(箱/个),但推接口时 SAP 校验后再转 |
| ④ 错误处理 | UOM 不匹配 → 接口拒绝 → 回传错误 → TPM 侧业务员修改活动后重新推送 |
| ⑤ 主数据同步 | 预先检查 DMS 物料同步接口(接口2),确保 TPM 侧有单位信息,不全的补全 |
方案对比¶
| 方案 | 换算放哪 | 优点 | 缺点 |
|---|---|---|---|
| A:SAP 侧硬转 ✅ | BAPI 增强 | 数据源头一致,不依赖中间件 | SAP 增强点增加 |
| B:PI 中间件映射 | PI 维护转换表 | 解耦 | 需单独维护,易不同步 |
| C:TPM 侧限制 | TPM 只准选 Base UOM | 最干净 | 业务看不懂 |
关键设计点¶
- TPM 入站字段需增加
unit_of_measure+base_uom_flag - BAPI_PR_CREATE 调用前加增强:
unit_of_measure ≠ material base uom→ 查转换系数 → 换算数量 → 按 Base UOM 写 PR - 出站回传时需携带
original_unit + original_qty供 TPM 侧显示
影响范围¶
| 模块 | 影响 |
|---|---|
| MM 主数据 | 物料 UOM 组必须完整,已有物料需核查 |
| PI 中间件 | 接口字段增加 UOM 透传 |
| TPM | 活动创建时可选单位受物料主数据约束 |
| FI | 无影响(费用不走 MM) |
待确认项(会议中)¶
- TPM 侧物料选择时,单位下拉范围是全部 UOM 组,还是只显示业务常用单位?
- 不匹配时拒绝 → 回传错误 → TPM 侧自动提示修正,还是需人工通知?
- 现有存量物料的主数据 UOM 转换系数是否完整?
相关¶
- TPM PR 接口决策 — 采购申请接口整体方案
- TPM 概念页
- 接口映射:
系统集成字段映射参考0612.xlsx - 蓝图:
金光食品TPM项目To-Be蓝图文档_V1.05.docx