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