MB21创建预留/MB22修改预留增强

一.预留抬头增强

背景:项目中要求对MB21建立的预留抬头成本中心进行校验,如下图,需要屏幕增强:
在这里插入图片描述
1.我们通过F1发现,抬头的成本中心字段在SAPLKACB这个程序的1001屏幕中,如图,双击屏幕号进入:
在这里插入图片描述
2.点击子例程,对函数组KACB的子例程进行查找,如图:
在这里插入图片描述
3.很容易就查询到CUSTOMER_EXIT字样的子例程,分别代表屏幕的PAI/PBO用户屏幕增强:

在这里插入图片描述
4.我们这段增强是在屏幕输入的时候进行判断,所以需要增加在customer_exit_pai模块中,查找到屏幕出口CALL CUSTOMER-FUNCTION ‘002’,如图:
在这里插入图片描述
5.通过查找表MODSAP得到增强名,我们需要在CMOD中创建自定义增强项目ZSY_MB21并将查询到的增强放入组件,并激活。
在这里插入图片描述

在这里插入图片描述
6.因为此增强点涉及到多个标准程序的复用,所以需要限制Tcode,如下图在这里插入图片描述
7.在增强点处理完之后,激活并测试,发现符合需求。
在这里插入图片描述

二.预留明细增强

背景:要求库存地点增加必填校验,同时不同条件的物料移动状态不同。
在这里插入图片描述
1.F1查询到行项目在程序SAPMM07R屏幕0521中
在这里插入图片描述
2.重复使用刚才的出口增强查找方法,查询到了一个增强点MM07RFBO,测试发现此增强点是预留保存的增强位置;所以不适用
在这里插入图片描述
3.我们查询第三代增强BADI,通过查找类CALL METHOD cl_exithandler=>get_instance,查询到BADI:MB_RESERVATION_BADI
在这里插入图片描述
4.使用SE18进行查看,根据接口的定义,大致是数据进行检查和修改,我们激活这个BADI进行测试
在这里插入图片描述
在这里插入图片描述
5.创建实施ZEWM_MB_CREATE_RESER
在这里插入图片描述
在这里插入图片描述
6.构建类ZCL_IM_EWM_MB_CREATE_RESER,上面的方法是数据修改,下面的方法是数据检查,分别对应我们需求的修改移动状态和库存地点必填
在这里插入图片描述
7.写入代码,激活进行测试
在这里插入图片描述
8.校验生效,则增强位置是OK的
在这里插入图片描述
在这里插入图片描述
需要注意的是MB21/MB22是同一个程序,所以他们的增强点复用的,所以在代码中需要限制TCODE

  • 8
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值