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

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

Jerry 已经告别 ABAP 开发很长一段时间了,最近有朋友问我一个关于 ABAP Development Tool 里代码模板的使用问题。我觉得这个代码模板功能,对 ABAP 开发者来说算是一个比较实用的功能,所以单独写一篇文章,把我给这位朋友的解答分享出来。

先介绍下问题的上下文:在 SAPGUI 里,我们可以使用工具栏这个 Pattern 按钮,输入一个函数的名称比如 READ_TEXT:

然后,ABAP 编辑器会帮助我们,自动生成调用这个函数的代码模板,如下图所示。当一个 ABAP 函数具有较多的输入输出参数时,这个功能很有用,省去了我们手动敲入代码的时间。

这位朋友的困扰是,到了 ABAP Development Tool 环境下面,找不到 Pattern 按钮了,因此不知道如何继续使用 ABAP 代码模板功能。

实际上,在 ABAP Development Tool (以前我们称为 ABAP in Eclipse) 里,ABAP 代码模板仍然能够继续使用。和 SAPGUI 不同之处在于,其触发方式有所变化,不再是通过点击 IDE 里某按钮触发。

首先,在 Windows -> Preferences 里,修改 ABAP Development Tool 里触发代码自动补全的快捷键。

选择 Keys -> Content Assist,默认的快捷键是 Ctrl + Space. 这个按键组合,在 Windows 系统里会触发输入法切换,因此我们需要将其更改成其他的按键组合。

我将其修改成了 Shift + L:

在 ABAP 编辑器里,输入 CALL FUNCTION 'READ 之后,敲 Shift + L :

就会看到所有以 READ 开头的 ABAP 函数列表。从列表里选择 read_text 函数之后,在弹出框能看到该函数的输入输出参数,即所谓的 signature 明细。

键入 Shift + Enter,就可以像在 SAPGUI 里点击 Pattern 一样,自动将该函数的调用代码,插入到当前 ABAP 代码中了。

此外,在 ABAP Editor 的 ABAP Templates 里,我们可以修改 ABAP Development Tool 自带的标准 ABAP 模板,也可以自定义新的 ABAP 代码模板。

新建一个 ABAP 模板,使用按钮 Insert Variable, 可以在模板代码里插入类似 ABAP 编程语言 sy-uname 等系统变量。

比如来一段 Jerry 文章 你的ABAP程序给佛祖开过光么?来试试Jerry这个小技巧 里提到的注释。

最后编辑好的 ABAP 代码模板如下图所示,另存为 JerryCustomTemplate:

在 ABAP 编辑器中,输入 je,然后敲 Shift + L,从下拉列表里选择 JerryCustomTemplate 即可:

可以看到代码模板里插入的变量,已经自动被替换成其实际值了。

关于 SAP ABAP Development Tool 的更多介绍,可以阅读 Jerry 之前的文章:

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

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

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

比如在 ABAP Development Tool 里设置 ABAP Formatter,让其支持驼峰命名法:

以及此处导入 ABAP 关键字的颜色配置,让你的 ABAP 编辑器具有五彩缤纷的视觉效果:

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

感谢阅读。

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引用的十亿美元错误

更多Jerry的原创文章,尽在:"汪子熙":


你可能感兴趣的:(ABAP Development Tool 代码模板和其他一些实用技巧汇总)