摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。
在Google上根據(jù)關(guān)鍵字”程序員鄙視鏈”搜索,會(huì)得到68多萬(wàn)條結(jié)果。
玲瑯滿目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。
其中有一個(gè)維度,就是編程工具的鄙視鏈,比如:
而我在SAP做的所有開(kāi)發(fā)都用的是IDE而不是text editor,看來(lái)我也免不了處于鄙視鏈末端的結(jié)局了。
這篇文章我想介紹一些我用過(guò)的SAP IDE的周邊。希望您看了之后有些許收獲。而像Eclipse, Visual Studio這些IDE在SAP圈子外使用也更加廣泛,所以本文不再提及。
本文里提到的所有IDE都是基于Windows版本的,這使得我又一次被鄙視了:使用Mac OS的程序猿鄙視使用Windows OS的程序猿。
我在SAP工作期間用過(guò)的IDE清單如下:(名稱不包含SAP則說(shuō)明該IDE不是由SAP開(kāi)發(fā)出來(lái)的)
SAPGUI
SAP ABAP Development Tools
SAP Cloud Application Studio
SAP WebIDE(codepen, jsbin)
Sublime Text(文本編輯器)
Android Studio(Cloud9)
VirtualBox + Putty
SAPGUI
SAPGUI是所有ABAPer養(yǎng)家糊口的工具,見(jiàn)證了SAP從只有5個(gè)員工的無(wú)名之輩走向企業(yè)管理軟件巔峰的輝煌之路。從嚴(yán)格意義上講,SAPGUI不僅僅是個(gè)IDE,也是很多使用SAP傳統(tǒng)管理軟件的業(yè)務(wù)人員們每天工作使用的工具。有個(gè)段子就是某同事去蘇寧買(mǎi)電器,在柜臺(tái)結(jié)賬時(shí),銷(xiāo)售小妹說(shuō),”您等等, 現(xiàn)在系統(tǒng)有問(wèn)題,下不了單。” 該同事走上前去看了看屏幕說(shuō),”喲,出error啦?讓我F1看看錯(cuò)誤明細(xì),再看看/h能不能用。” 用過(guò)SAPGUI的讀者一定明白我在說(shuō)什么。
本文我盡量分享一些我的原創(chuàng)以及并非每位朋友都知道的一些小技巧。
2013年的時(shí)候,我看到SAP社區(qū)上有些朋友在討論SAPGUI command line這些用過(guò)的事物碼列表是存儲(chǔ)在什么地方的:
得到的答案是,如果是Windows系統(tǒng),則存儲(chǔ)在操作系統(tǒng)的注冊(cè)表里:
具體討論見(jiàn)如下鏈接:
https://blogs.sap.com/2013/10...
當(dāng)時(shí)我覺(jué)得比較有意思,然后想知道有沒(méi)有一個(gè)通用且快速的辦法,找到SAPGUI里任意一個(gè)設(shè)置,是存儲(chǔ)在注冊(cè)表里具體哪個(gè)位置的。
同樣是2013年,我寫(xiě)過(guò)一篇博客:Six kinds of debugging tips to find the source code where the message is raised
需求就是在SAPGUI里看到一條錯(cuò)誤信息,怎樣用六種不同的辦法找到具體是哪一行ABAP代碼拋出的這條錯(cuò)誤信息。最后一種使用ST05跟蹤的思路也適用于現(xiàn)在討論的如何查找SAPGUI的配置在Windows操作系統(tǒng)注冊(cè)表里的具體存儲(chǔ)位置:
1. 在修改SAPGUI配置之前,將注冊(cè)表導(dǎo)出存為A;
2. 修改SAPGUI配置,然后將注冊(cè)表導(dǎo)出存為B;
3. 用工具比較A和B差異,即可獲得該配置在注冊(cè)表里存儲(chǔ)的位置。
我最早遇到需要將SAPGUI里某段ABAP代碼導(dǎo)出成PDF格式時(shí),總是先新建一個(gè)word文檔,在ABAP代碼上Ctrl C然后Ctrl V到word文檔,最后把word文檔轉(zhuǎn)換成PDF。
其實(shí)SAPGUI里自帶一鍵將代碼導(dǎo)出成PDF的功能。只需要在下圖配置里給導(dǎo)出PDF功能分配對(duì)應(yīng)的快捷鍵:
然后就可一鍵保存成PDF:
值得一提的是,因?yàn)镾APGUI里的所有事物碼也是通過(guò)ABAP開(kāi)發(fā)的,包括用來(lái)做開(kāi)發(fā)的事物碼SE80本身。因此這些事物碼本身也是可以通過(guò)ABAP進(jìn)行增強(qiáng)的。
比如我在SE80的開(kāi)發(fā)對(duì)象類(lèi)型里,自定義了一種新的名稱為”Jerry’s Product”的開(kāi)發(fā)對(duì)象類(lèi)型,能夠像其他所有開(kāi)發(fā)對(duì)象一樣,通過(guò)右鍵菜單進(jìn)行創(chuàng)建:
新建一個(gè)開(kāi)發(fā)對(duì)象的實(shí)例,維護(hù)名稱:
實(shí)例創(chuàng)建成功之后,能在SE80里繼續(xù)維護(hù)其他明細(xì):
再比如倘若您對(duì)SAPGUI里ABAP編輯器標(biāo)準(zhǔn)的ABAP語(yǔ)法檢查不太滿意,想對(duì)其做增強(qiáng),這當(dāng)然是可以的。具體步驟參考我的博客:Implement Custom Syntax Check in SAPGUI
這種語(yǔ)法增強(qiáng)的一個(gè)應(yīng)用例子,可以參考我公眾號(hào)文章?Jerry的ABAP, Java和JavaScript亂燉?里提到的博客:Covariance in Java and simulation in ABAP.
我寫(xiě)這篇博客的背景是為SAP成都研究院的一個(gè)內(nèi)部技術(shù)培訓(xùn)準(zhǔn)備培訓(xùn)材料。該文首先介紹了Covariance和Contravaariance的概念,然后描述了Covariance在Java里的實(shí)現(xiàn),最后給出了我在ABAP里對(duì)于Covariance的一個(gè)模擬實(shí)現(xiàn),以及如何增強(qiáng)ABAP編輯器的語(yǔ)法檢查使其能夠自動(dòng)檢測(cè)出違反了Covariance規(guī)范的代碼。
我記得在2011年的時(shí)候,WebIDE的概念比較火,WebIDE使得開(kāi)發(fā)者只需要一個(gè)瀏覽器就可以編寫(xiě)代碼,并在WebIDE 提供的終端環(huán)境中運(yùn)行。
當(dāng)時(shí)我就覺(jué)得很?chē)? 因?yàn)轭?lèi)似WebIDE的概念,其實(shí)SAPGUI在很早很早之前就支持了。SAP Netweaver里有個(gè)模塊叫SAP Internet Trasaction Server,能讓SAPGUI里的流程運(yùn)行于瀏覽器里。關(guān)于這個(gè)模塊的詳細(xì)介紹,請(qǐng)參考SAP幫助文檔:?SAP ITS in SAP NetWeaver Application Server
舉個(gè)例子:我可以把SAPGUI里的SE80放到Fiori的Launchpad里,
點(diǎn)擊該Tile,能直接在瀏覽器里使用SE80。如下圖所示:
只需要一些簡(jiǎn)單的配置即可實(shí)現(xiàn)上述效果,具體步驟見(jiàn)我博客:Open your SAP GUI transaction in Fiori launchpad
原理介紹見(jiàn)我的另一篇博客:How is old SAP GUI transaction embedded into Fiori launchpad
文內(nèi)也提到S/4HANA里有大量的Fiori tile使用到了這種技術(shù),即通過(guò)ITS的方式,讓很古老的一些事務(wù)碼比如MM01繼續(xù)在瀏覽器里運(yùn)行。下面第一張圖是SAPGUI里使用事務(wù)碼MM01打開(kāi)的物料創(chuàng)建頁(yè)面,第二張圖是該事務(wù)碼通過(guò)ITS運(yùn)行在瀏覽器里的截圖。
可以看出這兩個(gè)頁(yè)面的布局完全一致。
再回到IDE這個(gè)話題,直接通過(guò)我的上述博客提到的方式在瀏覽器里運(yùn)行SE80,其實(shí)不能算嚴(yán)格意義上的WebIDE,因?yàn)槿狈φZ(yǔ)法高亮。
這種局限在S/4HANA里得到了改善。S/4HANA里有個(gè)應(yīng)用叫做Custom Logic,能允許我們直接在瀏覽器里編輯ABAP代碼,支持語(yǔ)法高亮顯示,如下圖所示:
我不久前剛剛研究過(guò)ABAP的語(yǔ)法高亮顯示是怎么在Chrome瀏覽器里實(shí)現(xiàn)的。如果您對(duì)此技術(shù)細(xì)節(jié)感興趣,請(qǐng)參考我的博客:How ABAP syntax highlight is implemented in WebIDE launched via browser
SAP ABAP Development Tools
以前SAP內(nèi)部喜歡把這個(gè)IDE稱為ABAP in Eclipse。現(xiàn)在的官方叫法是ABAP Development Tools。實(shí)質(zhì)上就是SAP在Eclipse上以插件(plugin)的方式做了一些擴(kuò)展。
很多具有Java開(kāi)發(fā)經(jīng)驗(yàn)的朋友們都喜歡用ABAP Development Tools進(jìn)行ABAP開(kāi)發(fā)。我在2014年時(shí),曾經(jīng)研究過(guò)ABAP Development Tool這個(gè)IDE的Java實(shí)現(xiàn)代碼,是如何通過(guò)RFC(Remote Function Call)調(diào)用到ABAP后臺(tái)的。
分析的關(guān)鍵是使用IDE里這個(gè)log功能:
ABAP Development Tools的后臺(tái)實(shí)現(xiàn)細(xì)節(jié)請(qǐng)參考我博客:?An example to help you understand how does ADT work
而IDE端的Java實(shí)現(xiàn)細(xì)節(jié),可以將安裝目錄的plugins文件夾下的.class文件反編譯出來(lái)自行學(xué)習(xí):
SAP HANA Studio
和ABAP Development Tools一樣,HANA Studio也是基于Eclipse的IDE,只是其擁有的SAP自開(kāi)發(fā)的plugin和ABAP Development Tools有所區(qū)別。因?yàn)樾枰诖薎DE里連接SAP HANA數(shù)據(jù)庫(kù),因此大多plugin都以命名空間com.sap.ndb.studio開(kāi)頭。這里的ndb實(shí)際上是HANA剛剛誕生時(shí)的SAP內(nèi)部名稱: New DB的縮寫(xiě)。
既然是基于Java實(shí)現(xiàn)的plugin去連接HANA數(shù)據(jù)庫(kù),必然少不了JDBC。在HANA Studio里的大多數(shù)操作都會(huì)使用到com.sap.ndb.studio.jdbc這個(gè)plugin:
其實(shí)現(xiàn)代碼也是可以將plugin文件夾里的.class文件反編譯出來(lái)查看。
SAP Cloud Application Studio
SAP Business by Design和SAP Cloud for Customer的Partners使用該IDE進(jìn)行二次開(kāi)發(fā)。
該IDE基于Visual Studio Shell開(kāi)發(fā),與后者的關(guān)系類(lèi)似于SAP ABAP Development Tools / SAP HANA Studio和Eclipse的關(guān)系。我于2011年到2012年參與了該IDE的開(kāi)發(fā),使用的編程語(yǔ)言是C#。
Cloud Application Studio工作原理和ABAP Development Tools類(lèi)似,在C#端通過(guò)RFC調(diào)用ABAP后臺(tái)暴露出的API。
例如在IDE里選擇了右鍵菜單的Activate之后,
會(huì)執(zhí)行下圖C#代碼中的ActivateContent函數(shù)進(jìn)行ABAP后臺(tái)對(duì)應(yīng)資源的激活處理。而圖中的C#代理類(lèi)PDI_RI_CONTENT_ACTIVATE, 對(duì)應(yīng)了ABAP后臺(tái)的同名函數(shù)。一旦圖中最后一行代碼jsonClient.callFunctionModule(proxy)執(zhí)行,ABAP后臺(tái)函數(shù)PDI_RI_CONTENT_ACTIVATE就會(huì)被遠(yuǎn)程調(diào)用。
SAP WebIDE
我2014年到2016年做Fiori產(chǎn)品開(kāi)發(fā)用的就是這個(gè)IDE。更多關(guān)于這個(gè)WebIDE的細(xì)節(jié)可以參考我的另一篇公眾號(hào)文章:
Jerry的通過(guò)CDS view + Smart Template 開(kāi)發(fā)Fiori應(yīng)用的blog合集如果只是寫(xiě)一些小的Web程序,我也喜歡用一些其他的工具,比如CodePen?https://codepen.io:
或者jsbin。這些工具都支持開(kāi)發(fā)人員直接在瀏覽器里編碼并運(yùn)行,非常方便。
我的Cloud for Customer開(kāi)發(fā)同事們也喜歡用Atom和WebStorm進(jìn)行前端開(kāi)發(fā)。
Sublime Text(文本編輯器)
該文本編輯器的一大特色是提供了非常簡(jiǎn)易的方式讓編程人員自行開(kāi)發(fā)能提升自己工作效率的插件。作為一個(gè)例子,您可以參考我的博客:Step by Step to develop your own Sublime Text plugin
Sublime Text另一個(gè)我很喜歡的功能是它也具有支持ABAP語(yǔ)法高亮顯示的插件:您可以通過(guò)這個(gè)鏈接獲得.
Android Studio
用于SAP Cloud for Customer移動(dòng)端Android平臺(tái)。作為Android的腦殘粉,平時(shí)寫(xiě)一些Android小程序,我不會(huì)打開(kāi)相對(duì)比較笨重的Android Studio,而使用一些Android WebIDE,比如Cloud9:
VirtualBox + Putty
這個(gè)組合其實(shí)不能算IDE了,極大的提升了我日常工作的效率。VirtualBox里安裝的ubuntu默認(rèn)配置下的console模式存在一些讓我覺(jué)得使用起來(lái)不太方便的地方,比如不支持來(lái)自windows OS的復(fù)制粘貼,不支持自定義字體類(lèi)型和大小等等,而后者對(duì)我來(lái)說(shuō)至關(guān)重要。
于是,我會(huì)選擇先用VirtualBox啟動(dòng)ubuntu實(shí)例,然后再用Putty遠(yuǎn)程登錄上去,之后所有對(duì)ubuntu的操作都在Putty里完成。而Putty里是支持復(fù)制粘貼,自定義字體等等。
下圖是VirtualBox原生的ubuntu console截圖。
下圖是用Putty遠(yuǎn)程登錄ubuntu之后的操作界面。
通過(guò)比較能發(fā)現(xiàn),在Putty里我將字體類(lèi)型改成了我的最?lèi)?ài)Inconsolata,大小改成了20。有的朋友可能覺(jué)得其實(shí)兩張圖看起來(lái)都差不多。好吧,作為一個(gè)程序猿,每天看著這些界面的時(shí)間比對(duì)著老婆的時(shí)間還長(zhǎng),多花些心思把這些界面設(shè)置成自己看起來(lái)最順眼的樣子,有助于確保我始終帶著舒適的心情去編程。
當(dāng)然,SAP有著眾多的產(chǎn)品線,也就存在著形形色色的開(kāi)發(fā)工具。一個(gè)程序員不可能接觸到所有的開(kāi)發(fā)工具。本文僅僅列出了我工作中使用到的一些IDE,感謝閱讀。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/76383.html
摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...
摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...
摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...
摘要:本文里提到的所有都是基于版本的,這使得我又一次被鄙視了使用的程序猿鄙視使用的程序猿。因此這些事物碼本身也是可以通過(guò)進(jìn)行增強(qiáng)的。 在Google上根據(jù)關(guān)鍵字程序員鄙視鏈搜索,會(huì)得到68多萬(wàn)條結(jié)果。 showImg(https://segmentfault.com/img/remote/1460000014000687); 玲瑯滿目的搜索結(jié)果里是眾多不同維度劃分的鄙視鏈。 其中有一個(gè)維度,...
摘要:在以下簡(jiǎn)稱和以下簡(jiǎn)稱開(kāi)發(fā)團(tuán)隊(duì)都工作過(guò),這篇文章給出這兩款產(chǎn)品一些技術(shù)層面的比較。標(biāo)準(zhǔn)開(kāi)發(fā)方式和的雖然看起來(lái)都是風(fēng)格,但實(shí)現(xiàn)技術(shù)不同。而的標(biāo)準(zhǔn)則是基于和協(xié)作而成的。 如果您對(duì)SAP S/4HANA for Customer Management(以下簡(jiǎn)稱S4CRM)和SAP Cloud for Customer(以下簡(jiǎn)稱C4C)不甚熟悉,那我建議您可以先瀏覽我之前寫(xiě)的這兩篇微信公眾號(hào)文章...
閱讀 2256·2021-11-25 09:43
閱讀 3123·2021-10-14 09:42
閱讀 3484·2021-10-12 10:12
閱讀 1526·2021-09-07 10:17
閱讀 1901·2019-08-30 15:54
閱讀 3181·2019-08-30 15:54
閱讀 1550·2019-08-30 15:53
閱讀 1908·2019-08-29 11:21