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.

相关推荐
不像程序员的程序媛3 小时前
系统cpu内存负载资源分析
运维·服务器·数据库
Asuicao6 小时前
centos7.9版本升级ssh OpenSSH 9.8p1 源码 OpenSSL 1.1.1w 源码包以及安装升级回滚文档
运维·ssh
志栋智能7 小时前
超自动化安全中的威胁狩猎
运维·安全·自动化
↘"LYong7 小时前
旧版 CentOS 安装 Docker 完整指南(附国内镜像加速)
linux·运维·docker
Elastic 中国社区官方博客8 小时前
Elastic 在 Everest Group 企业搜索产品 PEAK Matrix® 评估 2026 中被评为领导者
大数据·运维·人工智能·elasticsearch·搜索引擎·ai·全文检索
程序员在囧途8 小时前
likeadmin-api API 中转站怎么做统一报价?从 /pricing、/user/balance 到 task_id 回执的落地方法
运维·服务器·数据库·likeadmin-api·api中转站·token计费
想你依然心痛9 小时前
Linux用户空间与内核空间通信:netlink、ioctl、mmap 零拷贝与性能对比
linux·运维·服务器
沉静的小伙9 小时前
在微服务中使用领域事件
java·运维·微服务
wenzhangli710 小时前
oodAgent 4.0 Skills分布式调度 — 从Code Agent实战看自主维护的Agent网络
运维·网络·人工智能·自动化
做个文艺程序员10 小时前
Linux第12篇:性能监控与瓶颈分析——CPU/内存/IO/网络全维度
linux·运维·网络