天天看點

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

本文原版發表于 SAP 官方社群,當時用的英文版寫作,标題為:Step by step to create, consume and trace web service in ABAP system https://blogs.sap.com/2014/05/20/step-by-step-to-create-consume-and-trace-web-service-in-abap-system/ 總共閱讀量超過 18 萬。

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

How to create web service provider in ABAP system

如何在 SAP ABAP 系統建立 web service 提供者

本文主要思路就是建立一個 ABAP function module,然後通過事物碼 SOAMANAGER 将其封裝成 web service.

下面這個函數在 SAP CRM 裡建立,邏輯是簡單地根據 SAP CRM 産品 ID,從資料庫表裡讀取其描述資訊并傳回。

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
需要用事物碼 SOAMANAGER 暴露成 Web Service 的函數,必須标注成 Remote enabled:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
SE37 裡,菜單 Utilities->More Utilities->Create Web Service->From the Function Module:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
按照向導一步步 Next 即可,按照自己的實際場景,選擇合适的 Web Service 調用安全認證機制。
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
完成向導後,應該能得到如下的服務定義:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
點選上圖 ALV 面闆的 “WSDL” 标簽頁,浏覽 Web Service 的 WSDL:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
使用事物碼 SOAMANAGER, 建立 Web Service Configuration:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
找到我們剛才通過向導建立好的服務定義:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
點選 Create Service 按鈕:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
選擇合适的通信安全設定(Community Security):
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
點選 Finish 按鈕:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
現在這個 web service 就可以消費了。點選這個圖示:Open Binding WSDL Generation:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
把這個用于綁定的 WSDL 連結儲存下來備用。
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

下面介紹 SAP ABAP Web Service 的消費步驟。

事物碼 SE80,建立一個 Service Consumer:

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
在 Generation Source 裡,選擇 External WSDL / Schema:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
把之前我們建立的 Service Definition 裡建立好的 Service Definition WSDL Url,粘貼過來:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
激活 Service Consumer,會自動生成一個 ABAP 類,這個類用于消費 web service. 激活該類,記下其名字。
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
回到事物碼 SOAMANAGER, 找到之前建立的 Consumer Proxy:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
建立一個新的 logical port:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
将 Web Service 建立時儲存的 url 填進去。記住不能将 SE80 裡 WSDL 标簽頁裡的 url 填入,否則會遇到下列錯誤:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

從 SE80 Service Consumer 裡,我們能觀察到這個代理類的輸入和輸出參數定義。

現在就可以在 ABAP 報表裡,消費這個 proxy class 了。

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
完整的 ABAP 代碼:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
我們執行這個 ABAP 報表,通過 web service 調用的方式,根據産品 ID ARNO_TEST004,拿到了其描述資訊:TEST FOR WORKSHOP dsf test 11 tesdgt12
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
這個描述資訊,和我們在 WebClient UI 上觀察到的一緻:
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

ABAP Web service 執行的監控和跟蹤

事物碼 SRT_UTIL, 為需要進行 Web Service 執行監控的使用者,建立一個新的配置:

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

将 Functional Trace 下拉菜單項的值選擇成 High. 根據實際需要,也可以啟用 Performance Trace 和 Payload Trace,這些選項預設都是關閉狀态:Inactive.

最後别忘了點選 ”Save Configuration“ 按鈕。

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

重新執行會觸發 Web Service 調用的操作。然後回到事物碼 SRT_UTIL,點選 Functional Trace,點選重新整理按鈕,就看到了剛才 Web Service 調用的執行明細。

其實用法和 SQL Trace 即事物碼 ST05 很類似。

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤

輕按兩下類型為 ”Response“ 的某一行,能看到 Web service 調用傳回的明細,比如之前提到的,根據輸入産品 ID 去資料庫查詢,再傳回的産品描述資訊:TEST FOR WORKSHOP dsf test 11 tesdgt12

最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤
最詳細的 SAP ABAP Web Service 建立和消費步驟講解ABAP Web service 執行的監控和跟蹤