SAP ABAP Development Tool 提高开发效率的十个小技巧

简介: SAP ABAP Development Tool 提高开发效率的十个小技巧

这是 Jerry 2021 年的第 46 篇文章,也是汪子熙公众号总共第 323 篇原创文章。


Jerry 已经有很长一阵子没有打开工作电脑上的 SAP ABAP Development Tool 了。在用 Visual Studio Code 进行 Angular 开发马上快满一年的时间点上,为了做到喜新不厌旧,本文把 SAP ABAP Development Tool 一些提高工作效率的使用小技巧罗列出来。欢迎大家在留言区补充。


关于 Jerry 之前分享过的 SAP ABAP Development Tool 使用技巧,请查阅这些文章:


ABAP Development Tool 代码模板和其他一些实用技巧汇总


给你的ABAP对象打上标签(Tag)


ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了


SAP官方发布的ABAP编程规范


ABAP开发环境语法高亮的那些事儿


不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧


1. 快速打开 ABAP Development Tool 任意设置

假设我想打开 ABAP Development Tool 和颜色 (color) 相关的设置,但是我记不住具体的设置路径了,没有关系,使用快捷键 Ctrl + 3:


在输入框内输入 color,然后就能看到所有和 color 相关的设置。

image.png


选择自己想设置的条目,单击,即可迅速进入设置页面:


image.png


2. CDS view 数据的本地保存

CDS view 数据预览之后,可以通过 Add filter 右边这个小图标,以不同的格式另存到本地以便进一步分析。


image.png


3. 快速打开任意一个 ABAP 开发对象

快捷键 Ctrl + Shift + A,在打开的弹出窗口里输入搜索条件,即可快速搜索并打开找到的对象。


image.pngimage.png


支持常用的搜索通配符。


4. 在嵌入的弹出对话框查看对象明细

例如我们想查看标准视图 /DMO/I_Travel_U 的明细,无需打开其视图本身。


image.png

直接鼠标选中该视图,按 F2 即可在弹出窗口里查看,清晰准确,一目了然。


image.png

如果嫌这个弹出窗口尺寸太小,还可以将其以 ABAP Development Tool 属性视图的方式显示,点击这个小图标即可:


image.png


效果如下:

image.png


5. 在 ABAP 类方法实现的任意位置查看其参数定义

SAPGUI 里能在编写 ABAP 类方法源代码实现时,随时查看其方法参数定义,这一点我很喜欢。


image.png


在 ABAP Development Tool 里就无法随时看到方法参数定义了。

image.png


不过只需要按一下 Alt + F2, 方法参数定义又回来了:


image.png


后续即将介绍的小技巧里,我们还能对 Alt + F2 显示的内容进行增强。


6. 类似 Visual Studio Code 的 Quick Fix 功能

我用了快一年的 Visual Studio Code 进行 Angular 开发了,真心喜欢其 Quick Fix 功能, 编译器能通过上下文,自动给出一些编译错误的解决方案。


image.png


ABAP Development Tool 里也有类似功能。比如下面的例子,代码第25行,变量 lo_request 没有定义就直接使用,引起了一个编译错误。

image.png


选中 lo_request, 快捷键 Ctrl + 1,即可看到 ABAP 编译器给出修复该语法错误的几种建议,这称之为 ADT Quick Assistant.


image.png

这里选择第一条建议即 Declare local variable lo_request, 双击,定义局部变量 lo_request 的代码就自动插入到指定的位置了:


image.png


根据不同的选中上下文,Ctrl + 1 的行为也不同。比如同时选中 ABAP 方法内的若干行代码,再按 Ctrl + 1,弹出的则是代码重构的一些建议,比如将这些选中的代码,抽取到一个新的私有方法去。这种代码重构方式称之为 Method Extraction.

image.pngimage.png


选中一个硬编码的字符串,Ctrl + 1 后编译器会提示我们,是否考虑将其转换成一个局部常量,类常量,局部变量,或是使用 ABAP Text Pool 来避免硬编码。


image.png


对自己编写的代码经常使用 ADT Quick Assistant, 多思考其提出的重构建议,有助于提升我们的代码质量。


7. 添加代码注释

想让你的方法能够像 Visual Studio Code 里显示的注释一样专业吗?在 SAP ABAP Development Tool 里当然也能做到。


image.png


