SAP S/4HANA 2022:MRP Live 和 Classic MRP新的增强BADI

翻译一篇,原文在SAP BLOG中如下:
在这里插入图片描述

目录

  • 前言
  • 通过 BADIs 操作 MRP 元素
  • 新的 BadI PPH_SUPPLY_DEMAND_LIST
  • BADI PPH_SUPPLY_DEMAND_LIST 的示例实现
  • 结论

前言

SAP S/4HANA 引入了新的 BADI PPH_SUPPLY_DEMAND_LIST,它允许我们在MRP Live 和 Classic MRP 运行中更改、添加或排除 MRP 元素。此 BADI 也在 MRP 评估事务(例如 MRP清单:MD04)和 MRP Cockpit Fiori Apps 中调用。本文提供了有关此 BADI 的更多详细信息,解释了使用它的原因以及使用的好处。

通过 BADIs 操作 MRP 元素

对于运行 MRP 的公司来说,影响 MRP 元素是一个非常常见的要求,并且经常实施增强功能以​​使特定元素与 MRP 无关,或者更改 MRP 元素的特定属性,例如日期和数量。

在旧的 ==ECC 版本中,我们可以使用 ==BAdI MD_CHANGE_MRP_DATA ==实现会影响 MRP 元素的自定义代码,我之前写了一篇博客解释如何使用此BAdI 来使 MRP 元素与 MRP 无关。

然而,==在 S/4HANA 版本中,此 BAdI 不再生效。==在经典的 Classic MRP中,这个BAdI在MRP从数据库读取计划元素时被调用,并且逻辑被下推到HANA数据库层,以提高MRP的性能,而MRP Live完全在HANA中运行,所以ABAP的 BAdI不能被MRP Live过程调用。

到目前为止,替代方案是使用 ABAP BAdI MD_ADD_ELEMENTS,它可以在经典 MRP 和 MRP评估事务(例如 MD04 MRP清单)中工作,以及 MRP Live 中的 AMDP BAdI PPH_MRP_RUN_BADI(AMDP 代表 for ABAP Managed Database Procedures即管理数据库过程,它是直接在 HANA 数据库中执行的过程)。

虽然这些 BAdI 非常方便,但在 SAP S/4HANA 中实现它们有两个缺点: 在大多数情况下,MRP Live 在 HANA 中计划物料,并调用 AMDP BAdI,但在某些情况下,MRP Live 需要计划物料在ABAP中,AMDP BAdI将不起作用。这意味着必须实施两个 BAdIs,从而导致额外的开发工作和成本。除此之外,ABAP BAdI 在 MRP 评估事务中被调用,例如 MD04,但在 MRP Fiori 应用程序中不会被调用,这意味着用户会根据所使用的事务或应用程序看到不同的结果。

新的 BadI PPH_SUPPLY_DEMAND_LIST

为了解决这些问题,SAP S/4HANA 2022 引入了新的 BAdI PPH_SUPPLY_DEMAND_LIST。这是一个 AMDP BAdI,这意味着它直接在 HANA 数据库中运行,并且可以在Classic MRP、MRP Live、MRP Fiori Apps和库存/需求列表 (MD04)中工作。
在这里插入图片描述

这个BAdI只有一个名为MODIFY_SUPPLY_DEMAND_LIST的方法,该方法由将从数据库读取计划元素的存储过程调用,这意味着我们可以更改计划元素的属性,添加新的计划元素,甚至使计划元素不相关对于 MRP。

BAdI 方法有几个导入参数,如下图所示,它们将传入有用的信息,例如用户或计划日期。有一个名为 CT_SUPPLYDEMANDITEMLIST 的变化参数,它将带来 MRP 从数据库中读取的特定物料的供需元素列表(销售订单、生产订单、计划订单、采购申请等)。

在这里插入图片描述

值得一提的是,由于该 BAdI 的实现对计划元素所做的更改只会在计划运行期间被 MRP 考虑,并且不会保存到数据库中。例如,如果您使用此 BAdI 更改计划订单日期,MRP 将在计划运行期间考虑此计划订单的调整日期,但表 PLAF 中的日期不会更改。

此外,MRP 在计算净需求期间会考虑此 BAdI 实施的任何更改,并且在 BAdI 执行后不会执行一致性检查。因此,如果您使用此BAdI调整计划元素的数量,MRP将在计算净需求时使用此数量,并且您的BAdI将直接影响MRP结果,因此应非常小心地使用! 例如,如果您使用此 BAdI 来减少销售订单的数量,则 MRP 将无法完全弥补此销售订单可能导致的短缺。

BADI PPH_SUPPLY_DEMAND_LIST 的示例实现

对于新的 BAdI PPH_SUPPLY_DEMAND_LIST,SAP 提供了一个示例实现类,其中包含示例代码,您可以将其用作构建自己的 BAdI 实现的示例。

