SAP新一代全棧開發工具:SAP Business Application Studio

做爲SAP從業者,咱們可以清楚地感覺到這些年SAP技術進化的趨勢。前端

SAP前端開發技術的進化方向,從SAP GUI,到能在瀏覽器裏運行的ABAP Webdynpro / WebClient UI,再到如今仍然沒有中止進化的Fiori UX. 而Fiori也從誕生之初只支持SAP UI5,進化到如今可以同時支持Angular, React和Vue等多種前端框架。node

關於SAP前端技術的演進,能夠參考Jerry這些文章:npm

而SAP後端開發技術,自從SAP雲平臺問世之後,SAP開發人員發現,本身手頭可選的技術,除了ABAP之外,一會兒增長了不少:好比開源社區很是活躍的Java和nodejs,終於也可以應用到SAP後臺開發中來了。而SAP雲平臺自己,也從誕生之初純粹由SAP本身架設數據中心的單一雲架構,演進到現在能支持GCP, Azure, AWS和阿里雲等做爲基礎設施層的Multiple Clou架構。json

本文我們不聊具體的技術,而是談談開發工具。後端

Jerry以前的文章 那些年我用過的SAP IDE,介紹過我曾經用過的SAP開發工具。現在,這個列表裏又多了一個新的成員。瀏覽器

2019年TechEd上,SAP向外界宣佈了一款在原有SAP WebIDE基礎上進化而成的新一代全棧開發工具:SAP Business Application Studio.前端框架

SAP開發人員可以用這個新工具作什麼?架構

SAP Business Application Studio針對不一樣的SAP解決方案提供了良好的支持,可以進行S/4HANA擴展開發,以及基於SAP CAP模型(Cloud Application Programming)的全棧式開發(技術棧是Java和nodejs), 以及各類類型的Fiori應用開發。app

SAP Business Application Studio同SAP WebIDE有何不一樣?框架

SAP官方將Business Application Studio稱之爲WebIDE進化後的產物,該工具吸收了當今業界領先IDE的設計理念,專門爲SAP雲平臺上的全棧應用開發進行過優化;工具提供的強大命令行工具,使得開發人員不會被GUI界面所束縛。

最後,Business Application Studio基於Eclipse Theia這款開源的IDE,這使得它從架構上來講,能夠從容應對任何在雲端開發領域涌現出的新需求。

https://theia-ide.org/

舉個例子,咱們在Business Application Studio(下文簡稱爲BAS)的插件列表裏,能看到許多插件,有的是開源社區貢獻的插件,好比vscode-eslint, 有的則來自SAP自研,好比vscode-mta-tools, 可以讓開發人員利用BAS的命令行,無需登陸SAP雲平臺控制檯,就可進行SAP MTA應用的開發和部署。

在使用BAS以前,咱們先來了解一個概念:Dev Space(開發空間).

一個開發空間是一個預先配置好的環境,背後實際對應了SAP雲平臺上的虛擬機。建立開發空間時,能夠選擇不一樣的類型,每一個類型對應一種特定的開發場景。

每一個特定類型的開發空間,都事先激活了完成該類開發任務所必須的Studio擴展(SAP Predefined Extensions),在建立開發空間時能夠看到這些擴展列表。

我選擇的是SAP Fiori類型的空間,建立成功後,點擊超連接進入:

若是是在WebIDE裏,開發界面打開後,咱們就能夠用Create from Template菜單,經過嚮導來完成Fiori應用的建立。

在BAS裏,咱們能夠換一種方式,經過命令行來建立Fiori應用的骨架。

命令行裏鍵入yo,啓動SAP Fiori Project Generator, 選擇Fiori Project:

接下來是選擇該Fiori應用的運行環境,有CloudFoundry和ABAP兩種選擇,咱們選擇前者:

而後是一些常規信息的維護。

命令行嚮導執行完畢後,就生成了Fiori應用必須的資源文件。作過nodejs開發的朋友,會發現這個步驟和用npm init生成manifest.json文件很像。

咱們要指定這個Fiori應用應該消費哪一個OData服務。

在Studio上方的命令工具欄裏,敲consume,選擇Consume SAP Services:

會顯示不少Destination列表,每一個Destination都是我在CloudFoundry環境的Connectivity菜單裏維護的,指向某一個ABAP系統。

我選擇ES5系統裏暴露出來的GWSAMPLE_BASIC這個OData服務。

改OData同Fiori項目綁定以後,收到成功的提示:

後續的操做,就和咱們以前在SAP WebIDE裏的開發沒有太大差異了。

用Layout Editor打開XML視圖,從控件庫裏找到List控件,拖拽到視圖區域上:

點擊List控件Entity Set字段旁的綁定圖標,給它綁上一個OData模型中的Data Collection:

讓這個List顯示Business Partners數據:

同理,把List Item的title字段綁定到BusinessPartnerSet節點上的CompanyName字段,Description綁定到BusinessPartnerID字段。

這個Fiori應用功能很是簡單,以列表的形式顯示Business Partners所在的公司名和ID.

點擊Run Configuration, 能夠在不部署到SAP雲平臺CloudFoundry環境的狀況下,進行本地測試:

SAP雲平臺上的Fiori應用,其實是SAP MTA應用包含的一個HTML5 module,該MTA應用的mta.yaml裏定義了Destination服務和Authorization & Trust Management服務的依賴。所以本地運行時,咱們也要給該Fiori應用提供這兩個服務實例才行。

關於什麼是SAP MTA應用,能夠參考Jerry以前的文章:SAP雲平臺裏的三叉戟應用

到CloudFoundry環境新建一個Authorization & Trust Management服務實例,取名app_uaa:

回到BAS,選中項目裏的uaa本地資源,會看到右邊有個小的綠色插頭圖標。點擊以後,BAS會自動把剛纔建立的app_uaa實例取出來。選擇後,就能夠和項目本地uaa_JerryFioriDemo這個資源進行綁定。

稍後咱們將該應用正式部署到SAP雲平臺CloudFoundry環境時,不須要作這一步,由於部署工具會解析mta.yaml, 自動建立裏面定義的依賴服務實例。

成功綁定後,在BAS裏收到提示:

同時左邊出現一個新的綠色插頭圖標,表明成功綁定的狀態。

同理將項目的Destination服務依賴也綁定到CloudFoundry環境建立的服務實例後,點擊Run Module, 就能看到這個Fiori應用的界面了:

正式部署到CloudFoundry的步驟也很簡單,執行命令行:

mbt build -p=cf

mbt工具會將該項目打包成.mtar文件:

使用cf deploy命令把這個.mtar文件部署到CloudFoundry去:

從命令行輸出中能夠發現,cf deploy在部署過程當中會自動建立mta.yaml裏require區域聲明的服務實例。

部署成功後,這些自動建立的服務實例都能在Service Binding區域看到:

點擊部署後生成的AppRouter實例,就能得到這個運行在CloudFoundry環境上的Fiori應用的訪問連接了。

但願本文可以讓你們對SAP Business Application Studio的概貌有個最基本的瞭解,感謝閱讀。

更多閱讀

要獲取更多Jerry的原創文章,請關注公衆號"汪子熙":

相關文章
相關標籤/搜索