SAP进阶技术分享一:ABAP增强(1)

news2024/10/9 12:26:09

一:基于源代码的增强

1.定义

  源代码增强以子程序形式发布,可以用PERFORM调用这些子程序,发布的时候是空的,提供一个空代码的子过程,用户可以添加自己的代码。

2.特点

  需要修改sap的标准代码。
  屏幕增强以客户屏幕形式发布,包含在标准程序中没有什么特别规律。
  源代码增强和屏幕增强的说明可以从事务码spro后台配置中相关模块的路径里面找到。
  可以用se11打开透明表,为数据表追加新的字段。

3.增强操作

  首先到service marketplace申请对象键,才能修改这些子程序。

4.查找增强方法

  第一步:打开SE38输入欲增强的程序;
在这里插入图片描述
  第二步:选择显示对象列表按钮,查找以”UserExit”开头的子程序,根据子程序前面的注释文档来查找用户出口;
在这里插入图片描述

5.缺点

  这种更改标准程序的方法现在很少使用,可能因为系统升级不能工作;而且改变了全局变量,还可能会破坏系统原有的逻辑。

二:出口

1.定义

  标准程序最后要调用的一个函数或者功能模块,这个函数或功能模块的输入已经由Sap定义好。

2.类型

  源代码、屏幕和表结构增强。
在这里插入图片描述

3.特点

  正常的业务系统不能满足实际需求,可以在出口中增加一些功能,来达到要求。
  自己写的SAP出口程序在系统升级时会被保留,如果是标准程序更改会被覆盖。

4.如何查找出口

  可以通过配置文档的帮助和SAP library寻找业务系统的出口,sap library在’implementation guide’中寻找出口,在说明文档中描述相关的出口。

5.怎么写出口程序

(1)专门管理出口程序的事务代码是CMOD(实现)、SMOD(维护);
(2)出口函数有标准处理程序传入的参数和输出参数;
(3)针对数据表的增强是CI_结构,这些结构以.INCLUED结构的形式包含在SAP发布的数据库表中,可以通过向这些结构中添加字段而对数据表进行增强。

三:基于函数模块的增强

1.定义

  源代码增强以函数模块形式发布,使用CALL CUSTOMER-FUNCTION调用这些函数模块,发布时只有一句代码INCLUDE xxxxxxx。增强的时候,直接双击这个包含,然后回车,就可以创建相关的包含文件,编写对应的代码。

2.特点

  只能使用接口中传递的参数,不能使用调用程序的全局变量。
  屏幕增强也包含在函数模块所属的函数组中。
  专门管理出口程序的事务代码是CMOD。

四:基于面向对象概念的增强

1.定义

  面向对象的增强就是BADI(Business Add-Ins),源代码增强以接口形式发布,也是通过接口(类接口)的方法调用来使用。
  用户增强时,实际是实现一个(或多个)基于这个接口的实现类,对一个增强可以有多种不同的源代码,通过过滤器应用于不同的业务场景。

2.特点

  通过EXIT_HEADLER查找BADI。
  使用事务码SE18创建、SE19实现。

五:Switch Framework

1.定义

  SAP从NetWeaver7.0以后推出的新增强体系,对BADI做出了改进,叫做新BADI。还新增了Enhancement SpotheEnhancement Section以及隐式增强点的概念,基本可以在面向对象里实现处处皆可增强的作用。

2.特点

  可以在任何有ENHANCEMENT-POINT的地方做增强。
  只能在程序的头和尾做增强。
  不像user-exit那么难找,不像badi那么麻烦,只需要在业务所对应的FM种找到ENHANCEMENT-POINT就可以,系统升级也不影响。

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

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

相关文章

opencv轮廓相关函数

查找轮廓contours, hierarchy cv2.findContours(image,mode,method)参数:image:寻找轮廓所使用的图像。(寻找过程不修改此图像)mode:模式。cv2.RETR_EXTERNAL只检测外轮廓;cv2.RETR_LIST检测的轮廓不建立等…

【Qt】10.Linux下,Qt连接云MySQL数据库

目录 下载MySQL压缩包 配置MySQL Qt下编译MySQL 测试 下载MySQL压缩包 网址: MySQL :: Download MySQL Community Server (Archived Versions)https://downloads.mysql.com/archives/community/ 我为了跟云服务器上的MySQL版本一致,减少不必要的麻…

带你手撕排序算法

文章目录前言一、排序的相关概念二、插入排序1.直接插入(1)算法思想(2)算法讲解(3)代码及解析(4)代码总结2.希尔排序( 缩小增量排序 )(1)算法思想&#xff08…

maxcomputer的分区表相关操作

– 查看xsxw(学生行为表定义) desc xsxw; – 查看xsxw1(学生行为表定义) desc xsxw1; – 上面的两张表是通过ddl语句创建的分区表 – 创建ddl语句如下 – CREATE TABLE IF NOT EXISTS xsxw1( – xwsj STRING COMMENT ‘行为时间’, – xh STRING COMMENT ‘学号’, – xwdd ST…

基于OptiSystem的LD\LED\EDFA仿真分析

1、客户需求: (1) 仿真LD、LED直接调制系统的输出光谱,观察系统输出性能。 (2) 采用EDFA的光纤通信系统,实现对多路光波信号的放大,实现200km、40Gbit/s的传输。用仿真软件搭建一个…

关系数据库——关系代数

文章目录一、传统的集合运算二、专门的关系运算1.选择(restriction)2.投影(Projection)3.连接(join)1)等值连接2)自然连接4.除(Division)一、传统的集合运算 …

