SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查
在SAP/ERP项目的实施中采购管理模块(MM)的创建和修改采购申请一般都会有输入字段校验检查的需求,来防止业务人员录入错误或少录入数据,这方面需求部分是可以通过配置实现,比如一些字段是否必输,是否显示等,但是在实际项目中还是会遇到一些特殊的需求,比如需要一定逻辑判断的需求就不能通过配置实现,需要进行增强开发。
下面通过一个项目案例来介绍下如何通过增强实现采购申请创建和修改时字段输入的合规性检查。
业务需求如下:
某公司MM模块的业务要求:创建成本中心(K)采购申请时,要求系统检查采购申请行项目输入的物料组代码必须是Z开头的,因为这公司物料组配置已要求成本中心类采购申请必须选择Z开头物料组,因为只有Z开头物料组才配置了能自动带出成本中心。
这需求的业务背景:
SAP系统创建成本中心采购申请必须要填写会计科目,但通常需求申请人并不清楚应该填写那个会计科目,SAP标准解决方案通过物料组去关联会计科目,创建采购申请时候,当输入物料组后会自动带出会计科目,不需要用户填写(关于这方面配置可以参考如下文章),但是这公司的申请人在创建采购申请时候还是会经常选错物料组,因为选错物料组,带不出会计科目,创建不了采购申请,所以提出这样的增强需求,保证会计科目能自动带出。
SAP软件创建成本中心采购订单带出默认会计科目和成本中心的配置介绍
下面详细介绍下实施步骤:
增强方法:
1.二代功能模块增强:MEREQ001
功能模块:EXIT_SAPLMEREQ_010
2.三代增强BADI:ME_PROCESS_REQ_CUST
IF_EX_ME_PROCESS_REQ_CUST~CHECK
上面两种增强方式都可实现对采购申请保存前的各字段的约束条件的检查。
下面详细介绍下使用二代功能模块增强的详细实施步骤
具体操作步骤:
使用事务码CMOD创建增强实施项目。

备注:如果需要传输选择包保存,不需要传输选择本地对象即可
点击本地对象继续按如下步骤操作

双击进入如下界面:


在上面界面写上增强代码,点击保存->激活,最后激活增强项目。
增强源代码:
DATA:ls_eban LIKE LINE OF im_t_eban,ls_message TYPE bapiret2,cutsrt(1) TYPE c.
LOOP AT im_t_eban INTO ls_eban.cutsrt = ls_eban-matkl(1). "取物料组的第1位IF ls_eban-knttp = 'K' AND cutsrt <> 'Z' .ls_message-type = 'E'.ls_message-id = 'ZMM'."消息类ls_message-number = '009'.ls_message-row = ls_eban-bnfpo.APPEND ls_message TO ex_messages. "可以将错误消息保存到EX_MESSAGES中ENDIF.
ENDLOOP.
增强实施完成后,创建或修改采购申请保存时候,系统就会按增强逻辑检查,如果检查不符合逻辑,系统报错提示,实际效果如下图。

