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.

相关推荐
Azure DevOps38 分钟前
Azure DevOps Server:允许讨论但不允许修改工作项
运维·microsoft·azure·devops
阿阿越39 分钟前
Linux系统编程 -- 进程(二)
linux·运维·服务器
双木的木42 分钟前
Coggle数据科学 | 并行智能体:洞察复杂系统的 14 种并发设计模式
运维·人工智能·python·设计模式·chatgpt·自动化·音视频
waves浪游1 小时前
进程控制(上)
linux·运维·服务器·开发语言·c++
Mr.Ja1 小时前
【Docker 从入门到实战】——解决跨环境部署痛点的完整指南
运维·docker·容器·dockerfile·dockerimage
q***87601 小时前
Nginx 常用安全头
运维·nginx·安全
youxiao_901 小时前
LVS负载均衡集群与LVS+Keepalived集群
运维·负载均衡·lvs
i***t9191 小时前
Nginx 之Rewrite 使用详解
运维·nginx
last demo1 小时前
LNMP部署实验
linux·运维·服务器