545 lines
11 KiB
Markdown
545 lines
11 KiB
Markdown
# SAP MM 模块物控 MC 完整教程 📦
|
||
|
||
[](LICENSE)
|
||
[](https://github.com/1803560007/sap-mm-guide)
|
||
[](README-zh.md)
|
||
|
||
**专为物控 MC 设计的 SAP MM(物料管理)模块完整教程**
|
||
|
||
---
|
||
|
||
## 🚀 快速开始
|
||
|
||
### 1. 项目概述
|
||
|
||
本教程专为物控 MC(Material Controller)设计,涵盖 SAP MM 模块的核心功能和实际应用场景。
|
||
|
||
**目标读者:**
|
||
- 物控工程师
|
||
- 采购专员
|
||
- 仓库管理员
|
||
- 生产计划员
|
||
- SAP MM 初学者
|
||
|
||
**学习目标:**
|
||
- 掌握 SAP MM 模块基础操作
|
||
- 理解物料管理流程
|
||
- 熟练使用采购、库存、发票等核心功能
|
||
- 掌握报表分析和异常处理
|
||
|
||
### 2. 学习路径
|
||
|
||
```
|
||
基础入门 → 采购管理 → 库存管理 → 发票管理 → 报表分析 → 实战案例
|
||
```
|
||
|
||
---
|
||
|
||
## 📚 目录结构
|
||
|
||
```
|
||
sap-mm-guide/
|
||
├── README.md # 主文档
|
||
├── README-zh.md # 中文文档
|
||
├── QUICK_START.md # 快速开始指南
|
||
├── CHANGELOG.md # 更新日志
|
||
├── CONTRIBUTING.md # 贡献指南
|
||
├── LICENSE # MIT 许可证
|
||
├── .gitignore # Git 忽略文件
|
||
├── docs/ # 文档目录
|
||
│ ├── 01-基础入门.md
|
||
│ ├── 02-采购管理.md
|
||
│ ├── 03-库存管理.md
|
||
│ ├── 04-发票管理.md
|
||
│ ├── 05-报表分析.md
|
||
│ ├── 06-实战案例.md
|
||
│ ├── 07-异常处理.md
|
||
│ ├── 08-最佳实践.md
|
||
│ └── 09-常用T-code速查表.md
|
||
├── examples/ # 示例代码
|
||
│ ├── ABAP/
|
||
│ │ ├── MM01_Batch_Create.abap
|
||
│ │ ├── PO_Report.abap
|
||
│ │ └── Stock_Enquiry.abap
|
||
│ ├── Excel/
|
||
│ │ ├── PO_Template.xlsx
|
||
│ │ ├── Stock_Report.xlsx
|
||
│ │ └── GR_GI_Tracker.xlsx
|
||
│ └── Scripts/
|
||
│ ├── batch_upload.py
|
||
│ ├── stock_alert.py
|
||
│ └── po_tracking.py
|
||
├── templates/ # 模板文件
|
||
│ ├── PO_Request_Form.xlsx
|
||
│ ├── Material_Master_Template.xlsx
|
||
│ └── Stock_Take_Template.xlsx
|
||
└── tools/ # 工具脚本
|
||
├── mm_checker.sh
|
||
├── stock_validator.sh
|
||
└── po_approver.sh
|
||
```
|
||
|
||
---
|
||
|
||
## 🎯 核心内容
|
||
|
||
### 1. 基础入门
|
||
|
||
**SAP 系统介绍**
|
||
- SAP 系统架构
|
||
- MM 模块概述
|
||
- 物控 MC 角色定位
|
||
|
||
**基础操作**
|
||
- 登录和界面介绍
|
||
- 常用 T-code 速查
|
||
- 帮助系统使用
|
||
- 基本搜索技巧
|
||
|
||
### 2. 采购管理
|
||
|
||
**主数据管理**
|
||
- 物料主数据(MM01/MM02/MM03)
|
||
- 供应商主数据(XK01/XK02/XK03)
|
||
- 信息记录(ME11/ME12/ME13)
|
||
- 源清单(ME01/ME02/ME03)
|
||
|
||
**采购订单管理**
|
||
- 创建采购订单(ME21N)
|
||
- 修改采购订单(ME22N)
|
||
- 显示采购订单(ME23N)
|
||
- 采购订单审批(ME28/ME29N)
|
||
- 采购订单打印(ME9F)
|
||
|
||
**采购申请管理**
|
||
- 创建采购申请(ME51N)
|
||
- 修改采购申请(ME52N)
|
||
- 显示采购申请(ME53N)
|
||
- 采购申请转采购订单(ME59N)
|
||
|
||
### 3. 库存管理
|
||
|
||
**物料移动**
|
||
- 收货(MIGO)
|
||
- 发货(MIGO)
|
||
- 库存转移(MIGO)
|
||
- 库存盘点(MI31/MI01)
|
||
|
||
**库存查询**
|
||
- 库存总览(MMBE)
|
||
- 物料凭证查询(MB03)
|
||
- 库存历史(MB51)
|
||
- 库存分析(MB5B)
|
||
|
||
**库存管理**
|
||
- 库存状态管理
|
||
- 库存冻结处理
|
||
- 库存调整
|
||
- 库存盘点差异处理
|
||
|
||
### 4. 发票管理
|
||
|
||
**发票录入**
|
||
- 发票录入(MIRO)
|
||
- 发票修改(MIR2)
|
||
- 发票查询(MIR4)
|
||
- 发票冲销(MIR7)
|
||
|
||
**发票匹配**
|
||
- 三单匹配(发票/订单/收货)
|
||
- 差异处理
|
||
- 暂估处理
|
||
- 预付款处理
|
||
|
||
### 5. 报表分析
|
||
|
||
**标准报表**
|
||
- 采购订单报表(ME2M)
|
||
- 物料库存报表(MMBE/MB5B)
|
||
- 物料凭证报表(MB51)
|
||
- 发票报表(MIRO/MIR4)
|
||
|
||
**自定义报表**
|
||
- ABAP 报表开发
|
||
- Excel 数据导出
|
||
- 数据分析技巧
|
||
- 报表自动化
|
||
|
||
### 6. 实战案例
|
||
|
||
**案例 1:新物料导入**
|
||
- 物料主数据创建
|
||
- 采购信息记录维护
|
||
- 源清单设置
|
||
- 首次采购流程
|
||
|
||
**案例 2:库存盘点**
|
||
- 盘点计划制定
|
||
- 盘点执行
|
||
- 差异分析
|
||
- 调整处理
|
||
|
||
**案例 3:紧急采购**
|
||
- 紧急采购申请
|
||
- 快速采购订单
|
||
- 紧急收货
|
||
- 后续补单
|
||
|
||
**案例 4:供应商评估**
|
||
- 供应商主数据维护
|
||
- 采购记录分析
|
||
- 绩效评估
|
||
- 源清单更新
|
||
|
||
### 7. 异常处理
|
||
|
||
**常见问题**
|
||
- 物料主数据错误
|
||
- 采购订单错误
|
||
- 库存异常
|
||
- 发票差异
|
||
- 系统错误
|
||
|
||
**解决方案**
|
||
- 错误代码解析
|
||
- 处理流程
|
||
- 预防措施
|
||
- 最佳实践
|
||
|
||
### 8. 最佳实践
|
||
|
||
**数据管理**
|
||
- 物料编码规范
|
||
- 供应商管理规范
|
||
- 库存管理规范
|
||
- 文档管理规范
|
||
|
||
**流程优化**
|
||
- 采购流程优化
|
||
- 库存管理优化
|
||
- 发票处理优化
|
||
- 报表自动化
|
||
|
||
**系统使用**
|
||
- 快捷键使用
|
||
- 批量操作
|
||
- 报表定制
|
||
- 异常监控
|
||
|
||
### 9. 常用 T-code 速查表
|
||
|
||
**主数据管理**
|
||
- MM01 - 创建物料主数据
|
||
- MM02 - 修改物料主数据
|
||
- MM03 - 显示物料主数据
|
||
- XK01 - 创建供应商主数据
|
||
- XK02 - 修改供应商主数据
|
||
- XK03 - 显示供应商主数据
|
||
- ME11 - 创建信息记录
|
||
- ME12 - 修改信息记录
|
||
- ME13 - 显示信息记录
|
||
|
||
**采购管理**
|
||
- ME21N - 创建采购订单
|
||
- ME22N - 修改采购订单
|
||
- ME23N - 显示采购订单
|
||
- ME28 - 采购订单审批
|
||
- ME29N - 采购订单审批
|
||
- ME9F - 采购订单打印
|
||
- ME51N - 创建采购申请
|
||
- ME52N - 修改采购申请
|
||
- ME53N - 显示采购申请
|
||
- ME59N - 采购申请转采购订单
|
||
|
||
**库存管理**
|
||
- MIGO - 物料移动
|
||
- MMBE - 库存总览
|
||
- MB03 - 物料凭证查询
|
||
- MB51 - 物料凭证报表
|
||
- MB5B - 库存报表
|
||
- MI31 - 库存盘点
|
||
- MI01 - 创建盘点凭证
|
||
- MI02 - 修改盘点凭证
|
||
- MI04 - 录入盘点结果
|
||
- MI05 - 修改盘点结果
|
||
- MI07 - 盘点差异过账
|
||
|
||
**发票管理**
|
||
- MIRO - 发票录入
|
||
- MIR2 - 发票修改
|
||
- MIR4 - 发票查询
|
||
- MIR7 - 发票冲销
|
||
- MR8M - 发票冲销
|
||
|
||
**报表分析**
|
||
- ME2M - 采购订单报表
|
||
- ME2L - 供应商采购报表
|
||
- ME80FN - 采购订单汇总
|
||
- MB51 - 物料凭证报表
|
||
- MB5B - 库存报表
|
||
- MMBE - 库存总览
|
||
- MIRO - 发票报表
|
||
- MIR4 - 发票查询
|
||
|
||
---
|
||
|
||
## 🛠️ 示例代码
|
||
|
||
### ABAP 示例
|
||
|
||
**批量创建物料主数据**
|
||
```abap
|
||
REPORT ZMM_BATCH_CREATE.
|
||
|
||
DATA: lt_material TYPE TABLE OF BAPI_MARA,
|
||
ls_material TYPE BAPI_MARA,
|
||
lt_return TYPE TABLE OF BAPIRET2,
|
||
ls_return TYPE BAPIRET2.
|
||
|
||
LOOP AT it_material INTO ls_material.
|
||
CALL FUNCTION 'BAPI_MATERIAL_SAVEDATA'
|
||
EXPORTING
|
||
HEADDATA = ls_material
|
||
IMPORTING
|
||
RETURN = ls_return
|
||
TABLES
|
||
RETURN = lt_return.
|
||
ENDLOOP.
|
||
```
|
||
|
||
**采购订单报表**
|
||
```abap
|
||
REPORT ZMM_PO_REPORT.
|
||
|
||
SELECT EBELN, EBELP, MATNR, MENGE, NETWR, WAERS
|
||
FROM EKPO
|
||
INTO TABLE it_ekpo
|
||
WHERE LOEKZ = ''.
|
||
```
|
||
|
||
### Python 示例
|
||
|
||
**批量上传工具**
|
||
```python
|
||
import pandas as pd
|
||
from pyrfc import Connection
|
||
|
||
def upload_material_master(file_path):
|
||
"""批量上传物料主数据"""
|
||
df = pd.read_excel(file_path)
|
||
|
||
conn = Connection(
|
||
ashost='sap_server',
|
||
sysnr='00',
|
||
client='100',
|
||
user='username',
|
||
passwd='password'
|
||
)
|
||
|
||
for _, row in df.iterrows():
|
||
result = conn.call('BAPI_MATERIAL_SAVEDATA',
|
||
HEADDATA=row.to_dict())
|
||
print(f"Material {row['MATNR']}: {result['RETURN']}")
|
||
```
|
||
|
||
**库存监控工具**
|
||
```python
|
||
import schedule
|
||
import time
|
||
from pyrfc import Connection
|
||
|
||
def check_stock_alert():
|
||
"""库存预警检查"""
|
||
conn = Connection(...)
|
||
|
||
result = conn.call('BAPI_MATERIAL_GET_DETAIL',
|
||
MATERIAL='100-1000')
|
||
|
||
stock = result['STOCK']
|
||
if stock < 100:
|
||
send_alert(f"库存不足: {stock}")
|
||
```
|
||
|
||
### Shell 示例
|
||
|
||
**MM 检查工具**
|
||
```bash
|
||
#!/bin/bash
|
||
# mm_checker.sh - SAP MM 模块检查工具
|
||
|
||
# 检查物料主数据
|
||
check_material() {
|
||
local matnr=$1
|
||
sapcli mm material get $matnr
|
||
}
|
||
|
||
# 检查采购订单
|
||
check_po() {
|
||
local ebeln=$1
|
||
sapcli mm po get $ebeln
|
||
}
|
||
|
||
# 检查库存
|
||
check_stock() {
|
||
local matnr=$1
|
||
sapcli mm stock get $matnr
|
||
}
|
||
|
||
# 主函数
|
||
main() {
|
||
case $1 in
|
||
material)
|
||
check_material $2
|
||
;;
|
||
po)
|
||
check_po $2
|
||
;;
|
||
stock)
|
||
check_stock $2
|
||
;;
|
||
*)
|
||
echo "Usage: $0 {material|po|stock} [id]"
|
||
;;
|
||
esac
|
||
}
|
||
|
||
main "$@"
|
||
```
|
||
|
||
---
|
||
|
||
## 📊 使用场景
|
||
|
||
### 1. 日常操作
|
||
|
||
**每日必做**
|
||
- 检查采购订单状态
|
||
- 监控库存水平
|
||
- 处理异常订单
|
||
- 生成日报表
|
||
|
||
**每周必做**
|
||
- 库存盘点
|
||
- 供应商评估
|
||
- 采购计划回顾
|
||
- 报表分析
|
||
|
||
**每月必做**
|
||
- 月度库存盘点
|
||
- 供应商绩效评估
|
||
- 采购成本分析
|
||
- 系统优化
|
||
|
||
### 2. 异常处理
|
||
|
||
**库存异常**
|
||
- 库存负数处理
|
||
- 库存差异分析
|
||
- 库存冻结处理
|
||
- 库存调整
|
||
|
||
**采购异常**
|
||
- 订单延迟处理
|
||
- 价格差异处理
|
||
- 质量异常处理
|
||
- 供应商异常
|
||
|
||
**发票异常**
|
||
- 三单不匹配
|
||
- 发票差异处理
|
||
- 暂估处理
|
||
- 预付款处理
|
||
|
||
---
|
||
|
||
## 🔧 配置说明
|
||
|
||
### SAP 系统配置
|
||
|
||
**连接配置**
|
||
```python
|
||
# SAP 连接配置
|
||
SAP_CONFIG = {
|
||
'ashost': 'sap_server.example.com',
|
||
'sysnr': '00',
|
||
'client': '100',
|
||
'user': 'your_username',
|
||
'passwd': 'your_password'
|
||
}
|
||
```
|
||
|
||
**系统参数**
|
||
- 客户端:100
|
||
- 系统编号:00
|
||
- 语言:中文(ZH)
|
||
- 时区:UTC+8
|
||
|
||
### Excel 模板配置
|
||
|
||
**PO 模板**
|
||
- 物料号
|
||
- 供应商
|
||
- 数量
|
||
- 单价
|
||
- 交货日期
|
||
- 备注
|
||
|
||
**库存报告模板**
|
||
- 物料号
|
||
- 物料描述
|
||
- 库存地点
|
||
- 库存数量
|
||
- 库存价值
|
||
- 库存状态
|
||
|
||
---
|
||
|
||
## 📈 项目统计
|
||
|
||
- **文档文件:** 10 个
|
||
- **示例代码:** 10+ 个
|
||
- **T-code:** 50+ 个
|
||
- **实战案例:** 4 个
|
||
- **支持语言:** ABAP、Python、Shell
|
||
|
||
---
|
||
|
||
## 🤝 贡献指南
|
||
|
||
我们欢迎贡献!请阅读 [CONTRIBUTING.md](CONTRIBUTING.md) 了解详情。
|
||
|
||
**贡献方式:**
|
||
- 报告错误
|
||
- 改进文档
|
||
- 提交代码
|
||
- 分享案例
|
||
|
||
---
|
||
|
||
## 📄 许可证
|
||
|
||
本项目采用 MIT 许可证 - 详见 [LICENSE](LICENSE)
|
||
|
||
---
|
||
|
||
## 📞 联系方式
|
||
|
||
- **GitHub:** https://github.com/1803560007
|
||
- **项目:** https://github.com/1803560007/sap-mm-guide
|
||
- **邮箱:** 1803560007@users.noreply.github.com
|
||
|
||
---
|
||
|
||
## 🎉 开始学习
|
||
|
||
1. 阅读 [QUICK_START.md](QUICK_START.md)
|
||
2. 选择学习路径
|
||
3. 跟随实战案例
|
||
4. 应用到工作中
|
||
|
||
---
|
||
|
||
**版本:** 1.0.0
|
||
**最后更新:** 2026-02-02
|
||
**状态:** 🚀 开发中
|