往期相关文章荐读:
SAP软件MM模块项目实施中常用增强之一:采订单收货后不能修改价格
SAP软件MM模块项目实施中常用增强之二:MB51报表增加字段
SAP软件MM模块项目实施中常用增强之三:采购订单的屏幕增强
相关文章:
SAP ERP系统MM模块常用增强之四:采购申请输入字段的校验检查
在SAP/ERP项目的实施中采购管理模块(MM)的创建和修改采购申请一般都会有输入字段校验检查的需求,来防止业务人员录入错误或少录入数据,这方面需求部分是可以通过配置实现,比如一些字段是否必输,是否显示等&…...
STM32C0介绍(1)----概述
概述 STM32C0系列微控制器是意法半导体公司推出的一款低功耗、高性能的微控制器产品。它们被设计用于需要小型、低功耗和高度可集成的应用程序,如传感器、消费品、电池供电设备、家庭自动化和安全等应用。该系列的微控制器采用ARM Cortex-M0内核,具有丰…...
windows无盘启动技术开发之传统BIOS(Legacy BIOS)引导程序开发之一
by fanxiushu 2023-03-01 转载或引用请注明原始作者。这个话题可能有点老,UEFI BIOS 已经大量存在,而Legacy BIOS最终会被取代。但是也是作为无盘启动技术里不可或缺的,毕竟还有许多老型号的电脑存在,而且为了兼容性,有…...
mysql实现if语句判断功能的六种使用形式
文章目录 前言一、ifnull函数二、nullif函数三、if函数四、if语句(多用于存储过程)五、if-else语句(多用于存储过程)六、if-elseif-else语句(多用于存储过程)总结前言 在Mysql数据库中实现判断功能有很多方式,具体又分为函数和if语句形式,函数的好处是可以作为sql的一…...
在Vue3这样子写页面更快更高效
前言 在开发管理后台过程中,一定会遇到不少了增删改查页面,而这些页面的逻辑大多都是相同的,如获取列表数据,分页,筛选功能这些基本功能。而不同的是呈现出来的数据项。还有一些操作按钮。 对于刚开始只有 1ÿ…...
做软件测试,如何才能实现月入20K?
听我的,测试想要月入20k。 首先你要去大厂,不在大厂起码也得在一线城市,北上广深。 二线城市的话成都、杭州最好。 不然的话想都不要想。 像我之前整理过成都的公司,除了字节跳动、蚂蚁金服、滴滴、美团、京东、平安、字节跳动…...
mysql last lesson
1:创建用户 create user zhang identified by 12345678;2:给用户授权,撤销授权, grant.......to revoke ....... 3:将数据库中的数据导出 C:\Windows\system32>mysqldump bjpowernode>C:\bjpowernode.sql -uroot -p12345678 4&#…...
一、Redis入门概述(是什么,能干嘛,去哪下,怎么玩)
一. redis是什么? Redis:REmote Dictionary Server(远程字典服务器)官方解释: Remote Dictionary Server(远程字典服务)是完全开源的,使用ANSIC语言编写遵守BSD协议,是一个高性能的Key-Value数据库提供了丰富的数据结构ÿ…...
(六十二)当我们在SQL里进行分组的时候,如何才能使用索引?
今天我们接着上次的内容来谈谈在SQL语句里假设你要是用到了group by分组语句的话是否可以用上索引,因为大家都知道,有时候我们会想要做一个group by把数据分组接着用count sum之类的聚合函数做一个聚合统计。 那假设你要是走一个类似select count(*) fr…...
python字符串练习
python字符串练习 1.去掉字符串中所有的空格 s This is a demo print(s.replace( , )) 2.获取字符串中数字的个数 data input("请输入一些字符串:") a 0 for i in data:if i.isdigit():a a 1 print("数字个数:", a)3.将字母全部转换为…...
Java-封装、继承、多态
封装 访问控制权限又成为“封装”,是面向对象三大特征中的一种。核心是,只对需要的类可见。 继承 继承是所有OOP(Object Oriented Programming)语言和Java语言都不可或缺的一部分。 只要创建一个类,就隐式继承自Obje…...
问题三十二:离散二维傅立叶变换(Discrete Fourier Transformation)
为了将灰度图像表示为频谱图,我们需要进行以下步骤: 加载图像并将其转换为灰度图像。对图像进行二维离散傅里叶变换。将变换结果表示为幅度谱和相位谱。可以对幅度谱和相位谱进行可视化,以查看频率分布。对幅度谱和相位谱进行逆变换…...
恢复谷歌翻译的究极方法
谷歌翻译为什么会失效,我想各位在去年11月的时候就知道了。可是要怎么解决失效的问题呢?之前我们是通过手动Ping可以连接的ip各位可能觉得麻烦,心里觉得什么档次还要我手动ping就没有可以自动扫描的吗?还别说真的有我最近发现一个…...
string函数以及string常用接口
本文介绍的是C关键字string中一些重要用法,以及各种字符串序列的处理操作 ——飘飘何所似,天地一沙鸥 文章目录前言一、string(字符串类)二、string类对象的容量操作2.1 size/length2.2 capacity2.3 empty/clear2.4 resize/reser…...
分享一篇由C语言实现《数据结构》无头无循环单链表
三月,你好,各位csdn uu们好 文章目录前言一、何为单链表二、单链表基本操作(增,删,查,改,销毁,遍历)1.查找与修改、销毁与遍历2.链表插入与删除操作三、单链表 VS 顺序表…...
C盘爆满?两个超简单的解决办法
我们在使用电脑的过程中,经常容易出现C盘爆红,反而其他盘还有大量可用空间的情况。为什么会这样呢?其实主要就两种原因:一是电脑使用习惯不好,不管什么软件都默认安装在C盘,大文件又喜欢放在桌面࿰…...
ThreadLocal
ThreadLocalThreadLocalMapgetsetremove内存泄漏key用强/弱引用entry继承了弱引用ThreadLocal 一个对象的所有线程会共享其全局变量——>线程不安全 解决方式: 方式一:同步机制,加锁(时间换空间) 方式二:…...
Java基础:JDK7-时间Date
JDK7以前时间相关类 1.Date Date date new Date(); , sout(date)得到的是现在所处位置的时间 Date date new Date(0L); , sout(date)得到的是时间原点也就是1970年1月1日08:00(东八区). date.setTime(1000L); sout(date)得到的是时间原点后一秒钟的时间 long time date.g…...
什么是IP地址?
IP协议中还有一个非常重要的内容,那就是给因特网上的每台计算机和其它设备都规定了一种地址,叫做“IP 地址”。由于有这种地址,才保证了用户在连网的计算机上操作时,能够高效而且方便地从千千万万台计算机中选出自己所需的对象来。…...
4年经验之谈,什么是接口测试?怎样做接口测试?
一、什么是接口?【文末学习资源分享】赶紧嫖!冲!!!! 接口测试主要用于外部系统与系统之间以及内部各个子系统之间的交互点,定义特定的交互点,然后通过这些交互点来,通过…...
python打卡day49
知识点回顾: 通道注意力模块复习空间注意力模块CBAM的定义 作业:尝试对今天的模型检查参数数目,并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...
从WWDC看苹果产品发展的规律
WWDC 是苹果公司一年一度面向全球开发者的盛会,其主题演讲展现了苹果在产品设计、技术路线、用户体验和生态系统构建上的核心理念与演进脉络。我们借助 ChatGPT Deep Research 工具,对过去十年 WWDC 主题演讲内容进行了系统化分析,形成了这份…...
渗透实战PortSwigger靶场-XSS Lab 14:大多数标签和属性被阻止
<script>标签被拦截 我们需要把全部可用的 tag 和 event 进行暴力破解 XSS cheat sheet: https://portswigger.net/web-security/cross-site-scripting/cheat-sheet 通过爆破发现body可以用 再把全部 events 放进去爆破 这些 event 全部可用 <body onres…...
【项目实战】通过多模态+LangGraph实现PPT生成助手
PPT自动生成系统 基于LangGraph的PPT自动生成系统,可以将Markdown文档自动转换为PPT演示文稿。 功能特点 Markdown解析:自动解析Markdown文档结构PPT模板分析:分析PPT模板的布局和风格智能布局决策:匹配内容与合适的PPT布局自动…...
华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
UR 协作机器人「三剑客」:精密轻量担当(UR7e)、全能协作主力(UR12e)、重型任务专家(UR15)
UR协作机器人正以其卓越性能在现代制造业自动化中扮演重要角色。UR7e、UR12e和UR15通过创新技术和精准设计满足了不同行业的多样化需求。其中,UR15以其速度、精度及人工智能准备能力成为自动化领域的重要突破。UR7e和UR12e则在负载规格和市场定位上不断优化…...
聊一聊接口测试的意义有哪些?
目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开,首…...
有限自动机到正规文法转换器v1.0
1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...
用机器学习破解新能源领域的“弃风”难题
音乐发烧友深有体会,玩音乐的本质就是玩电网。火电声音偏暖,水电偏冷,风电偏空旷。至于太阳能发的电,则略显朦胧和单薄。 不知你是否有感觉,近两年家里的音响声音越来越冷,听起来越来越单薄? —…...
Mysql中select查询语句的执行过程
目录 1、介绍 1.1、组件介绍 1.2、Sql执行顺序 2、执行流程 2.1. 连接与认证 2.2. 查询缓存 2.3. 语法解析(Parser) 2.4、执行sql 1. 预处理(Preprocessor) 2. 查询优化器(Optimizer) 3. 执行器…...
