溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ABAP編程環境里怎么消費第三方服務

發布時間:2021-12-29 16:31:04 來源:億速云 閱讀:128 作者:iii 欄目:云計算

這篇文章主要介紹“ABAP編程環境里怎么消費第三方服務”,在日常操作中,相信很多人在ABAP編程環境里怎么消費第三方服務問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”ABAP編程環境里怎么消費第三方服務”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!

在ABAP On-Premises環境下,使用ABAP編程消費第三方服務,相信很多ABAP顧問都已經非常熟悉了,無非就是使用CL_HTTP_CLIENT或者CL_REST_HTTP_CLIENT來發送和接收HTTP請求。

下圖這短短的38行代碼,展示了如何使用ABAP工具類CL_HTTP_CLIENT去訪問百度首頁并拿到回復。

ABAP編程環境里怎么消費第三方服務

從百度返回的響應,通過方法GET_CDATA獲得,存儲于變量rv_data內:

ABAP編程環境里怎么消費第三方服務

當然如果我們是做正式的產品開發的話,一般不會把第三方服務的URL硬編碼在應用程序里,而是通過事務碼SM59創建的Destination管理第三方服務的endpoint,然后把Destination名稱存儲于配置表里,這樣使得第三方服務的URL同應用代碼解除耦合關系。

下圖是一個例子,我在SM59事務碼里維護了一個指向某C4C系統的Destination,取名為C4C:

ABAP編程環境里怎么消費第三方服務

然后在ABAP代碼里使用cl_http_client=>create_by_destination創建HTTP工具類的實例。后續操作同使用cl_http_client=>create_by_url構造實例的代碼一致,這里不再重復。

ABAP編程環境里怎么消費第三方服務

如果我們直接把On-Premises環境下的這些ABAP代碼搬到SAP Cloud Platform的ABAP環境里,會遇到很多語法錯誤:

ABAP編程環境里怎么消費第三方服務

原因在Jerry的第一篇介紹SAP云平臺ABAP編程環境的文章 在SAP云平臺ABAP編程環境上編寫第一段ABAP程序 里就已經提到,云端的ABAP編程模型支持的只是ABAP編程語言的一個子集,我們只能使用SAP開放的白名單里的資源,這個白名單即上圖左邊Released Objects里面包含的內容。

因為Jerry在On-Premises環境里使用過的CL_HTTP_CLIENT, CL_REST_HTTP_CLIENT, IF_HTTP_CLIENT等ABAP類和接口均不在白名單內,故無法在ABAP云端環境使用。

既然在云端了,我們就得使用云端的編程范式。

Jerry去年的文章使用Java+SAP云平臺+SAP Cloud Connector調用ABAP On-Premise系統里的函數 里曾經介紹過運行在云端的Java應用如何通過SAP云平臺上創建的Destination來調用ABAP On-Premises系統里的RFC函數。如今我們在云上運行的應用的編程語言從Java換成了ABAP,然而借助Destination進行第三方服務調用的思路仍然不變。

Jerry先把正確答案公布出來,在SAP Cloud Platform ABAP編程環境訪問第三方服務的代碼如下:

ABAP編程環境里怎么消費第三方服務

可以看到其思路就是通過CL_HTTP_DESTINATION_PROVIDER這個云端的Destination工廠類,拿到Destination實例,然后基于該實例創建云端上的ABAP HTTP客戶端實例。工廠類生產Destination實例需要兩個參數:

  • i_name

  • i_service_instance_name

根據這個方法的接口注釋,這兩個參數分別為Destination的名稱和Service instance的名稱。下面Jerry介紹如何獲得這兩個參數的值。

ABAP編程環境里怎么消費第三方服務

在SAP Cloud Platform Service Marketplace里創建一個新的Destination實例:

ABAP編程環境里怎么消費第三方服務

ABAP編程環境里怎么消費第三方服務

ABAP編程環境里怎么消費第三方服務

我們把新建的實例取名為DestService,然后再基于該實例創建一個Destination配置,這個配置就好比我們在ABAP On-Premises的SM59事務碼里創建的Destination:

ABAP編程環境里怎么消費第三方服務

Destination我取名為ZJERRY_API, 這就是前面提到的工廠方法里第一個參數i_name值的由來。

ABAP編程環境里怎么消費第三方服務

點擊Check Connection,確保該Destination指向的URL可以訪問:

ABAP編程環境里怎么消費第三方服務

然后點擊Open Dashboard,打開這個SAP Cloud Platform ABAP實例的Fiori界面:

ABAP編程環境里怎么消費第三方服務

點擊Launchpad tile,創建一個新的Communication Arrangements:

ABAP編程環境里怎么消費第三方服務

ABAP編程環境里怎么消費第三方服務

需要為新建的Communication Arrangement選擇一個Communication Scenario,這里我選擇SAP標準發布的專門用于CloudFoundry環境同第三方服務進行集成的場景,ID為SAP_COM_0276:

ABAP編程環境里怎么消費第三方服務

創建Communication Arrangement時還要維護Service Key信息:

ABAP編程環境里怎么消費第三方服務

這個Service Key的信息可以從Destination實例列表的Service Key維護界面獲得:

ABAP編程環境里怎么消費第三方服務

在創建好的Communication Arrangement里,維護Service Instance Name的值為jerry-service-instance, 這也就是ABAP代碼里傳給工廠方法的第二個參數。

ABAP編程環境里怎么消費第三方服務

執行這個ABAP類:

ABAP編程環境里怎么消費第三方服務

獲得期望的輸出:

ABAP編程環境里怎么消費第三方服務

到此,關于“ABAP編程環境里怎么消費第三方服務”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女