SAPLink是一個幫助人們分享開發內容的工具。通過它,人們可以將ABAP開發物件從一個系統打包下載、再上傳到另一個系統中。對於各種型別的開發者,它都可以起到作用:
- 有的開發者喜歡在不同的專案中複製相似的程式、修修改改以實現快速實施。
- 有的開發者野心勃勃,希望開發自己的特定問題解決方案。
- 有的開發者希望從網路得到現成的示例程式,幫助自己學習。
恐怕絕大部分ABAP開發者都使用過或者聽說過SAPLink,因此這裡不再對它的做過多介紹。但是,也許有一部分人還不瞭解他的替代品:abapGit。本文試圖解釋,為什麼我們應該是用abapGit替代SAPLink。
本文連結:https://www.cnblogs.com/hhelibeb/p/12988213.html
轉載請註明
SAPLink的侷限性
SAPLink的基本功能是把指定的開發物件序列化成為特定格式的檔案,以及反過來把檔案反序列化在系統中生成相應的開發物件。這一功能的概念在2020年的今天並不過時,但在具體的實現上,它是有一些問題的。
安裝成本
SAPLink的安裝需要遵循一些步驟,對於新人來說可能不是特別簡單。我已經多次遇到SAP系統中的SAPLink不可用的情況,並被相關開發人員告知“不知道為什麼不能用,可能是安裝問題”。
功能不完善
越過了安裝問題後,另一個難關是在實際使用中它不時會出現一些問題,有時是不支援某種型別的開發物件,需要安裝外掛,有時是匯入中的dump,有時是匯入後的物件錯誤。
無人維護
軟體總會有不完美的地方,但如果沒有了維護者,那就意味著它的各種問題不會再得到改善。如今,當我們訪問原本是SAPLink的網站saplink.org,我們會被重定向至一個Github頁面:https://github.com/sapmentors/SAPlink,由此我們可以得知這一專案其實已經不再被維護,而它的繼任者為abapGit。
abapGit的優勢
abapGit繼承了SAPLink的基本功能——將開發物件上傳下載,同時有著更多的優勢。
易於安裝
abapGit是一個單檔案報表程式,因此開發者只需要在SE38新建檔案,複製貼上程式碼,啟用即可安裝abapGit。(這一點在新版的abapGit中稍有變化,不過整體來說難度還是很簡單)
豐富的物件支援
abapGit支援上百種開發物件,而且它的表現十分可靠,對於常用的開發物件如類、資料字典、函式組、螢幕,我從未見過它出錯。
穩定的維護者
abapGit是迄今為止最大的ABAP開源專案,它有著90+貢獻者,3000+的提交次數,100000+行程式碼,專案的所有者
良好的生態
abapGit得到了廣大開發者和SAP的支援,通過abapGit開發者可以利用豐富的ABAP開源資源,也可以參與其中,貢獻自己的專案、程式碼或思考。很多大公司在使用abapGit,包括SAP本身。你甚至可以在SAP的官方文件找到abapGit的中文教程:使用 abapGit。
Q & A
一些常見問題。
Git是什麼,Github又是什麼?
Git是一種分散式版本管理系統。
abapGit是用於處理SAP開發物件的Git客戶端,下載/上傳開發物件是它的功能之一。
Github是一個網站,它提供了程式碼倉庫的功能,很多人使用Github來線上儲存/分享程式碼,目前大部分ABAP開源專案會在Github釋出。
伺服器能訪問外網是使用abapGit的必要條件嗎?
不是,儘管abapGit提供了方便的線上模式,開發者依然可以通過離線模式像使用SAPLink那樣通過上傳下載檔案的方式匯出和匯入開發物件。
如果開發者所在的公司防火牆內有Git程式碼倉庫,比如自己搭建的Gitlab,也可以通過abapGit連線它,把程式碼傳輸到上面。
abapGit會導致我的程式碼洩露嗎?
有人懷疑使用abapGit之後,自己的程式碼可能會不聲不響地出現在Github之類的網站上。在看過上一個問題後,有這種疑問的讀者應該會明白這是不可能的。
abapGit就像一個運鈔車,它可以方便地運輸大量鈔票,但這不代表車上的鈔票會自動跑到汽車交易平臺。運到何處,司機(開發者)可以自行控制。
也可以通過許可權控制,限制能使用abapGit的使用者。
我要怎樣安裝abapGit?
上文已經說過,abapGit是一個單檔案報表程式,因此開發者只需要在SE38新建檔案,複製貼上程式碼,啟用即可安裝abapGit。程式碼可以從官方文件獲取:
https://docs.abapgit.org/guide-install.html
怎樣利用開源資源?
前往github.com或dotabap.org查詢你想用的東西,比如geohash,使用clone or download下載zip包,
然後在abapGit中create-import-pull即可。參考官方文件:
https://docs.abapgit.org/guide-import-zip.html
abapGit有什麼缺點嗎?
在深入應用abapGit之後,一些開發者提出過使用它時遇到的一些問題,比如:
- 由於SAP開發模式的特殊性,很難使用Git的分支功能。參考《abapGit分支策略》,這篇文章的英文原文中有很多討論。
- abapGit對物件的上傳下載是基於包的,這意味著如果開發者想上傳下載的開發物件是跨包的,那麼可能需要處理包含這兩個包的父包。除非包與包之間的隔離很好(這在二次開發中很少見),那麼最終可能會演變成必須有一個包含所有物件的總包,可以想象,上傳下載這個總包會花費大量的時間...
- 少數型別的物件沒有被支援。
但這些問題基本都是在一些複雜的使用場景才會出現,而且社群也在試圖解決。它們絲毫不影響abapGit替代SAPLink的能力。
擴充套件閱讀:
abapGit Branching Strategy Discussion
How we do ABAP code review using abapGit