SAP创建Web Service以及用ABAP调用
生活随笔
收集整理的這篇文章主要介紹了
SAP创建Web Service以及用ABAP调用
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
如果運行
soamanager
打不開,網頁顯示
devaix
.zhongpin.com
,打開
C
:\WINDOWS\system32\drivers\etc,
用記事本打開
hosts
文件
,
在最后一行加上:
192
.168.2.24?devaix.zhongpin.
com
本次學習如何用 SAP 創建 web?service , 以及如何利用 ABAP 調用 Web?Service .
步驟:
1.? 創建一個 RFC 函數 Z_ADD ;
2.? 根據這個函數創建 Web?Service ,? 菜單 ’Utilities’ ->’More?Utilities’->’Create?Web?Service’->’From?the?Funciton?Module’; 輸入 Service? Definition:?ZWS_001 和描述;
一直點 Continue , 直到完成,系統顯示對象已激活;
創建 Web?Service 的另一種方法是: SE80 -> 右擊函數組名稱 ->create-> web?service;
注意:這兩種方法大致相同,在完成時,選中 ’Deploy?Service’ 。
3.? 激活該 Funciton;
4.?find?URL.SOAMANAGER,application?and?scenario?communication->single?service?administration, 在打開的網頁中搜索 service :?Z_WS_001->apply->Open?WSDL?document?for?selected?binding-> 復制 wsdl 文件的地址作為 URL;
5.?SE80, 根據上面得到的 URL 創建 consumer , 得到 proxy?name :ZPRECO_Z_WS_001 , ’ZPRE’ 是前綴。
6.?CREATE??LOGIC??PORT.??SOAMANAGER ,創建邏輯端口,在打開的網頁中搜索 consumer?proxy :?ZPRECO_Z_WS_001,( 最好是雙向搜索 )->apply->configurations->create?logic?port.
之后即可測試成功。
測試代碼如下:
report.
*-->這個proxy?class是在前面定義好的
data?proxy?type?ref?to?zpreco_z_ws_001.
*-->這兩個數據類型可以在proxy?class中的方法中找到(雙擊ZPRECO_Z_WS_001,進入這個類的定義).
data:?ls_input??type?zprezadd,
??????ls_output? type?zprezadd_response.
start -of-selection.
*-->根據logical?port創建對象
?? try.
?????? create? object?proxy
???????? exporting
??????????logical_port_name? =?'LP01'.
???? catch?cx_ai_system_fault?.
?? endtry.
*-->調用web?service的方法
??ls_input -idata1?=?2.
??ls_input -idata2?=?4.
?? try.
?????? call?method?proxy-> zadd
???????? exporting
?????????? input??=? ls_input
???????? importing
?????????? output?=?ls_output.
???? catch?cx_ai_system_fault?.
???? catch?cx_ai_application_fault?.
?? endtry.
?? write:?ls_output-eresult.?
此時運行該程序總會出現登陸框,安全設定的原因。
可以在邏輯端口中配置自己的賬號和密碼,步驟: SOAMANAGER ,在打開的網頁中搜索 consumer?proxy :?ZPRECO_Z_WS_001 ,選擇邏輯端口 ->edit->consumer?security, 輸入自己的賬號和密碼即可。
本次學習如何用 SAP 創建 web?service , 以及如何利用 ABAP 調用 Web?Service .
步驟:
1.? 創建一個 RFC 函數 Z_ADD ;
2.? 根據這個函數創建 Web?Service ,? 菜單 ’Utilities’ ->’More?Utilities’->’Create?Web?Service’->’From?the?Funciton?Module’; 輸入 Service? Definition:?ZWS_001 和描述;
一直點 Continue , 直到完成,系統顯示對象已激活;
創建 Web?Service 的另一種方法是: SE80 -> 右擊函數組名稱 ->create-> web?service;
注意:這兩種方法大致相同,在完成時,選中 ’Deploy?Service’ 。
3.? 激活該 Funciton;
4.?find?URL.SOAMANAGER,application?and?scenario?communication->single?service?administration, 在打開的網頁中搜索 service :?Z_WS_001->apply->Open?WSDL?document?for?selected?binding-> 復制 wsdl 文件的地址作為 URL;
5.?SE80, 根據上面得到的 URL 創建 consumer , 得到 proxy?name :ZPRECO_Z_WS_001 , ’ZPRE’ 是前綴。
6.?CREATE??LOGIC??PORT.??SOAMANAGER ,創建邏輯端口,在打開的網頁中搜索 consumer?proxy :?ZPRECO_Z_WS_001,( 最好是雙向搜索 )->apply->configurations->create?logic?port.
之后即可測試成功。
測試代碼如下:
report.
*-->這個proxy?class是在前面定義好的
data?proxy?type?ref?to?zpreco_z_ws_001.
*-->這兩個數據類型可以在proxy?class中的方法中找到(雙擊ZPRECO_Z_WS_001,進入這個類的定義).
data:?ls_input??type?zprezadd,
??????ls_output? type?zprezadd_response.
start -of-selection.
*-->根據logical?port創建對象
?? try.
?????? create? object?proxy
???????? exporting
??????????logical_port_name? =?'LP01'.
???? catch?cx_ai_system_fault?.
?? endtry.
*-->調用web?service的方法
??ls_input -idata1?=?2.
??ls_input -idata2?=?4.
?? try.
?????? call?method?proxy-> zadd
???????? exporting
?????????? input??=? ls_input
???????? importing
?????????? output?=?ls_output.
???? catch?cx_ai_system_fault?.
???? catch?cx_ai_application_fault?.
?? endtry.
?? write:?ls_output-eresult.?
此時運行該程序總會出現登陸框,安全設定的原因。
可以在邏輯端口中配置自己的賬號和密碼,步驟: SOAMANAGER ,在打開的網頁中搜索 consumer?proxy :?ZPRECO_Z_WS_001 ,選擇邏輯端口 ->edit->consumer?security, 輸入自己的賬號和密碼即可。
總結
以上是生活随笔為你收集整理的SAP创建Web Service以及用ABAP调用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP用Function发布供外部调用的
- 下一篇: 从sap xi生产wsdl文件,客户端怎