天天看點

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

這是 Jerry 2021 年的第 35 篇文章,也是汪子熙公衆号總共第 311 篇原創文章。

Jerry 已經告别 ABAP 開發很長一段時間了,最近有朋友問我一個關于 ABAP Development Tool 裡代碼模闆的使用問題。我覺得這個代碼模闆功能,對 ABAP 開發者來說算是一個比較實用的功能,是以單獨寫一篇文章,把我給這位朋友的解答分享出來。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

先介紹下問題的上下文:在 SAPGUI 裡,我們可以使用工具欄這個 Pattern 按鈕,輸入一個函數的名稱比如 READ_TEXT:

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

然後,ABAP 編輯器會幫助我們,自動生成調用這個函數的代碼模闆,如下圖所示。當一個 ABAP 函數具有較多的輸入輸出參數時,這個功能很有用,省去了我們手動敲入代碼的時間。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

這位朋友的困擾是,到了 ABAP Development Tool 環境下面,找不到 Pattern 按鈕了,是以不知道如何繼續使用 ABAP 代碼模闆功能。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

實際上,在 ABAP Development Tool (以前我們稱為 ABAP in Eclipse) 裡,ABAP 代碼模闆仍然能夠繼續使用。和 SAPGUI 不同之處在于,其觸發方式有所變化,不再是通過點選 IDE 裡某按鈕觸發。

首先,在 Windows -> Preferences 裡,修改 ABAP Development Tool 裡觸發代碼自動補全的快捷鍵。

選擇 Keys -> Content Assist,預設的快捷鍵是 Ctrl + Space. 這個按鍵組合,在 Windows 系統裡會觸發輸入法切換,是以我們需要将其更改成其他的按鍵組合。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

我将其修改成了 Shift + L:

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

在 ABAP 編輯器裡,輸入 CALL FUNCTION 'READ 之後,敲 Shift + L :

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

就會看到所有以 READ 開頭的 ABAP 函數清單。從清單裡選擇 read_text 函數之後,在彈出框能看到該函數的輸入輸出參數,即所謂的 signature 明細。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

鍵入 Shift + Enter,就可以像在 SAPGUI 裡點選 Pattern 一樣,自動将該函數的調用代碼,插入到目前 ABAP 代碼中了。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

此外,在 ABAP Editor 的 ABAP Templates 裡,我們可以修改 ABAP Development Tool 自帶的标準 ABAP 模闆,也可以自定義新的 ABAP 代碼模闆。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

建立一個 ABAP 模闆,使用按鈕 Insert Variable, 可以在模闆代碼裡插入類似 ABAP 程式設計語言 sy-uname 等系統變量。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

比如來一段 Jerry 文章 你的ABAP程式給佛祖開過光麼?來試試Jerry這個小技巧 裡提到的注釋。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

最後編輯好的 ABAP 代碼模闆如下圖所示,另存為 JerryCustomTemplate:

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

在 ABAP 編輯器中,輸入 je,然後敲 Shift + L,從下拉清單裡選擇 JerryCustomTemplate 即可:

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

可以看到代碼模闆裡插入的變量,已經自動被替換成其實際值了。

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

關于 SAP ABAP Development Tool 的更多介紹,可以閱讀 Jerry 之前的文章:

不喜歡SAP GUI?那試試用Eclipse進行ABAP開發吧

給你的ABAP對象打上标簽(Tag)

ABAP開發環境終于支援以駝峰命名法自動格式化ABAP變量名了

比如在 ABAP Development Tool 裡設定 ABAP Formatter,讓其支援駝峰命名法:

ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

以及此處導入 ABAP 關鍵字的顔色配置,讓你的 ABAP 編輯器具有五彩缤紛的視覺效果:

https://github.com/FreHu/eclipse-abap-keywordcolors
ABAP Development Tool 代碼模闆和其他一些實用技巧彙總
ABAP Development Tool 代碼模闆和其他一些實用技巧彙總
ABAP Development Tool 代碼模闆和其他一些實用技巧彙總

感謝閱讀。

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做過的那些無聊的事情

使用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 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資料庫過程

曆史上的今天:程式設計語言中null引用的十億美元錯誤