首页 > 其他分享 >什么是 SAP ABAP Modification-free enhancements

什么是 SAP ABAP Modification-free enhancements

时间:2023-12-12 13:04:35浏览次数:26  
标签:逻辑 enhancements 自定义 sales free ABAP BAdIs SAP order

"Modification-free enhancements" 是 SAP ABAP 中一种开发技术,旨在允许开发者对 SAP 标准对象进行增强而无需进行修改。这种方法可以确保在将来升级或应用支包时,不会影响到已有的修改。Modification-free enhancements 的主要思想是通过使用 Enhancement Framework 提供的工具,如 BAdIs(Business Add-Ins)和隐式增强点,来实现对标准 SAP 代码的扩展而不是直接修改它。

首先,让我们了解一下 Enhancement Framework 的两个主要元素:BAdIs 和增强点。

  1. BAdIs(Business Add-Ins):
    BAdIs 是 SAP 提供的一种强大的扩展机制,允许开发者在标准程序中插入自定义代码。BAdIs 提供了一个框架,开发者可以在预定义的关键点(如方法调用前后)插入自己的逻辑。在 SAP ABAP 中,BAdIs 是通过接口定义的,而实际的实现则是通过类来完成的。这种方式使得在不修改标准代码的情况下,可以引入自定义逻辑。
    举例来说,假设我们要在 SAP 的销售订单创建时执行自定义逻辑。我们可以使用 BAdI BADI_SALES_ORDER,在其预定义的方法中插入我们的代码。这样,在 SAP 更新销售订单的标准代码时,我们的自定义逻辑仍然有效。
INTERFACE badi_sales_order.
  METHODS if_ex_sales_order~create_before.
ENDINTERFACE.

CLASS zcl_sales_order_badi DEFINITION.
  PUBLIC SECTION.
    INTERFACES: badi_sales_order.
ENDCLASS.

CLASS zcl_sales_order_badi IMPLEMENTATION.
  METHOD if_ex_sales_order~create_before.
    " 自定义逻辑
  ENDMETHOD.
ENDCLASS.
  1. 增强点:
    SAP 的增强点是在标准程序中留下的特定位置,允许开发者插入自己的代码。这些增强点通过 Enhancement Framework 管理,可以通过事务码 CMOD 进行配置。增强点允许开发者在标准代码的特定位置添加自定义逻辑,而不会直接修改标准对象。
    例如,在 SAP 的物料主数据维护中,我们可以通过增强点在保存物料数据之前插入自定义逻辑,而无需修改标准的保存逻辑。这样,当 SAP 更新物料主数据维护程序时,我们的自定义逻辑仍然保持有效。
DATA: lv_material TYPE mara-matnr.

ENHANCEMENT-POINT IMP_BEFORE_SAVE_SPOTS_SPOT.
  " 自定义逻辑
END-ENHANCEMENT-POINT.

通过使用 BAdIs 和增强点,开发者可以在不修改标准代码的情况下实现对 SAP 标准对象的增强。这样的开发方式有助于降低系统维护的复杂性,使得系统更容易升级和保持更新。

然而,需要注意的是,并非所有的情况都可以通过 BAdIs 和增强点来实现修改无关的增强。在某些情况下,可能需要结合其他技术,如隐式扩展(Implicit Enhancements)或用户退出(User Exits)来完成特定的定制需求。总的来说,使用 Modification-free enhancements 技术是一种良好的实践,有助于确保系统的稳定性和可维护性。



标签:逻辑,enhancements,自定义,sales,free,ABAP,BAdIs,SAP,order
From: https://blog.51cto.com/jerrywangsap/8785348

