ABAP - 三代增强 BADI

news2024/11/28 8:27:46
  • SAP ERP提供了大量的标准功能,但是用户的需求是多种多样的,如何使SAP的标准功能适应用户的需求就变得非常重要,SAP Enhancement技术允许我们对SAP的标准功能进行扩展,以满足用户的个性化需求;
  • SAP保证所有的BADI向上兼容,意义在于如果目前使用SAP进行版本更新迭代不会影响标准程序原有增强的正确性,即版本升级,已经实施的增强还能继续使用。
  • BADI是SAP增强的技术之一,基于SAP面向对象的SAP增强技术,技术架构如下图所示:

        

  • BADI相关名词        ​​​​​​

        Enhancement Spot :增强点,可以说是一种容器,用于管理BADI,功能类似于函数组,一个函数组里可以创建多个函数,一个 Enhancement Spot 包含多个BADI。

        Definition(定义):BADI定义,使用事物码SE18创建,SAP预留很多BADI。

        Implementation(实现):BADI实现,用事物码SE19对BADI进行实施,也可以自己在BADI界面实施。

  • SAP三代增强:实施调用SAP系统预留的BADI以满足用户的个性化需求。
  • 使用TCODE SE18 创建BADI,TIPS:先激活定义的接口在进入SE18激活BADI。

在增强点输入以Z开头命名的增强点   

  

 创建完增强点后创建BADI

 给BADI定义接口 

 增加一个实例方法  

  给实例方法提供参数

  • 使用SE19创建BADI实施

 选择BADI实施

对实施类的方法进行重写

编写代码保存激活

以上步骤BADI的创建和实施就完成了,接下来是调用BADI

代码:


DATA lo_badi TYPE REF TO zbadi_kj_01.

DATA lv_id   TYPE i VALUE 110.
DATA lv_name TYPE string.

GET BADI lo_badi.

CALL BADI lo_badi->get_name
  EXPORTING
    i_id   = lv_id
  CHANGING
    e_name = lv_name.

WRITE:lv_name.

效果:


  • 上面讲解了BADI的定义和BADI的实施调用,那么接下来讲SAP三代增强。
  • SAP三代增强:SAP在很多标准程序提供了很多调用BADI的语法,本质上是提供了一个调用接口,SAP开发人员只需要对BADI进行实施,在接口的实现类书写业务代码逻辑对SAP的标准功能进行扩展以适应用户个性化的需求,形成了意义上的SAP增强。在VA02的包含程序中可以看到很多预留好的BADI被调用。
  • 查找标准程序中使用了哪些BADI
  • 使用事务码 SE24 输入CL_EXITHANDLER,显示,然后双击在14行处打断点 
  • 然后在需要增强前台事务码操作就会出现DEBUG界面。
  • 对BADI进行实施操作即可。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Stable Diffusion之Ubuntu下部署

1、安装conda环境 conda create -n webui python3.10.6 2、激活环境 每次使用都要激活 conda activate webui 注意开始位置的变换 关闭环境 conda deactivate webui 3、离线下载SD 代码 https://github.com/AUTOMATIC1111/stable-diffusion-webui https://github.com/Stabilit…

小红书app缓存清除

1.背景 小伙伴们,手机app运行产生的缓存在不断侵占着我们的收集的内存,运行个半年发现内存不足20%。其实很多情况我们通过各个手机自带的缓存清除功能,就可以把app运行过程中产生的内存清除掉,节省我们不少的空间。想一想手机上a…

【FreeRTOS】使用CubeMX快速移植FreeRTOS工程到蓝桥杯开发板(STM32G431RBT6)

使用CubeMX快速创建FreeRTOS工程到蓝桥杯开发板(STM32G431RBT6) CubeMX配置CubeMX基础工程的配置☆FreeRTOS相关配置FreeRTOS配置选项卡的解释 软件工程架构与程序设计小综合:任务的创建删除、挂起与恢复设计cubexMX配置创建任务软件程序设计…

前端服务请求跨域被拦截,Java后端Springboot服务解决办法

跨域问题 跨域前端遇到的问题: Access to XMLHttpRequest at ‘http://www.xxx.xxxx/api/x/d/xc’ from origin ‘http://127.0.0.1:3000’ has been blocked by cors policy: No ‘Access-Contorl-Allow-Origin’ header is present on the requested resource. …

8.Jetson AGX Orin Ubuntu20.04 gRPC编译安装

Jetson AGX Orin Ubuntu20.04 gRPC编译安装 一、CMake版本检查 grpc编译cmake要求最低版本为3.15。首先,cmake -version 查看当前cmake版本,如果低于3.15,按照以下步骤进行安装。 1.1 卸载已经安装的旧版的CMake sudo apt-get autoremove…

Golang插件系统实现

插件可以在解耦的基础上灵活扩展应用功能,本文介绍了如何基于Golang标准库实现插件功能,帮助我们构建更灵活可扩展的应用。原文: Plugins with Go 什么是插件 简单来说,插件就是可以被其他软件加载的软件,通常用于扩展应用程序的功…

