转自:https://blog.csdn.net/wbin9752/article/details/7951390

以生产订单收货为例:

1、BADI的查找方法:

SE38在程序中搜索关键字CL_EXITHANDLER

或SE24(CL_EXITHANDLER)在方法GET_INSTANCE中打断点,然后运行相应事物码扑捉BADI

然后运行MB31事务码

假若找到可以使用的BADI为MB_DOCUMENT_BADI。

2、BADI应用

可以使用SE18查看该BADI,可以看到改BADI对应的接口,接口中定义的方法及参数传递。

然后SE19  Implementation该BADI

点击“创建”

点击“保存”

然后就可以在此添加代码了。

注:接口编码BADI加前缀IF_CL_,客户类编码ZCL_IM_

3、BADI原理

调用BADI时,MB31对应程序中有如下代码

打断点分析函数GET_IINSTANCE返回值mb_document_badi

返回值为 {O:79*\CLASS=CL_EX_MB_DOCUMENT_BADI},在执行函数mb_document_before_update过程,会执行

跟踪会发现,系统一直调用类CL_EX_MB_DOCUMENT_BADI做中间处理,在最后一步才调用ZCL_IM_MBPOST执行自定义程序。

---------------------
作者:wbin9752
来源:CSDN
原文:https://blog.csdn.net/wbin9752/article/details/7951390
版权声明:本文为博主原创文章,转载请附上博文链接!

最新文章

  1. while do while 穷举和迭代
  2. HDU 5793 A Boring Question (逆元+快速幂+费马小定理) ---2016杭电多校联合第六场
  3. 什么是动态语言 OC 的runtime
  4. Android系统四层架构分享
  5. create feature from text file
  6. Javascript url 小逻辑
  7. sgu Kalevich Strikes Back
  8. 关于Eclipse+SVN 开发配置
  9. Webpack 代码分离
  10. NET Core微服务之路:弹性和瞬态故障处理库Polly的介绍
  11. 阿里云搭建JAVA WEB环境(SQL Server + TomCat + 配置域名)
  12. 在linux下用命令行编译 java的eclipse项目
  13. CentOS7离线安装TIDB
  14. ORA-01591 锁定已被有问题的分配事务处理--解决方法(转)
  15. spring cloud feign 上传文件报not a type supported by this encoder解决方案
  16. How to Use Postman to Manage and Execute Your APIs
  17. Java技术栈
  18. php安装--php-5.3.28
  19. iOS下微信语音播放之切换听筒和扬声器的方法解决方案
  20. Java使用POI导出excel(下)——实例与小技巧

热门文章

  1. spark几个错误
  2. Java基础 线程的通信的三个方法/ 交替数数线程 / 生产者&消费者线程问题
  3. 【简易DFS/BFS+标记搜索次序的数组】zznu-2025 : 简单环路
  4. bind(),call(),apply()
  5. linux学习-添加多个硬盘和lvm配置
  6. validatebox自定义验证规则以及使用
  7. .net FileUpload上传图片 图片转换二进制,以及保存显示
  8. C语言学习系列(五)变量和常量
  9. 关于npm audit fix
  10. jQuery.extend([deep], target, object1, [objectN])