《深入浅出计算机组成原理》学习笔记 Day17

冒险和预测(一)1. 结构冒险2. 数据冒险参考1. 结构冒险 结构冒险本质上是一个硬件层面的资源竞争问题,也就是一个硬件电路层面的问题。 CPU 在同一个时钟周期内,同时在运行两条计算机指令的不同阶段,但这两个不同阶段…

Github消息推送到Telegram,并使用Vercel部署

Github buibuibui Telegram 仓库地址:https://github.com/yesmore/gh-buibuibui-tg 借助 Github 的 Webhooks、Vercel’s Serverless API 和 Telegram Bot,连接 Github 和 Telegram,在 Telegram chat 中接收仓库的消息。 效果:你…

深入分析ConcurrentHashMap1.8的扩容实现

什么情况会触发扩容 当往hashMap中成功插入一个key/value节点时,有可能触发扩容动作: 1、如果新增节点之后,所在链表的元素个数达到了阈值 8,则会调用treeifyBin方法把链表转换成红黑树,不过在结构转换之前&#xff0…

做跨境电商日本市场,如何才能让客户满意?

跨境电商作为互联网技术的产物,现如今早就风靡全世界。我国跨境电商行业的发展起步时间比较晚,但在各方力量的加持下,行业的发展日趋完善,行业对国内经济的带动作用也更加明显。当下许多国潮品牌在Starday等跨境电商服务平台的支持…

如何选择研发效能管理平台?好用的研发效能管理平台有哪些

本文将对比介绍8款比较知名的效能度量管理平台:1.PingCode;2.思码逸;3.云效;4.金山云;5.Git;6.Jenkins;7.Bamboo;8.Docker。但在对比研发效能平台之前,我们先来聊一些研发…

Linux驱动开发基础__POLL机制

目录 1 适用场景 2 POLL机制的内核代码详解 2.1 sys_poll 函数 2.2 do_sys_poll 函数 2.3 do_poll函数 3 poll机制使用流程 4 驱动编程 5 应用编程 6 代码 6.1 gpio_key_drv.c 6.2 button_test.c 6.3 Makefile 可以看 字符设备驱动程序之poll机制 那篇文章中的机…

【认证相关】FTA

FTA 测试需要涉及的工作与流程测试大致流程及涉及的工作送测Lab 之前需做的准备工作项目与测试样机基本信息如下信息请填写发给MTK,以便MTK 了解基本的认证项目与产品信息PICS 相关MTK 会提供一份Chip 的default PICS,但是客户还需要自行修改一些项的Val…

分享154个ASP源码,总有一款适合您

ASP源码 分享154个ASP源码,总有一款适合您 下面是文件的名字,我放了一些图片,文章里不是所有的图主要是放不下..., 154个ASP源码下载链接:https://pan.baidu.com/s/1Jt3X-WAZv-rZswzjwyEtSQ?pwdt46u 提取码&#x…

【C++初阶】七、STL---vector模拟实现

目录 一、模拟实现接口总览 1.1 接口总览 1.2 vector整体框架 1.3 vector成员变量介绍 二、vector模拟实现 2.1 构造函数 2.1.1 无参构造 2.1.2 迭代器区间构造 2.1.3 n个val构造 2.1.4 拷贝构造 2.2 赋值运算符重载 2.2.1 传统写法 2.2.2 现代写法 2.3 析构函数…

蓝桥杯刷题018——和与乘积(贪心)

2021国赛:和与乘积 题目描述 给定一个数列 ,问有多少个区间[L,R] 满足区间内元素的乘积等于他们的和,即 输入描述 输入第一行包含一个整数 n,表示数列的长度。 第二行包含 n 个整数,依次表示数列中的数 a1​,a2​,⋯,a…

【Vue】模板语法——文本插值

一、模板语法什么是模板语法Vue 使用一种基于 HTML 的模板语法,使我们能够声明式地将其组件实例的数据绑定到呈现的 DOM 上。所有的 Vue 模板都是语法层面合法的 HTML,可以被符合规范的浏览器和 HTML 解析器解析。在底层机制中,Vue 会将模板编…

(十四)docker安装nacos

一、简介 操作系统:Linux CentOS 7.3 64位 docker版本:19.03.8 nacos版本:默认拉取最新版本 二、实践 1、拉取镜像 docker pull nacos/nacos-server 2、运行容器 docker run --name nacos -p 8848:8848 \ --privilegedtrue \ --restar…

二、什么是GStreamer

GStreamer是一个用于创建流媒体应用程序的框架。基本的设计来自俄勒冈研究生院的视频管道,还有一些来自DirectShow的想法。 GStreamer的开发框架使编写任何类型的流媒体应用程序成为可能。GStreamer框架旨在使编写处理音频或视频或两者同时处理的应用程序变得容易。…

01_学习springdoc的基本使用

文章目录1 什么是 springdoc ?2 springdoc 基本信息3 maven 依赖4 正文来袭4.1 给 Controller 加注解4.2 给 Model 加注解5 大功告成1 什么是 springdoc ? 网上冲浪🏄🏻‍♂️时,无意间发现 java web 应用程序的在线接口文档,除…