在这里插入图片描述
此示例代码针对以下场景提出了解决方案:

-从规划中排除存储位置。
-从计划中排除过期批次。
-将客户订单的要求日期提前 2 天。

从 MRP 中排除过期批次(也称为保质期规划)是一项非常常见的要求,特别是对于制药和食品行业,以确保过期批次不会被视为可用于组件和成品。标准 MRP 在规划时不考虑批次过期,公司必须在增强 MRP 以启用此功能或实施 PP/DS 之间进行选择,因为它提供了标准启发式方法来支持保质期规划。

此 BAdI 提出的示例代码添加了计划的独立要求,以在到期日从可用数量中减少批次数量。这样,MRP 就不会将此数量视为可用,而是会创建新的补货建议来弥补短缺。

下图显示了示例实现中提供的代码,如下所示,它带有注释,因此您只能将其用作开发自己的 BAdI 实现的模型。
在这里插入图片描述

结论

借助可在 MRP Live、经典 MRP、库存/需求列表和 MRP Cockpit Fiori 应用程序中使用的单个 BAdI,我们将能够减少开发工作量和增强 MRP 的成本。单个 BAdI 实施还将减少错误数量,并确保不同 MRP 事务和应用程序之间的自定义逻辑保持一致。

SAP提供的示例代码还将帮助我们满足从MRP中排除过期批次的非常常见的要求,并加速增强功能的开发。

我们只需要小心地使用这个 BAdI,确保所实现的逻辑能够保持 MRP 结果一致,并且不会导致短缺或为我们的产品建立不必要的库存。

有关此 BAdI 和其他 MRP BAdI 的更多信息可以在需求计划的 IMG 活动业务插件中找到。

由 SAP S/4HANA RIG 为您提供

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/85752.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

2023.8.19-2023.8.XX 周报【人脸3D+虚拟服装方向基础调研-Cycle Diffusion\Diffusion-GAN\】更新中

学习目标 1. 这篇是做diffusion和gan结合的,可以参照一下看看能不能做cyclegan的形式,同时也可以调研一下有没有人follow这篇论文做了类似cyclegan的事情 Diffusion-GAN论文精读https://arxiv.org/abs/2206.02262 2. https://arxiv.org/abs/2212.06…

[足式机器人]Part3机构运动微分几何学分析与综合Ch03-1 空间约束曲线与约束曲面微分几何学——【读书笔记】

本文仅供学习使用 本文参考: 《机构运动微分几何学分析与综合》-王德伦、汪伟 《微分几何》吴大任 Ch01-4 平面运动微分几何学 3.1 空间曲线微分几何学概述3.1.1 矢量表示3.1.2 Frenet标架 连杆机构中的连杆与连架杆构成运动副,该运动副元素的特征点或特…

通过cpolar在外远程查看家里内网监控

通过cpolar在外远程查看家里内网监控 文章目录 通过cpolar在外远程查看家里内网监控前言1. 在cpolar官网预留一个空白隧道2. 完成空白数据隧道,生成地址3. 设置空白隧道的出口4. 空白数据隧道的出口设置5. 获取公网地址6. 打开本地电脑“远程桌面”7. 打开Windows自…

三星Galaxy S23与iPhone 15的对比分析:谁会胜出?

三星Galaxy S23与iPhone 15的对决将于下个月进入高潮,这将是今年智能手机中最大的一场较量。毕竟,这是两家领先的移动设备制造商的旗舰手机。他们的手机的比较将在很大程度上决定谁能获得最佳手机的称号。 我们已经知道有利于三星Galaxy S23的情况,该产品自春季以来一直在推…

算法 | 活用双指针完成复写零操作

Problem: 1089. 复写零 文章目录 题目解析算法原理分析找到最后一个复写的位置从后往前进行复写操作 代码展示 题目解析 首先我们来分析一下本题的题目意思 可以看到题目中给到了一个数组,意思是让我们将数组中的零元素都复写一遍,然后将其余的元素向后平…

jmeter-results-detail-report_new.xsl文件设置dateReport

<!-- Defined parameters (overrideable) <td bgcolor"#ff00ff"> --> <xsl:param name"showData" select"y"/> <xsl:param name"titleReport" select"测试报告"/> <xsl:param name&…

从零实现深度学习框架——Transformer从菜鸟到高手(二)

引言 &#x1f4a1;本文为&#x1f517;[从零实现深度学习框架]系列文章内部限免文章&#xff0c;更多限免文章见 &#x1f517;专栏目录。 本着“凡我不能创造的&#xff0c;我就不能理解”的思想&#xff0c;系列文章会基于纯Python和NumPy从零创建自己的类PyTorch深度学习框…

Electron学习2 使用Electron-vue和Vuetify UI库

