怎么用Eclipse進(jìn)行ABAP開發(fā)-創(chuàng)新互聯(lián)

這篇文章主要講解了“怎么用Eclipse進(jìn)行ABAP開發(fā)”,文中的講解內(nèi)容簡單清晰,易于學(xué)習(xí)與理解,下面請大家跟著小編的思路慢慢深入,一起來研究和學(xué)習(xí)“怎么用Eclipse進(jìn)行ABAP開發(fā)”吧!

創(chuàng)新互聯(lián)長期為1000+客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對不同對象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺,與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為大武口企業(yè)提供專業(yè)的成都網(wǎng)站設(shè)計(jì)、網(wǎng)站制作,大武口網(wǎng)站改版等技術(shù)服務(wù)。擁有十多年豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。

ABAP Development Tools,最初在SAP內(nèi)部稱為ABAP in Eclipse。這個工具SAP在很多場合簡稱為ADT,本文后續(xù)部分也使用這個簡稱。

簡單地說,SAP對Eclipse做了擴(kuò)展,開發(fā)了一些插件,使得開發(fā)人員能使用Eclipse完成部分以前在SAP GUI里進(jìn)行的ABAP開發(fā)工作。

怎么用Eclipse進(jìn)行ABAP開發(fā)

本文不去重復(fù)網(wǎng)上和SAP幫助文檔里對ADT的介紹,而是介紹一些Jerry的原創(chuàng)內(nèi)容。

Jerry曾經(jīng)寫過一篇文章  那些年我用過的SAP IDE , 里面也提到了ADT。本文對其做詳細(xì)介紹。

文章目錄

1. ADT的工作原理

2. SAP GUI和ADT的關(guān)系

3. ADT相比SAP GUI具有的一些獨(dú)到之處

4. ADT其他一些值得一提的小功能

下面是正文。


1. ADT的工作原理

很多從Eclipse做Java開發(fā)的朋友轉(zhuǎn)到ADT后,大的不習(xí)慣就是ADT沒辦法離線使用。即使是用SAP云平臺Neo編程環(huán)境里的SDK,開發(fā)人員也可以在本地完成開發(fā)后,使用命令行或者Eclipse Run As菜單將其發(fā)布到SAP云平臺上。然而這種用法對于ADT來說行不通,因?yàn)楹笳呷匀皇且粋€Client / Server模式中的Client端。從本質(zhì)上講,和SAP GUI的區(qū)別,僅僅體現(xiàn)在對Netweaver服務(wù)器上開發(fā)資源的展示和操作方式有所差異罷了。

正因?yàn)檫@種CS架構(gòu),每次我們在ADT里操作Netweaver上的ABAP資源時,比如編輯一個ABAP類并保存,實(shí)際上都是通過消費(fèi)ABAP后臺暴露出的Restful API來完成的。

這種Restful API的消費(fèi)行為可以通過打開ADT里的ABAP Communication Log視圖來觀察。點(diǎn)擊Start logging按鈕:

怎么用Eclipse進(jìn)行ABAP開發(fā)

在源代碼里隨便做一些改動,比如增加一個空行,能觀察到這個修改動作觸發(fā)了很多到ABAP后臺的HTTP請求:

怎么用Eclipse進(jìn)行ABAP開發(fā)

如果想自己調(diào)試這些后臺操作的具體實(shí)現(xiàn),用SAP GUI登錄ABAP后臺,使用事務(wù)碼SICF找到節(jié)點(diǎn)/sap/bc/adt:

怎么用Eclipse進(jìn)行ABAP開發(fā)

在節(jié)點(diǎn)處理類的方法HANDLE_REQUEST里設(shè)置斷點(diǎn)即可調(diào)試:

怎么用Eclipse進(jìn)行ABAP開發(fā)

HTTP請求發(fā)送到后臺之后,上述方法會調(diào)用一個統(tǒng)一的入口函數(shù)SADT_REST_RFC_ENDPOINT, 該函數(shù)和ADT后臺框架其他處理邏輯的交互如下圖所示:

