第三代增强BADI-增强点(新Badi)多个实施

2024-04-30 16:04

本文主要是介绍第三代增强BADI-增强点(新Badi)多个实施,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 第三代增强BADI-增强点(新Badi)多个实施
    • 创建增强点
    • BADI的实现
    • 多个BADI/ Enhancement实现时究竟调谁
    • 过滤器
    • 回调类
    • 测试程序

第三代增强BADI-增强点(新Badi)多个实施

创建增强点

在这里插入图片描述

BADI的实现

由于一个BADI的实现可以有多个类,这些多个实现类需要组织(打包、捆绑)在一起(与多个BADI放在一个Enhancement Spot容器中是一个概念),所以需要创建一个新的BADI增强实现容器ZIM_BADI_DEM001:
在这里插入图片描述

多个BADI/ Enhancement实现时究竟调谁

在同一Enhancement Implementation中(如下图中的ZIM_BADI_DEM001),不同的BADI Implementations(ZIM_BADI_DEM001、ZIM_BADI_DEM002)之间究竟选谁的问题,是由 缺省实施(Default Implementation)、活动实施(Implementation is active)选项共同来决定的,且在同一时间内只能有一个BADI Implementations能被激活调用,所以要通过这两个选项来控制究竟谁被用来当作当前实现被使用,是否被使用也可通过图中的 “运行时行为”说明文字来查看:
在这里插入图片描述

过滤器

在这里插入图片描述

回调类

如果某个BADI没有实现时,则在调用时会Dump,为了在没有实现时,需实现一个默认的回调类。如SAP系统提示的标准BADI都会有默认实现,同时也是simple例子。

在这里插入图片描述


METHOD zif_badi_demo01~write.MESSAGE 'FALLBACK' TYPE 'I'.
ENDMETHOD.

在这里插入图片描述

测试程序

使用SE38创建程序,点击“创建”按钮:
在这里插入图片描述

REPORT  zbadi_test.START-OF-SELECTION.DATA lo TYPE REF TO zbadi_demo01. "定义BADIGET BADI loFILTERSfilter1 = 'A'.  "通过GET BADI得到我的实现类,如果过滤条件不成立的话将什么都不执行;CALL BADI lo->write.  "调用BADI

这篇关于第三代增强BADI-增强点(新Badi)多个实施的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/949304

相关文章

struts2中的json返回指定的多个参数

要返回指定的多个参数,就必须在struts.xml中的配置如下: <action name="goodsType_*" class="goodsTypeAction" method="{1}"> <!-- 查询商品类别信息==分页 --> <result type="json" name="goodsType_findPgae"> <!--在这一行进行指定,其中lis是一个List集合,但

一款支持同一个屏幕界面同时播放多个视频的视频播放软件

GridPlayer 是一款基于 VLC 的免费开源跨平台多视频同步播放工具,支持在一块屏幕上同时播放多个视频。其主要功能包括: 多视频播放:用户可以在一个窗口中同时播放任意数量的视频,数量仅受硬件性能限制。支持多种格式和流媒体:GridPlayer 支持所有由 VLC 支持的视频格式以及流媒体 URL(如 m3u8 链接)。自定义网格布局:用户可以配置播放器的网格布局,以适应不同的观看需求。硬

C# 如何同时Ping多个IP地址

在C#中,如果需要同时ping多个IP地址,可以采用多线程或异步编程的方式来实现,以便可以同时进行多个ping操作。以下是两种常用的方法: 方法一:使用多线程(Task 或 Thread) 使用Task是更现代和推荐的方式,因为它内置了更好的线程管理和异常处理机制。以下是一个使用Task的示例,展示如何同时ping多个IP地址: using System; using System.Co

多个vue项目部署到nginx服务器

文章目录 需求一、项目打包1.vue.config.js2.request.js文件3.打包 二、nginx配置 需求 同一个域名安装多个vue项目。 比如:域名为 https://domain.com + 后缀。那么通过不同的后缀就能去访问不同的项目地址。 https://domain.com,不加任何后缀,访问官网。 https://domain.com/admin

在幼儿园管理系统中,会议管理申请会议修改模块:多个与会人员的回显和修改(编辑)!

在幼儿园管理系统中,会议管理>申请会议>修改模块:多个与会人员的回显(复选框)和修改(编辑)!在处理与会人员的回显(复选框)和修改(编辑)出点问题。无法正确的回显(复选框)出来与会人员和修改(编辑)。 最后终于解决:修改(编辑)的思路是:先把原来的该会议记录下的所有与会人员删除,在添加,即可实现修改(编辑)功能。回显(复选框)的思路是:设置一个flag,判断一下是否要选中(复选框),即可实现

CAD 多个页面在一个任务栏图标设置

命令行输入快捷键op或: 下图打对号,确定即可。

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示

Jasperreports+jaspersoft studio 实现单个或多个jrxml(jasper)文件生成一个pdf文件,并利用Servlet发送该pdf文件到浏览器中展示; 代码如下: Demo07.jrxml <?xml version="1.0" encoding="UTF-8"?><!-- Created with Jaspersoft Studio version 6.6.

【IDEA】建立多个子模块依赖于一个父模块(maven)

第一步,建立父模块(在IDEA中就是工程) 第二步,选中父模块(也就是工程)右键New Module建立子模块 勾选创建模板原型并一般选择 maven-archetype-quickstart,当创建web模块时选择 maven-archetype-webapp 其他子模块都是类似这样创建~ packaging打包类型有: jar,默认类型warejbea

ubuntu安装多个版本的g++和gcc,并设置默认版本的c++和g++

https://blog.csdn.net/yoyofu007/article/details/102934990