选中下图第28行的方法调用 get_destination, 按 F2 之后,显示的是 SAP ABAP Development Tool 里默认的方法参数说明。


image.png


现在我们在该方法的定义代码的前一行,手动维护下列注释。


image.png


激活之后再次选中方法调用然后按 F2,我们之前手动维护的注释,就会渲染成如下红色高亮区域的文本,是不是看起来专业多了?通过语法{@link XXXX}, 我们可以在注释里插入指向 ABAP 标准开发对象的超链接,提供注释的可读性。


image.png


8. 让 ABAP 代码格式化工具支持驼峰风格(Camel Case)

在 ABAP Formatter 设置里,将 Keep Camel Case Identifiers 前的勾打上即可。

image.png


之后,代码中这些采用驼峰风格定义的变量名,就不会被 ABAP Formatter 转换成纯小写了。当然,代码中使用下划线风格还是驼峰风格来对变量进行命令,还得遵循项目本身的编程规范。


image.png

9. 更改 ABAP 关键字的颜色

SAPGUI 里所有的 ABAP 关键字都只能设置为同一种颜色。而 ABAP Development Tool 里,能够为不同的关键字分别设置不同的颜色:


image.png


如果嫌麻烦不愿意逐一设置,可以直接导入 Github 上这个设置:


https://github.com/FreHu/eclipse-abap-keywordcolors



image.png

Visual Studio Code 需要安装额外的扩展才能实现这个颜色更改需求,而 ADT 本身的设置就足以工作了,相当赞。如果需要整天面对 ABAP 代码,那么将其外观设置得五彩缤纷一点,或许也能让自己编程时,心情更加愉悦一些。


10. ABAP Occurances

以 Visual Studio Code 为例,假设我想查看名为 config 的属性在 Component 里所有的出现场景(Occurances), 需要 Ctrl + F 打开搜索框,输入 .config. 这样,代码中所有出现 .config 的位置,会被高亮显示。


image.png


在 ABAP Development Tool 里就方便多了。


假设我想查看代码中所有出现 zbooking 的位置。直接点击其即可。


image.png


单击后,代码中所有出现 zbooking 的位置,会自动被高亮显示。


按 “Ctrl + ,” 的快捷键,可以在这些位置之间进行切换。


image.png


在使用该功能时,确保编辑器里的 “ABAP Occurances” 处于开启状态。


image.png


Occurances 显示的颜色和外观也能够定制化:

image.png



比如下图是我将高亮显示更改为红色下划线的效果:


image.png


希望这些小技巧能够帮助提高大家使用 SAP ABAP Development Tool 的开发效率。


Jerry 的 ABAP 专题


Jerry的ABAP, Java和JavaScript乱炖


ABAP开发人员未来应该学些什么


Jerry 2017年的五一小长假:8种经典排序算法的ABAP实现


Jerry的ABAP原创技术文章合集


300行ABAP代码实现一个最简单的区块链原型


使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数


在SAP云平台的CloudFoundry环境下消费ABAP On-Premise OData服务


ABAP vs Java, 蛙泳 vs 自由泳


聊聊C语言和ABAP


动手使用ABAP Channel开发一些小工具,提升日常工作效率


我用ABAP做过的那些无聊的事情


不喜欢SAP GUI?那试试用Eclipse进行ABAP开发吧


使用Visual Studio Code编写和激活ABAP代码


你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧


在SAP云平台ABAP编程环境上编写第一段ABAP程序


SAP官方发布的ABAP编程规范


ABAP Code Inspector那些隐藏的功能,您都知道吗?


还在用ABAP进行SAP产品的二次开发?来了解下这种全新的二次开发理念吧


ABAP Netweaver体内的那些寄生式编程语言


从SAP社区上的一篇博客开始,聊聊SAP产品命名背后的那份情怀


云端的ABAP Restful服务开发


如何在SAP云平台ABAP编程环境里把CDS view暴露成OData服务


使用abapGit在ABAP On-Premises系统和SAP云平台ABAP环境之间进行代码传输


30分钟用Restful ABAP Programming模型开发一个支持增删改查的Fiori应用


Jerry带您了解Restful ABAP Programming模型系列之二:Action和Validation的实现


Jerry带您了解Restful ABAP Programming模型系列之三:云端ABAP应用调试


SAP云平台上的ABAP编程环境里如何消费第三方服务