相关文章

  • 什么是 SAP ABAP System Change Option
    系统更改选项(SystemChangeOption)是SAP中用于控制对系统中对象的修改权限的一种机制。在SAP系统中,有许多关键的对象,如程序、表、视图等,这些对象的修改需要谨慎操作,以确保系统的稳定性和一致性。系统更改选项提供了一种灵活的方式,允许管理员对系统中的对象进行精细的权限控制,以防止......
  • SAP ABAP 显式增强技术之 New BAdI 的技术原理介绍试读版
    本教程之前的文章,对SAPABAP各种增强技术做了一个概述:122.SAPABAP各种增强技术(Enhancement)概述-所谓第一代,第二代,第三代增强技术的出处是?然后第62篇文章,针对下图红色区域的基于EnhancementFramework增强技术中的隐式增强之ABAP报表增强,做了详细介绍:62.如何通过增......
  • SAP ABAP 各种增强技术(Enhancement)概述 - 所谓第一代,第二代,第三代增强技术的出处试
    本文回答笔者这篇教程:如何通过增强(Enhancement)的方式给SAPABAP标准程序增添新功能评论区的读者留言:这个和第一二三四代以及badi增强有什么联系呢?笔者从2007年一月就在SAP中国使用ABAP进行SAP产品开发了,说实话SAP内部不会把ABAP各种增强技术简单得冠之以第一代,第二......
  • FreeRTOS中的事件组:实现任务同步与通信的强大工具
    引言:在实时嵌入式系统中,任务同步和通信是至关重要的,而FreeRTOS提供的事件组(EventGroups)机制为实现这一目标提供了一种高效且灵活的解决方案。本篇博客将深入研究FreeRTOS中的事件组,详细介绍其原理、使用方法,以及在实际应用中的一些最佳实践。事件组原理:事件组是FreeRTOS中的一种......
  • free内存参数介绍
    第一部分Mem行:total内存总数:15.7Gused已经使用的内存数:15.6Gfree空闲的内存数:93Mshared当前已经废弃不用,总是0buffersBuffer缓存内存数:298McachedPage缓存内存数:14G对操作系统来讲是Mem的参数,buffers/cached都是属于被使用,所以它认为free只有93M......
  • 使用FreeFileSync快速实现本地数据备份与FTP远程数据迁移
    数据是电脑中最重要的东西。为了保证数据安全,我们经常会对数据进行备份。之前一直采用将重要数据拷贝至移动硬盘的方式实现备份,实现简单但每次都需要把所有文件拷贝一次,当文件很大时效率较低。因此,考虑使用FreeFileSync软件实现数据备份。该软件使用C++语言编写、免费、开源......
  • Cgroup Freezer 【ChatGPT】
    https://www.kernel.org/doc/html/v6.6/admin-guide/cgroup-v1/freezer-subsystem.htmlCgroupFreezercgroup冷冻器对于批处理作业管理系统非常有用,该系统可以启动和停止一组任务,以便根据系统管理员的需求安排机器的资源。这种程序通常用于HPC集群,以安排对整个集群的访问。cgr......
  • CF1894E Freedom of Choice
    CF1894E数据范围多少有点诈骗首先考虑\(m=1\)的情况容易发现这个\(l_i,r_i\leq10^{17}\)不是很对劲,因为直觉上感觉如果区间可取范围过大答案就是\(0\)我们可以取一个不是那么严格的限制条件来约束他,当\(r-l>n\)时,答案肯定是\(0\)。这样我们就把区间长度取到了\(10^......
  • 使用FreeMacker生成静态页面
             我们在生成静态页面时需要先new一个configuration对象,并将Freemacker的版本给它,如果我们的模板是文件则我们需要获得他的路径,以及使用DirectoryForTemplateLoading驱动,如果是字符串,则使用StringTemplateLoader驱动,通常我们是用的字符串驱动,之后我们将模板驱动放......
  • freeswitch如何解决sip信令的NAT问题
     概述freeswitch是一款简单好用的VOIP开源软交换平台。公网环境复杂多变,客户环境更是各种稀奇古怪的问题。fs在针对sip信令的NAT问题有针对性的参数设置。本文讨论的范围限于fs的公网地址正常没有在NAT后面的两种常见场景。其他更多更复杂的NAT场景暂不讨论。环境centos:C......