SAP实现物料分类与订单类型匹配检查

业务需求背景:

某集团性制造企业,拥有超过20个生产基地,物料种类繁多。该集团在SAP系统(ECC版本)创建了180万+物料,物料组7400+个,物料类型25个。参考物料的物料类型分类,采购申请凭证类型定义了18种,采购订单凭证类型定义了25种。现在,客户希望实现在创建采购凭证时,实现物料分类与凭证类型的匹配,方便采购凭证的细化管理。

例1:物料类型

XZ1 行政用品-存货

XZ2 行政用品-费用

SH 服务-售后

SK 售后-客供料

BF 报废物料

CJ 筹建物料

EI 工程-费用

EQ 资产设备

FL 辅料

MC 客供料

MD 原材料

MG 成品

MPN 制造商零件

MS 半成品

........

例2:采购申请凭证类型

XZ 行政

SH 售后

CJ 筹建

EI 工程

EQ 设备

FL 辅料

MC 客供料

MD 原材料

MG 成品

MS 半成品

........

功能需求分析:

在SAP标准功能中,在物料类型层级,没有直接可以实现与凭证类型关联的配置。如果要实现该需求,需要进行功能定制。实现路径梳理如下:

功能实现方案:

1、限制范围确认

集团性企业,可以按照公司代码维度进行自主配置;

2、物料与凭证类型关系建立

通过物料类型与凭证类型建立关系;

3、校验节点确认

PR凭证创建时,系统进行物料分类与订单类型匹配校验;

4、输出结果

如果校验到行项目输入的物料对应的物料类型与关系表匹配的订单类型不一致,则输出报错消息; 如果校验到行项目输入的物料对应的物料类型与关系表匹配的订单类型一致,则正常创建PR;

5、实现方案
1)创建物料类型与订单类型配置表(例如:ZTMM001)

基础表字段:公司代码、采购凭证类型、物料类型

|------------|-------|--------|-------|
| 字段名称 | 公司代码 | 采购凭证类型 | 物料类型 |
| 技术字段名称 | BUKRS | BSART | MTART |

2)创建消息号(例如:ZPR001)

|---------|----------|---------------------------------|
| 消息类 | 消息编号 | 消息短文本 |
| ZPR | 001 | 项目00* 输入物料对应的物料类型与订单类型不匹配,请检查! |

3)程序逻辑

* 从物料主表MARA中找到该物料的物料类型MTART

CLEAR lv_i_mtart.

SELECT SINGLE matart

INTO lv_i_mtart

FROM mara

WHERE matnr = lw_item-matnr.

*从行项目的工厂代码获取公司代码

CLEAR l_bwkey.

SELECT SINGLE bwkey

INTO l_bwkey

FROM t001m

WHERE werks = lw_item-werks.

IF sy_subrc = 0.

CLEAR l_bukrs.

SELECT SINGLE bukrs

INTO l_bukrs

FROM t001k

WHERE bwkey = l_bwkey.

ENDIF.

* 以公司代码+该物料的物料类型+该订单的订单类型,到ZTMM001中检索是否存在记录

* 存在则说明匹配;不存在,则要报错:项目00* 输入物料对应的物料类型与订单类型不匹配,请检查!

CLEAR ls_ztmm.

SELECT SINGLE mtart

INTO ls_ztmm

FROM ztmm001

WHERE bukrs = l_bukrs.

AND bsart = ls_hearder-bsart

AND mtart = lv_i_mtart.

* 如果不存在记录,则报错

IF NOT sy-subrc EQ 0.

MESSAGE e001(zpr).

ENDIF.

相关推荐
数智化管理手记1 小时前
手工统计指标误差大、效率低?指标管理系统如何告别人工算数痛点?
大数据·运维·数据库·人工智能·云计算
实心儿儿7 小时前
Linux —— 进程间关系和守护进程
linux·运维·服务器
FII工业富联科技服务8 小时前
工业设备运维如何Agentic化?拆解Factory Brain的设备运维架构
大数据·运维·人工智能·架构·制造
Dawn-bit9 小时前
Linux磁盘管理详解
linux·运维·服务器·计算机网络·云计算
RisunJan10 小时前
Linux命令-sftp(SSH 文件传输协议客户端)
linux·运维
极客先躯11 小时前
高级java每日一道面试题-2026年05月03日-实战篇[Docker]-如何实现容器化环境的数据加密?
java·运维·docker·容器·金融·加解密·高级面试
三言老师13 小时前
CentOS7.9:Redis‑Cluster集群部署结构化实战教程
linux·运维·服务器·数据库
attitude.x13 小时前
Cursor+GitOps:自动化运维新姿势
运维·自动化
ChaITSimpleLove13 小时前
SimpleIdServer 6.0.4 Docker Compose 实战部署指南
运维·docker·容器·身份认证·id-server·simpleidserver
数智化管理手记14 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