亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專(zhuān)欄INFORMATION COLUMN

不喜歡SAP GUI?那試試用Eclipse進(jìn)行ABAP開(kāi)發(fā)吧

jkyin / 1506人閱讀

摘要:比如的的個(gè)性化設(shè)置是這樣的,字體必須用程序猿專(zhuān)用的等寬開(kāi)源字體,這樣顯得比較專(zhuān)業(yè)。我覺(jué)得網(wǎng)上流傳的程序猿和工具的鄙視鏈很無(wú)聊,與其有時(shí)間去鄙視別人,不如把這時(shí)間用來(lái)深入研究自己每天用的,進(jìn)一步提高自己?jiǎn)挝粫r(shí)間內(nèi)的工作效率。

Jerry和SAP成都研究院一些新同事聊天時(shí),談到ABAP和SAP GUI這個(gè)話(huà)題。很多新同事在加入SAP成都之前,是做Java和C++開(kāi)發(fā)的,習(xí)慣了Eclipse/IntelliJ IDEA/Visual Studio這些現(xiàn)代IDE,對(duì)于SAP GUI這個(gè)比較”復(fù)古“的IDE不太適應(yīng)。

其實(shí)還有一個(gè)選擇:ABAP Development Tools,最初在SAP內(nèi)部稱(chēng)為ABAP in Eclipse。這個(gè)工具SAP在很多場(chǎng)合簡(jiǎn)稱(chēng)為ADT,本文后續(xù)部分也使用這個(gè)簡(jiǎn)稱(chēng)。

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

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

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

文章目錄

1. ADT的工作原理

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

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

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

下面是正文。

*

1. ADT的工作原理

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

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

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

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

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

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

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

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

An example to help you understand how does ADT work

https://blogs.sap.com/2014/08...

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

User Session

ABAP Session

Internal Session

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

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

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

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

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

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

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

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

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

Delete unused variables:

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

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

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

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

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

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

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

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

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

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

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

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

使用方式和SAP GUI里的沒(méi)有差別。

(4) 方便的SQL console功能。

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

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

Jerry之前的公眾號(hào)文章?我用ABAP做過(guò)的那些無(wú)聊的事情?提到,有的朋友覺(jué)得SAP GUI里自帶的代碼比較工具不是很好用:

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

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

(1) ADT Link

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

這種Link格式如下:

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

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

(2) 自定義編輯器顏色

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

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

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

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

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

總結(jié)

說(shuō)了這么多,Jerry并不是在推銷(xiāo)ADT,在我心中SAP GUI和ADT都是優(yōu)秀的IDE,各有優(yōu)缺點(diǎn)。我覺(jué)得網(wǎng)上流傳的程序猿IDE和工具的鄙視鏈很無(wú)聊,與其有時(shí)間去鄙視別人,不如把這時(shí)間用來(lái)深入研究自己每天用的IDE,進(jìn)一步提高自己?jiǎn)挝粫r(shí)間內(nèi)的工作效率。

祝大家都能愉快地使用SAP GUI和ADT,做到得心應(yīng)手。感謝閱讀。

更多閱讀

動(dòng)手使用ABAP Channel開(kāi)發(fā)一些小工具,提升日常工作效率

聊聊C語(yǔ)言和ABAP

ABAP vs Java, 蛙泳 vs 自由泳

300行ABAP代碼實(shí)現(xiàn)一個(gè)最簡(jiǎn)單的區(qū)塊鏈原型

Jerry的ABAP原創(chuàng)技術(shù)文章合集

ABAP開(kāi)發(fā)人員未來(lái)應(yīng)該學(xué)些什么

Jerry的ABAP, Java和JavaScript亂燉

我用ABAP做過(guò)的那些無(wú)聊的事情

要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/71950.html

相關(guān)文章

  • 你的ABAP程序給佛祖開(kāi)過(guò)光么?來(lái)試試Jerry這個(gè)小技巧

    摘要:實(shí)現(xiàn)步驟非常簡(jiǎn)單,在標(biāo)準(zhǔn)程序的內(nèi)創(chuàng)建一個(gè)隱式增強(qiáng)。禁止在測(cè)試服務(wù)器和生產(chǎn)服務(wù)器使用否則由此造成的一切負(fù)面后果,本人及概不負(fù)責(zé)。 最近Jerry在忙一個(gè)項(xiàng)目,技術(shù)棧換成了nodejs平臺(tái),語(yǔ)言換成了JavaScript,因?yàn)橼s項(xiàng)目進(jìn)度,一直沒(méi)時(shí)間更新公眾號(hào)。感謝大家的支持,關(guān)注人數(shù)還是慢慢地增長(zhǎng)到了3000。 showImg(https://segmentfault.com/img/re...

    SQC 評(píng)論0 收藏0
  • #私藏項(xiàng)目實(shí)操分享# 使 JavaScript 上傳 PDF 和 Excel 等二進(jìn)制文件到 AB

    摘要:這是年的第篇文章,也是汪子熙公眾號(hào)總共第篇原創(chuàng)文章。使用通過(guò)格式發(fā)送和文件到服務(wù)器關(guān)于格式的詳細(xì)說(shuō)明,參考開(kāi)發(fā)社區(qū)和的文檔我在前文例子的基礎(chǔ)上稍作修改在里使用兩個(gè)類(lèi)型為的標(biāo)簽,分別上傳和文件用來(lái)測(cè)試的本地文件,大小為字節(jié)。 這是 Jerry 2021 年的第 71 篇文章,也是汪子熙公眾號(hào)總共第 348 篇原創(chuàng)文章。 Jerry 之前發(fā)布過(guò)一篇文章 不使用任何框架,手寫(xiě)純 Jav...

    peixn 評(píng)論0 收藏0
  • 些年我過(guò)的SAP IDE

    摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿(mǎn)目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...

    denson 評(píng)論0 收藏0
  • 些年我過(guò)的SAP IDE

    摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿(mǎn)目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...

    wawor4827 評(píng)論0 收藏0
  • 些年我過(guò)的SAP IDE

    摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿(mǎn)目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...

    lewif 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<