怎么用Eclipse進(jìn)行ABAP開發(fā)

關(guān)于這些HTTP的請求和響應(yīng)明細(xì),請參考Jerry的博客:

An example to help you understand how does ADT work

https://blogs.sap.com/2014/08/12/an-example-to-help-you-understand-how-does-adt-work/

比如在ADT里對ABAP源代碼做語法檢查,實(shí)際上就是把整段代碼做一個Base64編碼,然后通過HTTP Post發(fā)送到后臺,由后臺執(zhí)行對應(yīng)的檢查函數(shù),結(jié)果通過HTTP響應(yīng)返回給ADT前端。

怎么用Eclipse進(jìn)行ABAP開發(fā)

相應(yīng)的,如果對ADT的前臺Java代碼感興趣,請移步ADT安裝目錄下的plugins文件夾,把里面的jar包反編譯出來閱讀源代碼即可。

怎么用Eclipse進(jìn)行ABAP開發(fā)

2. SAP GUI和ADT的關(guān)系

Jerry的個人觀點(diǎn)是:二者互為補(bǔ)充。

一方面,對于S/4HANA很多新功能的開發(fā),比如CDS view和AMDP(ABAP Managed Database Procedure), 開發(fā)人員沒有選擇的余地,必須使用ADT,因?yàn)镾AP GUI不支持這些新功能的開發(fā)。

比如在SAP GUI里即使想瀏覽CDS view的內(nèi)容也不行,會收到提示:

Please use the ADT Tools in Eclipse to process DDL sources.

怎么用Eclipse進(jìn)行ABAP開發(fā)

而AMDP,就是一個特殊的ABAP類,能夠在ABAP方法里執(zhí)行HANA的SQLScript或者存儲過程。

怎么用Eclipse進(jìn)行ABAP開發(fā)

SAP GUI里可以查看AMDP的源代碼,但是沒法做開發(fā)。試圖在SAP GUI里進(jìn)行編輯時,會遇到上面的提示信息:

Class XX contains stored procedures which cannot be changed in SAP GUI

反之,SAP GUI里一些比較傳統(tǒng)的開發(fā),ADT也是不支持的。舉一些例子。

傳統(tǒng)Dynpro程序的Screen開發(fā),雙擊Screen number,就可以通過點(diǎn)擊Layout按鈕打開Screen Painter,然后進(jìn)行所見即所得的Screen布局開發(fā):

怎么用Eclipse進(jìn)行ABAP開發(fā)

然而如果在ADT里試圖編輯這個Screen會發(fā)生什么事?

怎么用Eclipse進(jìn)行ABAP開發(fā)

ADT會打開一個新的標(biāo)簽頁,里面顯示一個嵌入的SAP GUI窗口,像Screen Painter和其他一些傳統(tǒng)的ABAP開發(fā),均在這個嵌入的SAP GUI里進(jìn)行。

怎么用Eclipse進(jìn)行ABAP開發(fā)

這就是Jerry在這一小節(jié)標(biāo)題里提到SAP GUI和ADT互為補(bǔ)充的含義:即便使用了ADT,也不意味著能和SAP GUI說再見——很多傳統(tǒng)的ABAP開發(fā)仍然需要在SAP GUI里進(jìn)行,哪怕是作為一個窗口嵌入在ADT里。

怎么用Eclipse進(jìn)行ABAP開發(fā)

使用SAP GUI做開發(fā)的ABAP顧問,應(yīng)該明白這三個session的區(qū)別:

  • User Session

  • ABAP Session

  • Internal Session

怎么用Eclipse進(jìn)行ABAP開發(fā)

我們每次用SAP GUI登錄一個系統(tǒng),都會產(chǎn)生一個新的User Session,每個User Session里用/o打開一個新的事務(wù)碼,則是在該User Session里開啟了一個新的ABAP Session。一個User Session默認(rèn)能打開最多6個ABAP Session,可以通過修改系統(tǒng)參數(shù)把大數(shù)目擴(kuò)充為16個。

怎么用Eclipse進(jìn)行ABAP開發(fā)

