日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

最详细的 SAP ABAP Web Service 创建和消费步骤讲解

發布時間:2023/12/19 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 最详细的 SAP 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 萬。

How to create web service provider in ABAP system

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

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

下面這個函數在 SAP CRM 里創建,邏輯是簡單地根據 SAP CRM 產品 ID,從數據庫表里讀取其描述信息并返回。

FUNCTION ZGET_PROD_DESCRIPTION. *"---------------------------------------------------------------------- *"*"Local Interface: *" IMPORTING *" VALUE(IV_PROD_ID) TYPE COMM_PRODUCT-PRODUCT_ID *" EXPORTING *" VALUE(RV_TEXT) TYPE STRING *"---------------------------------------------------------------------- SELECT SINGLE A~short_text INTO rv_text FROM COMM_PRSHTEXT AS AINNER JOIN comm_product AS B ON B~product_id = iv_prod_id AND B~product_guid = A~product_guid. ENDFUNCTION.

需要用事物碼 SOAMANAGER 暴露成 Web Service 的函數,必須標注成 Remote enabled:

SE37 里,菜單 Utilities->More Utilities->Create Web Service->From the Function Module:

按照向導一步步 Next 即可,按照自己的實際場景,選擇合適的 Web Service 調用安全認證機制。

完成向導后,應該能得到如下的服務定義:

點擊上圖 ALV 面板的 “WSDL” 標簽頁,瀏覽 Web Service 的 WSDL:

使用事物碼 SOAMANAGER, 創建 Web Service Configuration:

找到我們剛才通過向導創建好的服務定義:

點擊 Create Service 按鈕:

選擇合適的通信安全設置(Community Security):

點擊 Finish 按鈕:

現在這個 web service 就可以消費了。點擊這個圖標:Open Binding WSDL Generation:

把這個用于綁定的 WSDL 鏈接保存下來備用。

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

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

在 Generation Source 里,選擇 External WSDL / Schema:

把之前我們創建的 Service Definition 里創建好的 Service Definition WSDL Url,粘貼過來:

激活 Service Consumer,會自動生成一個 ABAP 類,這個類用于消費 web service. 激活該類,記下其名字。

回到事物碼 SOAMANAGER, 找到之前創建的 Consumer Proxy:

創建一個新的 logical port:


將 Web Service 創建時保存的 url 填進去。記住不能將 SE80 里 WSDL 標簽頁里的 url 填入,否則會遇到下列錯誤:

SRT Framework exception: Initial value “consumer context table” in method IF_SRT_WSP_CONFIG_REGISTRY~CREATE_CONTEXTS_FROM_WS of class CL_SRT_WSP_CONFIG_REGISTRY

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

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

完整的 ABAP 代碼:

data: lr_proxy TYPE REF TO CO_ZPRODUCTDESCRIPTION4, input TYPE ZGET_PROD_DESCRIPTION, output TYPE ZGET_PROD_DESCRIPTION_RESPONSE. input-iv_prod_id = 'ARNO_TEST004'. CREATE OBJECT lr_proxyEXPORTINGLOGICAL_PORT_NAME = 'ZLP_JERRY1'. CALL METHOD lr_proxy->ZGET_PROD_DESCRIPTIONEXPORTINGinput = inputIMPORTINGoutput = output.

我們執行這個 ABAP 報表,通過 web service 調用的方式,根據產品 ID ARNO_TEST004,拿到了其描述信息:TEST FOR WORKSHOP dsf test 11 tesdgt12

這個描述信息,和我們在 WebClient UI 上觀察到的一致:

ABAP Web service 執行的監控和跟蹤

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

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

最后別忘了點擊 ”Save Configuration“ 按鈕。

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

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

雙擊類型為 ”Response“ 的某一行,能看到 Web service 調用返回的明細,比如之前提到的,根據輸入產品 ID 去數據庫查詢,再返回的產品描述信息:TEST FOR WORKSHOP dsf test 11 tesdgt12

更多Jerry的原創文章,盡在:“汪子熙”:

總結

以上是生活随笔為你收集整理的最详细的 SAP ABAP Web Service 创建和消费步骤讲解的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。