Electron学习2 使用Electron-vue和Vuetify UI库 一、Electron-vue简介二、安装yarn三、创建Electron-vue项目1. 关于 electron-builder2. 安装脚手架3. 运行4. 打包应用程序 四、background.js说明1. 引入模块和依赖&#xff1a;2. 注册协议&#xff1a;3. 创建窗口函数&#x…

通过springMVC拦截器进行后台统一校验

通过springMVC拦截器统一解析token&#xff0c;判断是否有效。可以对请求进行前置或后置处理 /*** 配置拦截器*/ public class TokenInterceptor implements HandlerInterceptor {Overridepublic boolean preHandle(HttpServletRequest request, HttpServletResponse response,…

Commonjs和Es6语法规范的理解

ES6 module和CommonJS到底有什么区别&#xff1f; “ES6 module是编译时加载&#xff0c;输出的是接口&#xff0c;CommonJS运行时加载&#xff0c;加载的是一个对象” 这里的“编译时”是什么意思&#xff1f;和运行时有什么区别&#xff1f;“接口”又是什么意思&#xff1f;…

2023.08.20 学习周报

文章目录 摘要文献阅读1.题目2.现有问题3.解决方案4.本文贡献5.方法5.1 利用长短期记忆网络学习时空演化特征5.2 构建用于气象辅助信息编码的堆叠自编码器5.3 使用多任务学习发现全市通用模式5.4 模型 6. 实验6.1 数据集6.2 实验设置6.3 实验结果 7.结论8.展望 大气污染物传输总…

Leetcode刷题笔记--Hot21-30

1--全排列&#xff08;46&#xff09; 主要思路1&#xff1a; 经典全排列&#xff0c;每次枚举每一位时&#xff0c;重头开始枚举&#xff0c;用一个访问数组记录当前已经被访问过的数字&#xff1b; 这道题不包含重复数字&#xff0c;所以不需要进行树层上的剪枝&#xff1b; …

[ MySQL ] — 如何理解索引以及索引的操作

目录 初识索引 认识磁盘 MySQL与存储 了解磁盘 mysql与磁盘的交互 索引的理解 理解单个Page 理解多个Page 页目录 单页情况 多页情况 索引结构 - B树 聚簇索引 和 非聚簇索引 索引操作 创建主键索引 唯一索引的创建 ​编辑 普通索引的创建 全文索引的创建 查询…

Ae 效果:CC Light Sweep

生成/CC Light Sweep Generate/CC Light Sweep CC Light Sweep&#xff08;CC 光线扫描&#xff09;可以创建一个动态的光线扫描&#xff0c;常用于模拟一束光在图像上移动的效果。支持 Alpha 通道并能基于 Alpha 通道边缘创造逼真的光照。 ◆ ◆ ◆ 效果属性说明 Center 中心…

Unity怎么制作魔法火焰特效?Unity制作魔法火焰特效方法

Unity制作魔法火焰特效方法&#xff1a; 在第一次玩Supergiant Games的RPG游戏《Hades》时&#xff0c;游戏的美术和视觉效果让人非常吃惊。受此启发&#xff0c;希望能够尝试制作类似风格的作品。 工作流程 整个工作从制作简单的火焰贴图开始。首先&#xff0c;我使用PhotoS…

深入了解Maven(一)

目录 一.Maven介绍与功能 二.依赖管理 1.依赖的配置 2.依赖的传递性 3.排除依赖 4.依赖的作用范围 5.依赖的生命周期 一.Maven介绍与功能 maven是一个项目管理和构建工具&#xff0c;是基于对象模型POM实现。 Maven的作用&#xff1a; 便捷的依赖管理&#xff1a;使用…

html动态爱心代码【三】(附源码)

目录 前言 特效 内容修改 完整代码 总结 前言 七夕马上就要到了&#xff0c;为了帮助大家高效表白&#xff0c;下面再给大家带来了实用的HTML浪漫表白代码(附源码)背景音乐&#xff0c;可用于520&#xff0c;情人节&#xff0c;生日&#xff0c;表白等场景&#xff0c;可直…

React前端开发架构:构建现代响应式用户界面

在当今的Web应用开发中&#xff0c;React已经成为最受欢迎的前端框架之一。它的出色性能、灵活性和组件化开发模式&#xff0c;使得它成为构建现代响应式用户界面的理想选择。在这篇文章中&#xff0c;我们将探讨React前端开发架构的核心概念和最佳实践&#xff0c;以帮助您构建…

使用 MATLAB 和 Simulink 对雷达系统进行建模和仿真

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

正则表达式:贪婪与非贪婪模式

正则中的三种模式&#xff0c;贪婪匹配、非贪婪匹配和独占模式。 在这 6 种元字符中&#xff0c;我们可以用 {m,n} 来表示 &#xff08;*&#xff09;&#xff08;&#xff09;&#xff08;?&#xff09; 这 3 种元字符&#xff1a; 贪婪模式&#xff0c;简单说就是尽可能进行…