那么ADT里打開的嵌有SAP GUI窗口的標(biāo)簽頁,背后啟動的Session類型是什么?經(jīng)過Jerry測試,答案是User Session。

下圖是ADT里打開的兩個標(biāo)簽和其對應(yīng)的兩個User Session,用不同顏色來區(qū)分。

怎么用Eclipse進(jìn)行ABAP開發(fā)

3. ADT和SAP GUI相比一些獨(dú)到之處

既然是一個基于Eclipse的IDE,ADT和SAP GUI相比還是存在一些獨(dú)到之處。

(1) 由于ADT是基于Eclipse這個較之SAP GUI來說更加現(xiàn)代的IDE,從使用習(xí)慣上來說更貼近Java/C++程序員。

以ABAP類為例,各個維度的信息在ADT里能在一個屏幕里同時顯示,在SAP GUI里一個屏幕顯示的信息維度很單一,如果想看其他維度信息,只有通過雙擊的方式跳轉(zhuǎn),查看完畢后通過回退鍵回到正在工作的界面。

怎么用Eclipse進(jìn)行ABAP開發(fā)

又比如所有添加了關(guān)注的系統(tǒng)的ST22信息能在一個地方統(tǒng)一監(jiān)控了,Jerry再也不需要自己開發(fā)工具實(shí)現(xiàn)了:

怎么用Eclipse進(jìn)行ABAP開發(fā)

(2) ADT提供了很多代碼重構(gòu)的向?qū)?Assistant), Java和C++的開發(fā)人員對這些類的重構(gòu)功能一定不會陌生。

怎么用Eclipse進(jìn)行ABAP開發(fā)

Delete unused variables:

快速刪除一個方法里所有定義了但未使用的局部變量,這個功能很實(shí)用,SAP GUI不支持。

怎么用Eclipse進(jìn)行ABAP開發(fā)

**Extract Methods: **如果一段代碼反復(fù)出現(xiàn),可以考慮用重構(gòu)技術(shù)里的方法提取,將其封裝成一個方法。

當(dāng)然還在使用SAP GUI的開發(fā)人員要使用ABAP重構(gòu)向?qū)б彩强梢缘模?根據(jù)SAP GUI版本的不同, 入口也稍有差異。

在Jerry的SAP GUI 740版本里,重構(gòu)向?qū)ㄟ^Utilities菜單進(jìn)入。

怎么用Eclipse進(jìn)行ABAP開發(fā)

740之前的版本,重構(gòu)向?qū)У拇蜷_方式大同小異:

怎么用Eclipse進(jìn)行ABAP開發(fā)

(3) 對SAP GUI一些常用功能的原生支持

所謂原生支持,指用Eclipse原生的頁面來提供以前在SAP GUI里實(shí)現(xiàn)的功能。

對ABAP開發(fā)顧問來說,幾乎每天都要在SAP GUI進(jìn)行的操作就是ABAP類和報表的調(diào)試。

有的以前從事Java開發(fā)的朋友們轉(zhuǎn)到SAP GUI后,剛上手時使用SAP GUI的調(diào)試器總覺得很別扭。一旦使用ADT的調(diào)試器,熟悉的味道又回來了。在ADT里調(diào)試ABAP和Eclipse里調(diào)試Java程序的方式完全一致。

怎么用Eclipse進(jìn)行ABAP開發(fā)

SAP GUI里的單元測試和分支/語句執(zhí)行覆蓋率:

怎么用Eclipse進(jìn)行ABAP開發(fā)

怎么用Eclipse進(jìn)行ABAP開發(fā)

ADT里也提供了單元測試和各種覆蓋率審查的原生支持:

怎么用Eclipse進(jìn)行ABAP開發(fā)

SAP GUI里的事務(wù)碼SAT在ADT里的原生支持:

怎么用Eclipse進(jìn)行ABAP開發(fā)

使用方式和SAP GUI里的沒有差別。

怎么用Eclipse進(jìn)行ABAP開發(fā)

(4) 方便的SQL console功能。

