SAP-ABAP:SAP采购业务核心表关联关系详解
SAP采购业务核心表关联关系详解
一、采购业务流程与模块关联
涉及模块:MM(核心)、FI(财务)、SD(计划协议)
数据流向:PR → PO → GR → MIRO → FI过账
二、核心业务表结构说明
1. 采购申请(PR)
表名 | 描述 | 关键字段 | 关联关系 |
---|---|---|---|
EBAN | 申请行项目 | BANFN (申请号), BNFPO (行号), MATNR , MENGE , BADAT | ←→ EBKN |
EBKN | 账户分配 | KOSTL , AUFNR , PS_PSP_PNR | 通过BANFN+BNFPO 关联EBAN |
特殊逻辑:
- PR转PO时,EBAN会记录
EBELN
(PO号)和EBELP
(行号) - EBKN存储成本对象(成本中心/项目/WBS等)
2. 采购订单(PO)
表名 | 描述 | 关键字段 | 关联关系 |
---|---|---|---|
EKKO | 订单抬头 | EBELN , BSART , LIFNR , BEDAT | ←→ EKPO |
EKPO | 订单行项 | EBELN , EBELP , MATNR , MENGE , NETPR | ←→ EKET |
EKET | 计划行 | EINDT , MENGE | 通过EBELN+EBELP 关联EKPO |
关键关联:
EKKO-EBELN → EKPO-EBELN (1:N)
EKPO-EBELN+EBELP → EBAN-EBELN+EBELP (PR转PO场景)
3. 收货(GR)
表名 | 描述 | 关键字段 | 关联关系 |
---|---|---|---|
MKPF | 凭证抬头 | MBLNR , MJAHR , BLART | ←→ MSEG |
MSEG | 凭证行项 | MBLNR+MJAHR+ZEILE , EBELN , SHKZG | ←→ MARD |
MARD | 库存数据 | MATNR , WERKS , LGORT , LABST | 通过物料+工厂+库存地点关联 |
库存更新:
MSEG中的BWART
字段控制库存变动类型(如101-标准收货)
4. 发票校验(MIRO)
表名 | 描述 | 关键字段 | 关联关系 |
---|---|---|---|
RBKP | 发票抬头 | BELNR , GJAHR , LIFNR | ←→ RSEG |
RSEG | 发票行项 | BELNR+GJAHR+BUZEI , EBELN , WRBTR | ←→ BSEG |
BSEG | 会计凭证 | BELNR , BUZEI , KOART , AWKEY | 通过AWKEY关联RBKP |
财务集成:
BSEG中的HKONT
字段对应总账科目,ZUONR
存储PO号用于三单匹配
三、主数据表结构
供应商主数据
LFA1 (通用数据)
│
└── LFB1 (公司代码视图)
├── EKKO.LIFNR (采购订单)
└── RBKP.LIFNR (发票)
物料主数据
MARA (通用数据)
│
└── MARC (工厂视图)
├── EKPO.MATNR (PO物料)
└── MSEG.MATNR (收货物料)
四、ER图核心关系
EBAN ←(BANFN,BNFPO)→ EKPO
EKKO ←(EBELN)→ EKPO ←(EBELN,EBELP)→ MSEG
MKPF ←(MBLNR,MJAHR)→ MSEG ←(MATNR,WERKS)→ MARC
RBKP ←(BELNR,GJAHR)→ RSEG ←(EBELN)→ EKPO
BSEG ←(AWKEY)→ RBKP
五、关键注意点
-
时间相关性
- MARD表按
LFGJA
(年度)分区 - 历史数据需结合
MANDT
(客户端)查询
- MARD表按
-
增强字段处理
SELECT * FROM EKPO LEFT JOIN ZMM_PO_ENH ON EKPO.EBELN = ZMM_PO_ENH.EBELN
-
跨模块追溯
- 通过
AWKEY
字段可追溯会计凭证与业务单据关系 - 使用事务码
ME23N
(PO查询)/MIR4
(发票查询)快速跳转
- 通过
六、典型业务场景表关联
三单匹配流程:
采购订单 EKPO.EBELN
│
├── 收货凭证 MSEG.EBELN
│
└── 发票凭证 RSEG.EBELN
│
└── 会计凭证 BSEG.AWKEY
│
└── 供应商余额 LFB1.LIFNR