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.

相关推荐
七夜zippoe10 小时前
CANN Runtime任务描述序列化与持久化源码深度解码
大数据·运维·服务器·cann
盟接之桥10 小时前
盟接之桥说制造:引流品 × 利润品,全球电商平台高效产品组合策略(供讨论)
大数据·linux·服务器·网络·人工智能·制造
Fcy64812 小时前
Linux下 进程(一)(冯诺依曼体系、操作系统、进程基本概念与基本操作)
linux·运维·服务器·进程
袁袁袁袁满12 小时前
Linux怎么查看最新下载的文件
linux·运维·服务器
代码游侠12 小时前
学习笔记——设备树基础
linux·运维·开发语言·单片机·算法
Harvey90312 小时前
通过 Helm 部署 Nginx 应用的完整标准化步骤
linux·运维·nginx·k8s
珠海西格电力科技13 小时前
微电网能量平衡理论的实现条件在不同场景下有哪些差异?
运维·服务器·网络·人工智能·云计算·智慧城市
释怀不想释怀14 小时前
Linux环境变量
linux·运维·服务器
zzzsde14 小时前
【Linux】进程(4):进程优先级&&调度队列
linux·运维·服务器
零售ERP菜鸟14 小时前
范式革命:从“信息化”到“数字化”的本质跃迁
大数据·人工智能·职场和发展·创业创新·学习方法·业界资讯