以前在SAP GUI里時,有時出于測試目的想寫些簡單的SQL語言做些驗(yàn)證,還得創(chuàng)建一個報表然后在報表里書寫。在ADT里,直接使用SQL console就可省去不必要的報表創(chuàng)建:

怎么用Eclipse進(jìn)行ABAP開發(fā)

怎么用Eclipse進(jìn)行ABAP開發(fā)

(5) 改進(jìn)的代碼版本比較功能

Jerry之前的公眾號文章  我用ABAP做過的那些無聊的事情  提到,有的朋友覺得SAP GUI里自帶的代碼比較工具不是很好用:

怎么用Eclipse進(jìn)行ABAP開發(fā)

如今在ADT里,ABAP開發(fā)人員終于可以像Java程序員一樣,享受Eclipse提供的便利的代碼版本比較功能了:

怎么用Eclipse進(jìn)行ABAP開發(fā)

4. ADT其他一些值得一提的小功能

(1) ADT Link

比如任何一個在ADT里能夠查看的資源,都有一個所謂的ADT Link,通過菜單Share Link查看:

怎么用Eclipse進(jìn)行ABAP開發(fā)

這種Link格式如下:

adt://AG3/sap/bc/adt/vit/wb/object_type/tabldt/object_name/ZORDER

通過Open ADT Link菜單,輸入上述ADT Link,能直接打開對應(yīng)的資源,而不需要像SAP GUI那樣,需要先運(yùn)行正確的事務(wù)碼,進(jìn)入事務(wù)碼之后再打開資源。

怎么用Eclipse進(jìn)行ABAP開發(fā)

(2) 自定義編輯器顏色

Jerry和很多程序猿一樣,兩件T恤衫就能穿一個夏天:

怎么用Eclipse進(jìn)行ABAP開發(fā)

怎么用Eclipse進(jìn)行ABAP開發(fā)

然而對于自己每天都要使用八到十個小時的IDE,其個性化裝扮是一點(diǎn)都不能含糊。

如何才能讓您的IDE和其他程序猿相比顯得與眾不同呢?一個辦法是個性化字體和背景色。比如Jerry的SAP GUI的個性化設(shè)置是這樣的,字體必須用程序猿專用的等寬開源字體Inconsolata,這樣顯得比較專業(yè)。

怎么用Eclipse進(jìn)行ABAP開發(fā)

SAP GUI的顏色個性化設(shè)置稍顯麻煩,需要一項(xiàng)項(xiàng)手動設(shè)置。而ADT因?yàn)槭腔贓clipse,所以主題的個性化就容易多了。如果覺得下面的dark主題還不夠酷,

怎么用Eclipse進(jìn)行ABAP開發(fā)

安裝一個名叫Eclipse Color Theme的插件,就可以使用這個插件預(yù)置好的幾十套主題,真正做到一年54周每周換一套了。程序猿衣著可以隨便,但I(xiàn)DE或者代碼編輯器決不能隨便。

怎么用Eclipse進(jìn)行ABAP開發(fā)

感謝各位的閱讀,以上就是“怎么用Eclipse進(jìn)行ABAP開發(fā)”的內(nèi)容了,經(jīng)過本文的學(xué)習(xí)后,相信大家對怎么用Eclipse進(jìn)行ABAP開發(fā)這一問題有了更深刻的體會,具體使用情況還需要大家實(shí)踐驗(yàn)證。這里是創(chuàng)新互聯(lián),小編將為大家推送更多相關(guān)知識點(diǎn)的文章,歡迎關(guān)注!

當(dāng)前文章:怎么用Eclipse進(jìn)行ABAP開發(fā)-創(chuàng)新互聯(lián)
當(dāng)前URL:http://www.muchs.cn/article26/ceoojg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供外貿(mào)網(wǎng)站建設(shè)商城網(wǎng)站、營銷型網(wǎng)站建設(shè)、企業(yè)網(wǎng)站制作、定制網(wǎng)站、網(wǎng)站改版

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

營銷型網(wǎng)站建設(shè)