使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数
最近Jerry接到一個原型開發的任務,需要在微信里調用ABAP On Premise系統(SAP CRM On-Premise)里的某些函數。具體場景和我之前的公眾號文章 Cloud for Customer和微信集成系列教程 描述的場景類似。
區別之處在于Cloud for Customer(C4C)是一個云解決方案,其OData Service/Web Service能夠直接被Internet網絡上的其他應用消費。而我最近要做的原型開發,需要消費的函數位于部署在Corporate Network里的ABAP On-Premise系統里,無法直接被Internet應用消費。
為了確保Internet應用能夠訪問Corporate Network系統里的服務,我們需要用到SAP Cloud Connector, 作為一個溝通橋梁。
這篇文章我假設的場景是:開發一個Java Web應用,部署在SAP Cloud Platform(云平臺)上。用戶在手機微信里訪問該應用,調用ABAP On-Premise系統里的函數。
這個場景的主要實現步驟:
下載安裝并配置Cloud Connector。Cloud Connector需要和ABAP On-Premise系統同樣位于Corporate Network。
在SAP云平臺上完成必要配置,同Cloud Connector建立連接。
開發Java Web應用,部署到SAP云平臺。
架構圖如下所示。
下面是詳細步驟介紹。
1. Cloud Connector的安裝與配置
下載地址
安裝完成后啟動Cloud Connector,確保在操作系統的服務列表里看到Cloud Connector對應的服務:
Cloud Connector的登錄界面:
新建一個Connector實例,我命名為Jerry_SCC。Region和Subaccount需要指定成需要連接的SAP云平臺的對應字段,這樣才能將該Connector實例同對應的SAP云平臺建立關聯關系。
Connector實例創建并保存后,如下圖所示。點擊下圖左邊Jerry_SCC下面的菜單"Cloud To On-Premise":
在這個界面創建從虛擬系統(virtual system)到ABAP On-Premise系統的一個映射關系。我創建的虛擬系統名稱為my-backend-system, 映射到一個SAP內部ABAP系統AG3。訪問協議(Protocol)指定為RFC。點擊檢查按鈕,如果ABAP系統的信息維護無誤,該ABAP系統的狀態會被標記為Reachable(可訪問)。
Function Name為STFC,Naming Policy為Prefix,意為AG3系統里所有以STFC開頭的函數均能通過該Connector實例被訪問。
至此Cloud Connector配置完成。
2. SAP云平臺上的配置
前一步Cloud Connector配置完成后,在SAP云平臺的Cloud Connectors標簽頁就能看到配置好的實例了。
這一步需要在SAP云平臺上創建一個Destination以便Java程序使用。這個Destination和ABAP Netweaver事務碼SM59創建的Destination作用相似。
仿照下圖的設置創建一個Destination。我的Destination名稱為my-backend-system-destination, 這個Destination會在下一步被Java應用消費。注意User和Password需要維護成ABAP On-Premise系統對應的用戶名和密碼。
點擊按鈕Check Connection,確保該Destination工作正常。
3. 開發Java應用,使用第2步創建的Destination
該Java應用的全部源代碼在我的github上:
這里只講解核心代碼:
(1) 第28行根據Destination名稱拿到其實例,名稱在第2步SAP云平臺的配置里指定。
(2) 第31行,拿到ABAP函數STFC_CONNECTION的句柄。
(3) 第35行,拿到用戶從瀏覽器url里傳進來的輸入值。
(4) 第38行,將從第35行拿到的用戶輸入賦給STFC_CONNECTION的輸入參數REQUTEXT。
(5) 第42行,執行ABAP函數。
(6) 第45, 46行,得到ABAP函數執行結果。
將這個Java應用從Eclipse部署到SAP云平臺。具體步驟參考我的知乎文章:
使用Eclipse開發Java應用并部署到SAP云平臺
在微信里測試一下:
輸出:
在ABAP系統的STFC_CONNECTION函數體內設置斷點,在ABAP調試器里也能觀察到從微信傳進來的用戶輸入:
我在我的知乎專欄上寫了很多關于SAP云平臺的文章,歡迎關注。
要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"或者掃描下面二維碼:
總結
以上是生活随笔為你收集整理的使用Java+SAP云平台+SAP Cloud Connector调用ABAP On-Premise系统里的函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android APP的安装路径
- 下一篇: 线性回归之决定系数(coefficien