ABAP开发者上云的时候到了 - 现在大家可以免费使用SAP云平台ABAP环境的试用版了


学而不思则罔 - SAP云平台ABAP编程环境的由来和适用场景


SAP云平台里的三叉戟应用


如何基于Restful ABAP Programming模型开发并部署一个支持增删改查的Fiori应用


SAP 2019 TechEd Key Note解读:云时代下SAP从业人员如何做二次开发?


有哪些ABAP关键字和语法,到了ABAP云环境上就没办法用了?


ABAP开发环境终于支持以驼峰命名法自动格式化ABAP变量名了


利用ABAP 740的新关键字REDUCE完成一个实际工作任务


一段让人瑟瑟发抖的ABAP代码


昨日万圣节ABAP怪兽级代码谜团,公布答案啦


介绍一种在ABAP内核态进行内表高效拷贝的方法


使用SAP Cloud Application Programming模型开发OData的一个实际例子


当ABAP遇见普罗米修斯


使用ABAP绘制可伸缩矢量图


ABAP开发环境语法高亮的那些事儿


SAP错误消息调试之七种武器:让所有的错误消息都能被定位


使用ABAP操作Excel的几种方法


SAP GUI里的收藏夹事务码管理工具


SAP GUI和Windows注册表


有了Debug权限就能干坏事?小心了,你的一举一动尽在系统监控中


ABAP CCDEF, CCIMP, CCMAC, CCAU, CMXXX这些东东是什么鬼


实现ABAP条件断点的三种方式


使用SAT跟踪监控从浏览器打开的SAP应用的性能和调用栈


一个13年ABAP老兵的建议:了解这些基础知识,对ABAP开发有百利而无一害


SAP ABAP Netweaver容器化, 不可能完成的任务吗?


SAP产品增强技术回顾


SAP API开发方法大全


浅谈Java和SAP ABAP的静态代理和动态代理,以及ABAP面向切面编程的尝试


SAP ABAP应用服务器的HTTP响应状态码(Status Code)


SAP ABAP里存在Java List这种集合工具类么?CL_OBJECT_COLLECTION了解一下


ABAP面试题系列:写一组会出现死锁(Deadlock)的ABAP程序


SAP ABAP Netweaver服务器的标准登录方式讲解


SAP ABAP关键字语法图和ABAP代码自动生成工具Code Composer


SAP ABAP SM50的另类用途 - ABAP工作进程对数据库表读取操作的检测


关于SAP ABAP字符变量和字符串变量字符个数的一个知识点,和一个血案


SAP ABAP一组关键字 IS BOUND, IS NOT INITIAL和IS ASSIGNED的用法辨析


SAP ABAP和Java里的弱引用(WeakReference)和软引用(SoftReference)


SAP AMDP介绍 - ABAP托管的HANA数据库过程


给你的ABAP对象打上标签(Tag)


历史上的今天:编程语言中null引用的十亿美元错误


ABAP Development Tool 代码模板和其他一些实用技巧汇总


相关文章
|
15天前
|
SQL 数据库 索引
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
17 1
关于 SAP ABAP REPOSRC 数据库表在 HANA 中的 DDL Definition
|
11天前
|
存储
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
使用 ABAP 代码打印出 SAP CRM 系统里所有维护了 Sales Area 的 business partner id
19 0
|
12天前
|
存储 安全 数据库
SAP ABAP 中数据类型 xstring 的使用介绍
SAP ABAP 中数据类型 xstring 的使用介绍
17 0
|
15天前
什么是 SAP ABAP 里的 Subscreen
什么是 SAP ABAP 里的 Subscreen
13 1
什么是 SAP ABAP 里的 Subscreen
|
15天前
|
数据库 存储 BI
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
10 0
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
|
1月前
|
存储 数据处理 开发者
ABAP 如何把 unicode 代码点转换成字符
ABAP 如何把 unicode 代码点转换成字符
19 0
|
6月前
|
存储 语音技术 UED
如何用 ABAP 代码进行文本转语音的输出工作
如何用 ABAP 代码进行文本转语音的输出工作
35 0
|
2月前
|
SQL 数据库
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
小技巧:如何让 ABAP OPEN SQL 代码具有自解释性(Self-Explained)
23 0
|
1月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
15 0
|
1月前
|
存储
ABAP 代码从十进制转二进制的方法
ABAP 代码从十进制转二进制的方法
21 0