久久精品人人爽,华人av在线,亚洲性视频网站,欧美专区一二三

ABAP編程環(huán)境里怎么消費(fèi)第三方服務(wù)

168次閱讀
沒有評論

共計(jì) 2276 個字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。

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

在 ABAP On-Premises 環(huán)境下,使用 ABAP 編程消費(fèi)第三方服務(wù),相信很多 ABAP 顧問都已經(jīng)非常熟悉了,無非就是使用 CL_HTTP_CLIENT 或者 CL_REST_HTTP_CLIENT 來發(fā)送和接收 HTTP 請求。

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

從百度返回的響應(yīng),通過方法 GET_CDATA 獲得,存儲于變量 rv_data 內(nèi):

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

下圖是一個例子,我在 SM59 事務(wù)碼里維護(hù)了一個指向某 C4C 系統(tǒng)的 Destination,取名為 C4C:

然后在 ABAP 代碼里使用 cl_http_client= create_by_destination 創(chuàng)建 HTTP 工具類的實(shí)例。后續(xù)操作同使用 cl_http_client= create_by_url 構(gòu)造實(shí)例的代碼一致,這里不再重復(fù)。

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

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

因?yàn)?Jerry 在 On-Premises 環(huán)境里使用過的 CL_HTTP_CLIENT, CL_REST_HTTP_CLIENT, IF_HTTP_CLIENT 等 ABAP 類和接口均不在白名單內(nèi),故無法在 ABAP 云端環(huán)境使用。

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

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

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

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

i_name

i_service_instance_name

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

在 SAP Cloud Platform Service Marketplace 里創(chuàng)建一個新的 Destination 實(shí)例:

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

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

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

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

點(diǎn)擊 Check Connection,確保該 Destination 指向的 URL 可以訪問:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

然后點(diǎn)擊 Open Dashboard,打開這個 SAP Cloud Platform ABAP 實(shí)例的 Fiori 界面:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

點(diǎn)擊 Launchpad tile,創(chuàng)建一個新的 Communication Arrangements:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

需要為新建的 Communication Arrangement 選擇一個 Communication Scenario,這里我選擇 SAP 標(biāo)準(zhǔn)發(fā)布的專門用于 CloudFoundry 環(huán)境同第三方服務(wù)進(jìn)行集成的場景,ID 為 SAP_COM_0276:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

創(chuàng)建 Communication Arrangement 時還要維護(hù) Service Key 信息:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

這個 Service Key 的信息可以從 Destination 實(shí)例列表的 Service Key 維護(hù)界面獲得:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

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

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

執(zhí)行這個 ABAP 類:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

獲得期望的輸出:

ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)

到此,關(guān)于“ABAP 編程環(huán)境里怎么消費(fèi)第三方服務(wù)”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實(shí)踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注丸趣 TV 網(wǎng)站,丸趣 TV 小編會繼續(xù)努力為大家?guī)砀鄬?shí)用的文章!

正文完
 
丸趣
版權(quán)聲明:本站原創(chuàng)文章,由 丸趣 2023-08-16發(fā)表,共計(jì)2276字。
轉(zhuǎn)載說明:除特殊說明外本站除技術(shù)相關(guān)以外文章皆由網(wǎng)絡(luò)搜集發(fā)布,轉(zhuǎn)載請注明出處。
評論(沒有評論)
主站蜘蛛池模板: 城市| 方山县| 额尔古纳市| 黔西县| 类乌齐县| 开封市| 宁明县| 天台县| 措美县| 泰来县| 横山县| 托克逊县| 霞浦县| 荣昌县| 怀安县| 延寿县| 汾阳市| 农安县| 南华县| 北票市| 海林市| 河池市| 枣阳市| 会同县| 玛曲县| 吴江市| 宝坻区| 淳安县| 当涂县| 永定县| 全南县| 博野县| 天气| 获嘉县| 泗洪县| 长乐市| 大埔区| 漾濞| 东港市| 临安市| 三门县|