ABAP 創建并調用WebService
來源:程序員人生 發布時間:2015-06-09 08:10:20 閱讀次數:6378次
1. 創建Webservice
有兩種方式創建webservice,1種是在se80中使用wizard生成,另外一種是直接在se37中給予function生成,具體操作以下:
1.se80中Create-->Enterprise Service/Web Service --> Web Servcie
保護service名,選擇1個poit type(type point為1個功能點:如,Bapi中的Method,FunctionGroup中的1個function,1個function或Message Interface:XI)
2.se37 Utility--> More Utility --> Create WebService -->From the Function Module
在創建完成的時候可以選擇立刻release,否則需要在wsconfig中進行release。
2 WSASMIN(WebService Administration)
Tcode:wsadmin
選中剛剛創建的Webservice ,可以有兩種操作測試webservice
1.點擊Ctrl+F8 --> 進入WebService HomePage(可以預覽webservice發送接收的數據)
2.點擊Ctrl+F1 --> 預覽WSDL文檔
3 在Wsconfig中設置Logon Data
輸入Service Definition , 并填寫1個Variant,點擊新建
Create --> ICF Detail -->在Servcie列表當選擇需要設置Logo Data的Service,雙擊,在logon data的tab頁中設置logo data(設置了logon data的service在調用時就不會在彈出logon對話框)
(tcode : SICF 可以直接進入Maintain Service)
4 在ABAP中調用Webservice
1.創建Proxy
se80 --> Create --> Enterprice Service --> Proxy
在Proxy中指定wsdl連接
2. 創建Logical Port (tcode:lpconfig)
輸入Logical Port,指定Proxy Class,點擊新建。
3.創建程序
在se80中,將Proxy拖入到workbench中,自動生成代碼框架,根據自己需求進行簡單的修改,代碼示例以下:
REPORT zws_flight_gl.
DATA: g_proxy TYPE REF TO zglco_zgl_flight .
TRY.
CREATE OBJECT g_proxy
EXPORTING logical_port_name = 'ZGLPORT_FLIGHT'
.
CATCH cx_ai_system_fault .
ENDTRY.
DATA: output TYPE zglflight_get_list_response .
DATA: input TYPE zglflight_get_list .
input-max_rows = 10 .
TRY.
CALL METHOD g_proxy->flight_get_list
EXPORTING
input = input
IMPORTING
output = output.
CATCH cx_ai_system_fault .
CATCH cx_ai_application_fault .
ENDTRY.
DATA : ls_sflight TYPE zglbapisfldat.
DATA : lt_sflight TYPE zglbapisfldat_tab .
lt_sflight = output-flight_list-item .
LOOP AT lt_sflight INTO ls_sflight .
WRITE : ls_sflight-airlineid , ls_sflight-airline ,
ls_sflight-connectid , ls_sflight-flightdate ,
ls_sflight-airportfr , ls_sflight-cityfrom ,
ls_sflight-airportto , ls_sflight-cityto ,
ls_sflight-deptime , ls_sflight-arrtime ,
ls_sflight-arrdate , ls_sflight-price ,
ls_sflight-curr , ls_sflight-curr_iso .
ULINE .
ENDLOOP.
生活不易,碼農辛苦
如果您覺得本網站對您的學習有所幫助,可以手機掃描二維碼進行捐贈