嵌入式学习56-ARM5(linux驱动启动程序)

知识零碎: bootm: 启动内核同时给内核传参 …

VAR:自回归家族文生图新SOTA,ImageNet上超越Diffusion与DiTs

一、背景: 在人工智能领域,尤其是计算机视觉和自然语言处理中,自回归(AR)大型模型(如GPT系列)因其强大的生成能力和在多种任务上的通用性而受到广泛关注。这些模型通过自监督学习策略&#xff0…

Android 性能优化(七):APK安装包体积优化

包体积优化重要性 移动 App 特别关注投放转化率指标,而 App 包体积是影响用户新增的重要因素,而 App 的包体积又是影响投放转化率的重要因素。 Google 2016 年公布的研究报告显示,包体积每上升 6MB 就会带来下载转化率降低 1%, …

获取公募基金净值【数据分析系列博文】

摘要 从指定网址获取公募基金净值数据,快速解析并存储数据。 (该博文针对自由学习者获取数据;而在投顾、基金、证券等公司,通常有Wind、聚源、通联等厂商采购的数据) 导入所需的库:代码导入了一些常用的库…

CSS3 伪元素与伪类选择器区别、详解与应用实例

伪元素与伪类两者都是通过在选择器后附加一个特定的关键字来定义,遵循相似的语法规则,并在 CSS 规则块中设置相应的样式。伪元素 能够通过 content 属性添加或替换内容。例如,:before 和 :after 可以插入文本、图像或其他生成的内容。伪类 仅…

Go 单元测试之Mysql数据库集成测试

文章目录 一、 sqlmock介绍二、安装三、基本用法四、一个小案例五、Gorm 初始化注意点 一、 sqlmock介绍 sqlmock 是一个用于测试数据库交互的 Go 模拟库。它可以模拟 SQL 查询、插入、更新等操作,并且可以验证 SQL 语句的执行情况,非常适合用于单元测试…

数据赋能(58)——要求:数据赋能实施部门能力

“要求:数据赋能实施部门能力”是作为标准的参考内容编写的。 在实施数据赋能中,数据赋能实施部门的能力体现在多个方面,关键能力如下图所示。 在实施数据赋能的过程中,数据赋能实施部门应具备的关键能力如下。 理性思维与逻辑分…

ES源码四:网络通信层流程

听说ES网络层很难?今天来卷它😄 前言 ES网络层比较复杂,分为两个部分: 基于HTTP协议的REST服务端基于TCP实现的PRC框架 插件化设计的网络层模块(NetworkModule) 入口还是上一章的创建Node构造方法的地方…

如何爬出 Kotlin 协程死锁的坑?

作者:悬衡 一、前言 在 Java 中有一个非常经典的死锁问题, 就是明明自己已经占用了线程池, 却还继续去申请它, 自己等自己, 就死锁了, 如下图和代码: // 这段代码将死锁到天荒地老final ExecutorService executorService Executors.newSingleThreadExecutor();exe…

4月27日复旦大学-华盛顿大学EMBA项目教授分享暨招生说明会

复旦大学-华盛顿大学EMBA项目2024年4月27日精彩看点:      国际视野助推商业价值,“她力量”赋能管理      数字营销浪潮中,如何重新定义价值创造      主讲嘉宾    复旦大学-华盛顿大学EMBA项目教授分享暨招生说明会     …

Redmi Turbo 3新品发布,天星金融(原小米金融)优惠加持护航新机体验

Redmi新十年使命不变,挑战不断升级。Redmi Turbo 3,作为Turbo系列的开篇之作,将自身定位为新生代性能旗舰,决心重塑中端性能新格局。据悉,Redmi Turbo 3于4月10日已正式发布。预售期间更是连续数日,蝉联小米…

C++:文件内容完全读入

在上一篇文章中我留下了一点小坑:使用>> 运算符,这个运算符默认将空格作为分隔符,所以在文件内容读取的时候发现在读到空格时就会停止读取,导致读取内容不完整,这显然不符合日常的使用用能,那么今天就…

科学突破可能开创6G通信新时代

格拉斯哥大学开发的火柴盒大小的天线可以为全息通话、改进自动驾驶和更好的医疗保健的世界铺平道路。 格拉斯哥大学表示,这种创新的无线通信天线将超材料的独特特性与复杂的信号处理相结合,有助于构建未来的 6G 网络。 数字编码动态超表面天线&#xf…

python-flask结合bootstrap实现网页小工具实例-半小时速通版

参考: Python之flask结合Bootstrap框架快速搭建Web应用_支持bootstrap的python软件-CSDN博客 https://blog.csdn.net/lovedingd/article/details/106696832 Bootstrap 警告框 | 菜鸟教程 https://www.runoob.com/bootstrap/bootstrap-alert-plugin.html flask框架…