零基础快速学习 ABAP
文章平均质量分 92
ABAP 是 SAP 包括旗舰级产品 S/4HANA 在内的众多主流产品的开发语言。笔者从2007年硕士毕业加入SAP至今,有16年ABAP使用经验。本专栏面向没有任何编程基础,或者编程经验很少的朋友们,介绍如何快速高效学习 SAP ABAP 这门编程语言。教程每篇文章都有详细的图文讲解和源代码。
优惠券已抵扣
余额抵扣
还需支付
¥49.90
¥99.00
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
汪子熙
企业管理软件资深开发专家
展开
-
零基础快速学习 ABAP 读者意见反馈和下一步写作计划表
大家在学习教程过程中,如果有任何关于 SAP ABAP 开发方面想了解的内容,可以直接在教程各篇文章下评论留言,我会将大家的意见统一汇总到下面的表格,作为我更新教程的内容参考来源之一。原创 2022-10-08 10:57:55 · 3148 阅读 · 19 评论 -
零基础 ABAP 学习教程系列文章的目录
曾几何时,ABAP 就是 SAP 的代名词。ABAP 这门编程语言造就了 SAP 名噪一时的 R/3 产品,同时也是如今 SAP 旗舰级产品,SAP S/4HANA 底层的实现语言。ABAP 不仅代表着 SAP 这家公司在企业级管理软件市场辉煌的过去,ABAP 自身也在不断地进化着。SAP 不仅在本地部署(On-Premise)领域继续保持着自己绝对的统治地位,而且在云应用领域(Software-as-a-Service, 简称 SaaS), 也推出了自己的解决方案,比如 SAP S/4HANA Clo原创 2023-05-04 16:23:25 · 21046 阅读 · 23 评论 -
一套适合 ABAP 初级和中级开发人员,从入门到提高的 ABAP 学习教程
曾几何时,ABAP 就是 SAP 的代名词。ABAP 这门编程语言造就了 SAP 名噪一时的 R/3 产品,同时也是如今 SAP 旗舰级产品,SAP S/4HANA 底层的实现语言。ABAP 不仅代表着 SAP 这家公司在企业级管理软件市场辉煌的过去,ABAP 自身也在不断地进化着。SAP 不仅在本地部署(On-Premise)领域继续保持着自己绝对的统治地位,而且在云应用领域(Software-as-a-Service, 简称 SaaS), 也推出了自己的解决方案,比如 SAP S/4HANA Clo原创 2023-10-12 19:43:52 · 1747 阅读 · 2 评论 -
工具分享 - 将任意一张表的全部内容,拷贝到另一张透明表里去
这个 ABAP 程序通过动态创建 ABAP 变量 ,并实现将源表中的数据复制到目标表的功能。程序首先检查目标表是否为空,如果不为空则不会进行数据复制。它使用了和ASSIGN来动态创建表类型,并通过来处理表和行数据,最后通过INSERT语句将数据写入目标表。原创 2024-09-30 15:57:53 · 118 阅读 · 0 评论 -
每天一个 ABAP 知识点(1):SAP ABAP 系统五种不同类型的用户的详细介绍
使用事务码 SE11,打开 ABAP DomainXUUSTYP, 我们能看到 ABAP 系统支持五种不同类型的 User:下面是这五种用户类型的详细介绍。在 SAP ABAP 系统中,用户类型是根据用户的操作需求和系统访问权限划分的。这些类型包括:Dialog 用户、System 用户、Communications 用户、Reference 用户和 Service 用户。每种用户类型都有其特定的使用场景和功能。原创 2024-05-10 11:27:45 · 76 阅读 · 0 评论 -
ABAP 权限控制入门学习之一:为什么 SE16 事务码里,有些数据库表可以查看内容,有些表又无法查看?
我们说 SAP 的权限控制模块还支持企业的审计和合规性要求,比如系统可以记录所有用户的活动,包括他们访问和操作数据的详细信息。关于 SAP ABAP 权限控制的介绍,无论是 SAP 官方文档,还是国内外技术社区上的文档,可以说文档已经多如牛毛了。比如我上面尝试查看 USR02 这张表的行为,以及遇到的错误消息,这一切全部被事务码 SU53 忠实的记录了下来。把这种抽象的操作提取出来,封装在一个新的 ABAP 对象里的思路,是 SAP 的常规和拿手的做法。我们在 SE16 里输入 USR02,别着急敲回车。原创 2024-05-09 17:03:44 · 251 阅读 · 0 评论 -
关于 ABAP 程序发生运行时错误后,在事务码 ST22 里查看相关变量内容的问题
关于 ST22 事务码里查看 ABAP 程序发生运行时错误时,如何查看 ABAP 变量值的问题原创 2024-05-06 19:51:59 · 1254 阅读 · 1 评论 -
ABAP 运行时错误 SYSTEM_NO_ROLL 错误分析
错误,需要了解 SAP 的内存管理机制。滚动区主要用于存储短期的工作数据,而当这部分内存耗尽时,系统会尝试使用页面区和扩展内存区来满足需求。如果是 SAP 标准代码抛出的,那么试着优化数据选择逻辑,避免一次性加载过多数据到内存中。被填满,系统会自动使用更大的内存区域,如页面区(Paging area)和扩展内存(Extended memory)来存储额外的数据。在没有定位到问题根源之前,切勿盲目通过 RZ11 事务码,调大 ABAP 工作进程能否申请的最大内存数量,如果引起错误的根源。原创 2024-04-23 16:54:44 · 676 阅读 · 0 评论 -
问题解答:为什么 ABAP 面向对象编程引入了类的概念之后,还要引入接口的概念?接口能解决哪些编程问题?
虽然 ABAP 的面向对象编程已经支持类的概念,但接口的引入为处理复杂的业务逻辑提供了更大的灵活性和扩展性。接口通过定义清晰的行为契约,不仅促进了低耦合和高内聚的设计理念,还使得系统能够更加灵活地适应不断变化的业务需求。在企业级应用中,接口的使用极大地提升了项目的可维护性和可扩展性。原创 2024-04-23 15:58:30 · 505 阅读 · 1 评论 -
152. 如何使用 ABAPGit 在 SAP ABAP 系统安装 abap2xlsx 工具
我们能看到有很多的 ABAP 类,前面都有 checkbox. 全部选中这些 checkbox,点击 Continue 按钮,就能在当前 ABAP 系统,创建同样的 ABAP 对象了。这个界面能看到系统里已经通过 ABAPGit 将 ABAP 系统本地的开发包(Development Package)同 github.com 上的代码仓库建立连接的信息,比如上图例子的含义是,ABAP 本地开发包。按照上面提到的序号为 151 的文章操作之后,我们系统里就创建好了 ABAPGit 的独立版本,执行。原创 2024-04-20 15:02:26 · 808 阅读 · 1 评论 -
150. 如何下载并安装 SAP ABAPGit,并完成 ABAP 服务器上 SSL 证书的配置
本教程之前曾经介绍过如何使用SAPLink这个工具,将网络上别人分享的 ABAP 程序和其他开发资源,复制到自己的 ABAP 系统上。不过近些年来,ABAP 开源社区里,流行的代码分发和共享工具,已经从 SAPLink,切换成了 ABAPGit.ABAPGit 是一种开源工具,用于 SAP ABAP 开发环境中的代码版本控制和项目协作。通过 ABAPGit,开发者可以将 ABAP 代码仓库与 Git 进行集成,从而实现代码的版本控制、团队协作和源代码的管理。原创 2024-04-08 14:34:42 · 1800 阅读 · 0 评论 -
实战分析 - 为什么有些 SAP ABAP 程序,启动之后界面有些按钮是灰色的
这个事务码被用来将某个网站的 SSL 证书,导入到 SAP ABAP 系统中,这样 ABAP 系统统第三方网站的网络数据传输的安全性就得以保障,能够避免数据在传输过程中被截获。事务码实现的 ABAP 程序名称,以及对应的 Screen 屏幕的编号,也就是 100,如下图红色高亮框所示。本文就通过一个实际的例子,给大家分享,当笔者工作中打开一个 SAP 标准的 ABAP 程序后,如果发现界面上有些按钮是灰色的,应该如何自行分析原因。,开发者可以更灵活地控制界面元素的展现,从而提供更丰富和动态的用户体验。原创 2024-04-07 19:04:59 · 69 阅读 · 0 评论 -
150. 如何使用 SAPGUI 中的树控件绘制树状数据结构
树形结构能够自然地表达层次化数据,如公司的组织架构、产品目录或项目任务的分解。在 SAP 系统中,很多模块(如物料管理(MM)、销售与分销(SD)、人力资源(HR)等)都涉及到层次化数据的管理。通过树形控件,这些数据可以以直观的方式展现给用户,使用户能够一目了然地理解数据间的关系。原创 2024-03-29 16:52:43 · 835 阅读 · 0 评论 -
问题解答:ABAP 关键字 ANY TABLE 的使用场合深入剖析
反过来,Field Symbol 的类型定义处就可以使用 ANY TABLE. 这是因为如前所述,Field Symbol 只是一个符号而已,本身并不占据内存空间,而是指向一段内存区域,该内存区域存储的就是数据对象的实际值。汪老师,我这边定义了一个ANY TABLE,但是报错,说是没有这个类型,我在SE38定义的时候也报错,只有用FIELD-symbols定义才不会报错,所以就很好奇为什么您这里可以,我这边却不行呢。的场合,如上图图例 3 所示,会遇到语法错误,无法激活 ABAP 报表。原创 2024-03-26 15:53:01 · 413 阅读 · 0 评论 -
149. 如何在 SAPGUI 的 ABAP 报表里显示图片
有了本教程前一篇文章的基础,我们只需要对该篇文章源代码,做一些简单的修改,即将左上角的 Text Editor 控件,更换成一个显示图片的 SAPGUI 控件即可。当时我们完成了一个例子,一个完整的屏幕,被划分成了左上,左下和右边三个区域,分别显示了三个 Text Editor 区域,通过。方法,传入图片在 MIME Repository 里的存储路径,通过该方法,返回这个图片的字节内容,存储在类型为。包裹起来,这样方便大家查看,如下图第 12 行和第 19 行代码所示,这个代码块里,声明的都是为了利用。原创 2024-03-25 11:27:20 · 812 阅读 · 0 评论 -
148. 使用 SAPGUI 的 Docking 控件将屏幕划分成若干子区域
的控件的实例,在 ABAP Screen 的 PBO 即 Process Before Output Module 执行的上下文里,我们要判断这个实例是否被初始化。同理,BOTTOM 区域的引用,获取方式也类似,只不过指定 row = 2 即可,意思是获取左侧区域的第二排,也就是 BOTTOM 区域。控件的时候,把 TOP 区域的引用,传递到 Text Editor 控件构造函数的。,意思是拿到左侧区域第一行的子区域的引用。的含义,我们将屏幕划分成若干个区域的实现,正是通过 Docking 控件来完成的。原创 2024-03-22 16:55:16 · 515 阅读 · 0 评论 -
小技巧分享 - 使用 Visual Studio Code 查看和修改 ABAP 代码
因为我们要在 Visual Studio Code 里查看和编写远端 ABAP 服务器上的 ABAP 代码,首先需要把远端 ABAP 服务器上的 ABAP 代码,以列表的方式拉回到本地 Visual Studio Code 里显示,这个显示同 SAPGUI SE80 以及 ABAP Development Tool 里的风格一样,以树形结构显示,数的根节点以一个 ABAP 开发包开始,数的叶节点就是这个 ABAP 开发包里包含的 ABAP 报表和 ABAP Class 等源代码对象。原创 2024-03-21 16:15:35 · 1031 阅读 · 0 评论 -
147. SAP ABAP Subscreen 使用介绍
同样,对于 SAPGUI 里的 Dynpro 程序,如果屏幕界面的复杂度过高,SAP 也不推荐将界面上的元素,统一放置到一个屏幕中,而是按照业务逻辑相关性,将屏幕进行分组,划分成若干个子区域,每个屏幕子区域,通过一个所谓的。Subscreen 2 和 Subscreen 1 共享同一块显示区域,点击屏幕上 Subscreen 2 按钮后,Subscreen 2 会得到显示,而 Subscreen 1 的内容被隐藏。Subscreen 1 的内容隐藏,Subscreen 2 的内容,进入显示区域。原创 2024-03-15 19:28:14 · 1204 阅读 · 1 评论 -
小技巧分享:如何查询 SAP ABAP 系统里消耗存储空间排名前几位的数据库表
在实际的 ABAP 项目中,有时候也需要知道,当前 ABAP 系统里,消耗存储空间前几位的数据库表的排名。本文介绍如何使用 SAP ABAP 系统提供的标准工具,来得到这些我们需要的信息。我们使用事务码DB02,在左边菜单项的里,能看到当前系统的物理内存,和磁盘空间的情况:展开左侧的, 点击,就能看到当前系统的数据库表,消耗存储空间排名前列的名单了。点击上图图例 4 的,可以查看这些消耗存储空间大户们的详细信息。原创 2024-03-10 23:07:09 · 84 阅读 · 0 评论 -
146. SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍
本教程前两篇文章,我们介绍了 SAPABAP CDS(Core Data Services)是 SAP 引入的一种新的数据建模与访问框架,旨在高效、直观地定义和操作数据库中的数据。CDS View 作为这一框架中的核心组件,允许开发者利用 SQL 类似的语言创建复杂的查询视图。这些视图不仅可以跨数据库表进行操作,还能集成逻辑处理,从而极大地提升数据处理的效率和灵活性。本文之前介绍过,在 SAP 旗舰级产品里,有多达40000。原创 2024-03-10 16:08:25 · 155 阅读 · 0 评论 -
145. SAP S/4HANA 系统的底层基石 - 通过实际的例子,介绍 CDS View 入门级的概念
至此,笔者通过一个最简单的例子,试图给大家一个直观的印象,关于 ABAP CDS View 在系统里的创建和消费。SAP OData 开发实战教程 - 从入门到提高SAP Fiori Elements 从入门到进阶。原创 2024-03-10 12:06:25 · 306 阅读 · 0 评论 -
142. 迈入 SAP CDS View 世界的前置知识 - SAP ABAP 数据库视图介绍
因此,即便是传统的数据库视图,在 SAP 传统的产品比如 R/3 中,也有着广泛的使用。因为我们创建这个数据库视图的初衷,就是在查看订单信息时,不仅能看到下单者的 ID,还要看到其姓名,因此我们一定记住将。可以看到,订单 ID,订单名称,客户 ID 和客户名称,通过一张数据库视图就全部呈现出来了,不用再到两张表里分别去查看。在 SAP 系统中,这一点尤为重要,因为业务数据经常分散在多个表中,而通过数据库视图可以轻松地实现数据的关联和汇总,从而支持复杂的业务逻辑和报表需求。通常来说,连接字段,一定是两张表。原创 2024-03-09 15:53:38 · 149 阅读 · 0 评论 -
ABAP 7.40 新语法介绍系列之五 - 增强的 ABAP OPEN SQL 语法介绍
2012年,SAP 推出了 ABAP 7.40,这个版本在 ABAP 发展历史上,也是一个重要的里程碑,因为它引入了很多新的语法特性。如果说 ABAP 诞生之初,其语法中能看到在 1960 年问世的编程语言中的老大哥COBOL的影子,那么 ABAP 7.40,则融合了同时代很多其他高级编程语言的特性,比如 Java 和 C# 的语法:时光飞逝如电,转眼间 12 年就过去了。本教程会用一个系列的篇幅,给大家普及 ABAP 7.40 这些新语法特性的作用和使用方法。本文是这个系列的第五篇文章。原创 2024-03-08 11:18:12 · 450 阅读 · 0 评论 -
ABAP 7.40 新语法介绍系列之四 - ABAP Table Expression 内表表达式的用法
2012年,SAP 推出了 ABAP 7.40,这个版本在 ABAP 发展历史上,也是一个重要的里程碑,因为它引入了很多新的语法特性。如果说 ABAP 诞生之初,其语法中能看到在 1960 年问世的编程语言中的老大哥COBOL的影子,那么 ABAP 7.40,则融合了同时代很多其他高级编程语言的特性,比如 Java 和 C# 的语法:时光飞逝如电,转眼间 12 年就过去了。本教程会用一个系列的篇幅,给大家普及 ABAP 7.40 这些新语法特性的作用和使用方法。原创 2024-03-06 10:03:40 · 856 阅读 · 0 评论 -
SAP ABAP ALV List 和 ALV Grid 这两种控件的使用方法和使用场景区别辨析
有朋友在我的上向我提问,询问 SAP ABAP ALV List 和 ALV Grid,这两种显示控件,在使用场合和方法上,有什么区别。其实在 SAP 官方社区上,也有 ABAP 从业者问过类似的问题。本文就来简单聊聊二者的区别。在 SAP ABAP 开发环境中,ALV(Application List Viewer)是一个强大的工具,用于展示列表格式的数据。它提供了排序、过滤、总结等多种功能,极大地方便了用户的数据查看和处理。ALV 主要有两种形式:ALV List 和 ALV Grid。原创 2024-03-04 08:51:22 · 344 阅读 · 0 评论 -
ABAP 7.40 新语法介绍系列之三 - ABAP Value 操作符
2012年,SAP 推出了 ABAP 7.40 版本,这在 ABAP 发展历史上也是一个重要的里程碑,因为这个版本的 ABAP,引入了很多新的语法特性,让 ABAP 融合了同时代很多其他高级编程语言,比如 Java 和 C# 的语法:光阴似箭,转眼间 12 年就过去了。本教程会用一个系列的篇幅,给大家普及 ABAP 7.40 这些新语法特性的作用和使用方法。本文作为这个系列的第三篇文章,向大家介绍 Value 操作符。其实 Value 操作符是我们的老朋友了,每个 ABAP 开发人员应该都使用过。原创 2024-03-03 13:44:17 · 324 阅读 · 1 评论 -
ABAP 7.40 新语法介绍系列之二 - ABAP 类型转换操作符 CONV
这个lv_input_s变量的唯一使命,就是接收来自 char10 类型的 lv_input_c 变量的值,然后传递到 print 方法里去。原创 2024-03-02 22:55:39 · 389 阅读 · 0 评论 -
ABAP 7.40 新语法介绍系列之一 - ABAP 变量内联声明(Inline Declaration)
本文首先介绍了如何查询 SAP 系统的 ABAP 版本,接着介绍了 ABAP 740 里变量内联声明(Inline Declaration)的新语法。在不降低代码可读性的前提下,变量内联声明,可以让 ABAP 代码变得更加紧凑,有效减少冗余代码行数。原创 2024-03-02 15:34:06 · 427 阅读 · 0 评论 -
144. ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具
为此我开发了一个小工具,利用了 ABAP 泛型编程技术,只需要在工具输入参数里,指定源数据库表,和目标数据库表这两张表的名称,工具就能自动将源数据库表的全部内容,拷贝到目标数据库表去。这避免报表的使用者,将源数据库表和目标数据库表的名称弄反了,导致 SAP 标准数据库表的内容被覆盖的情况出现。笔者在实际工作中,经常需要对一些 SAP 系统标准的数据库表进行一些调研工作,比如调整数据库表的字段,或者对这张标准数据库表的内容,进行增删改查等等。的方式去检测一个数据库表是否为空,也是可以的,而且更高效。原创 2024-03-01 18:58:21 · 88 阅读 · 0 评论 -
143. SAP ABAP ALV 的分组显示和 Subtotal 显示实现的技术步骤
本教程之前的步骤,我们已经介绍了如何在 ALV 列表输出里,打印一个 ABAP Function Group 下所有 Function Module 的名称,和对应的源代码行数从高到低降序排序。并且单击某一行的 Function Module 之后,能自动打开 ABAP 代码编辑器,跳转到最后一行。原创 2024-03-01 15:06:38 · 109 阅读 · 0 评论 -
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示
本文我们再一起实现一个笔者工作中曾经完成的另一个任务:将一个 function group 下所有的 Function Module,按照其代码行数从高到低的顺序进行排序,显示在一个 ALV 列表里,并且单击某一行之后,能自动在 ABAP 编辑器里,打开这个 Function Module.传递的就是 Function Module 的 include name,position 参数表示要跳转到哪一行,这里我们指定跳转到最后一行也就是 Function Module 的末尾。原创 2024-03-01 10:31:06 · 115 阅读 · 0 评论 -
142. SAP ABAP ALV 报表单击某列后执行某段 ABAP 逻辑的实现方式 - hotspot 行为实现
下面这个 ALV,打印的就是 ZPERSON 数据库表的内容,只是 PERSON_ID 这一列,加上了下划线显示效果,提示用户这个字段可以点击。,拿到当前被单击的 person_id 值,然后用上图图例 4 的 OPEN SQL 语句,从另一个表 ZMYORDER 里,读取这个 person 的所有订单数据就可以了。如果某人在系统里还没下过单,比如 id 为 104 的 person,那么点击这个人 的 id 后,会显示。的值,可以看到 Value 字段,存储的就是当前被点击的 PERSON_ID。原创 2024-02-29 16:01:08 · 397 阅读 · 0 评论 -
实战案例分享 - 从 SAPGUI 屏幕上一个字段出发,想查找它在哪个数据库表存储,最后发现找不到,怎么回事?
总结一下,当用 SAT 事务码,无法查询到某个 SAPGUI 上的字段值,对应的数据库表时,我们不妨换个思路,说不定这个字段值,根本不是直接存放在数据库表里,而是通过某种逻辑自动计算出来的呢?本文就是一个典型的例子。在 SAP ABAP 开发顾问的日常工作中,已知 SAPGUI 屏幕上一个字段,找出后台数据库的哪一张表的哪一个字段,存储了这个屏幕上的字段值,是一个常见的需求。我执行上面的 ABAP 报表,发现我的 ABAP 程序打印的结果,和 SE37 看到的名称一致,说明我写的 ABAP 代码是正确的。原创 2024-02-28 14:39:22 · 144 阅读 · 0 评论 -
141. 使用 ABAP 单例模式避免 ABAP 应用程序额外内存消耗的一个实战案例
本教程之前介绍过 ABAP 变量内存消耗的话题。然后在这篇文章里,我们介绍了 ABAP 系统有一个全局的对象注册表 TADIR. 我们在 ABAP 系统创建的 ABAP 对象,都会在这张表里生成一条注册记录。我们可以开发一个 ABAP 工具类,输入是 ABAP 对象名称,输出是这个对象的创建者和创建时间。原创 2024-02-27 11:51:06 · 772 阅读 · 0 评论 -
140. ABAP 开发项目实战里, 定义常量的几种方法和技巧总结
上面介绍的常量定义方法,均定义在 ABAP 报表内部,无法被其他 ABAP 报表重用。换言之,假设 ABAP 报表 A 内部定义的常量,其他报表无法使用。为了解决这种常量重用性问题,我们可以将常量定义放在 ABAP接口里。新建一个 ABAP 接口:public .采用这种方法,我们可以在任何 ABAP 报表里,重用接口内的类型定义和常量结构。当代码里输入然后输入字符后,从自动完成列表里依然可以看到全部四个 material 类型,一目了然。当然,把常量结构,定义在一个ABAP 类。原创 2024-02-16 15:59:04 · 457 阅读 · 0 评论 -
139. 如何获取一个 ABAP 类所有方法源代码行数的列表
执行之后的报表输出,其中方法源代码超过 100 行的,用红色高亮显示,超过 50 行但不超过 100 行的,用黄色显示;接下来,我们使用 LOOP 循环变量这个方法返回的行项目,逐行调用 READ REPORT,读取方法的源代码到 ABAP 内表变量里,然后使用函数。里,有朋友想退而求其次,问我如何开发一个 ABAP 报表,统计一个 ABAP 类的所有方法,将其源代码行数,以列表的方式打印出来。笔者之前的文章,曾经提到,ABAP 类的每个方法,都是存储在一个特殊名称的。的名称,然后使用这篇文章里学到的。原创 2024-02-13 11:54:00 · 600 阅读 · 0 评论 -
138. 第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析
本教程第 37 篇文章,我们介绍了如何在 SAP ABAP 系统 SICF事务码里,开发一段 ABAP 代码,用来响应通过浏览器或者第三方工具,比如 curl,Postman 发起的 HTTP 请求。在实际的 ABAP 集成项目中,这种方式非常使用。比如客户的第三方系统或者应用,通过 HTTP 协议,向 ABAP 系统发起数据交互请求,我们开发的 ABAP 程序,就可以响应这些请求。本教程第 37 篇文章,通过浏览器访问我们开发好的 ABAP 类,收到了你好的回应。原创 2024-02-12 13:44:03 · 913 阅读 · 1 评论 -
137. 如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调
里,有朋友提问,能不能从本地 ABAP 系统,提取某个标准 ABAP 程序的代码源,然后基于这些代码源进行微调,动态生成新的 ABAP 报表并执行呢?开头,代表这个程序的生命周期仅仅存在于当前 ABAP 会话,即我们现在正在运行的这个 ABAP 程序,执行结束后,这个。可以单步调试,进入这个动态生成的程序内部,更准确的说,进入我们通过源代码声明的方式,定义的名为。这个报表的作用是,从注册表里,查询出当前执行报表用户创建的三个 ABAP 报表的名称。假设我的需求是,执行报表后,打印的记录条目数,改成。原创 2024-02-11 15:59:23 · 259 阅读 · 0 评论 -
136. 聊聊 SAP ABAP 系统里除了 TADIR 之外的其他注册表
本教程之前的文章,介绍了 SAP ABAP 系统里最重要的注册表TADIR本文继续聊 SAP ABAP 系统里,除了TADIR之外的其他注册表。这些注册表有一定的命名规则,即T*DIR, * 代表一个英文字母。DIR 可以理解成 Directory,目录之意。原创 2024-02-09 21:47:51 · 405 阅读 · 0 评论 -
135. 如何使用 Pre-Exit 和 Post-Exit 的方式,增强一个 ABAP 类的方法
迄今为止,这些文章都没有触碰到 ABAP 类的增强方法。本文就来弥补这个空缺。对 ABAP 类的某个方法,通过增强(Enhancement)的方式,实现自己的自定义逻辑,也是笔者在实际工作中,经常使用的一种方法。为了保证每一位学习者在自己的系统都能够动手练习,我手动创建了一个自定义类,用来模拟标准的 ABAP 类。然后我们再对这个类的方法进行增强。大家首先在自己的系统里,创建一个 ABAP 类,起名. 这个类包含一个静态方法, 作用是根据输入参数传入的用户名,查询这个用户在 SAP ABAP 注册表。原创 2024-02-06 17:34:12 · 220 阅读 · 0 评论