SAP 能通过设置WebService与外部的webservice服务连接;
1、进入事务:SE80,选择 Package ,指定保存的开发包,按图1操作,创建一个Enterprise Service;
(图1)
2、会出现如下的创建导向窗口,选择 ‘Service Consumer’,点击‘继续’,如图2;
(图2)
3、在弹出的下一个窗口中选择‘URL/HTTP Destination’,点击‘继续’,如图3;
(图3)
4、在弹出的窗口中,选择‘URL’,并输入wdsl地址,如图4;
5、在弹出的窗口中,在’Package’栏中输入所需保存的开发类,若保存为本地开发类,则需将‘Local/Object’选上,如图5;
(图5)
6、点击完最终的‘Complete’后,如果相连接的WDSL没有问题,则会出现WebService 代理类的创建窗口,如图6;
(图6)
7、在保存并激活完代理类后,进入事务:LPCONFIG,进行创建逻辑端口的操作,如图7;
逻辑端口,最好能先在SM59中定义一下,如外部的系统是SAP ,可以定义G类型,否则定义H类型的使用。
(图7)
8、在进入创建端口的界面后,输入描述,并在‘一般设置’下的‘调用参数’页签中,在’URL’中输入WSDL地址,并在‘应用程序特定设置’的‘全局设置’页签下将‘状态管理’勾上,否则在激活的时候会提示‘激活不成功’,如图8;
(图8)
9、在‘一般设置’下的‘操作’页签中,在‘SOAP’操作对应的输入框中输入对应的行为地址,如图9;
(图9)
10、保存并激活逻辑端口。
11、通过编写代码来测试SAP与WebService的链接,如附件;
<P> </P>
*&---------------------------------------------------------------------*
*& Report ZTEST10
*&
*&---------------------------------------------------------------------*
*&
*&
*&---------------------------------------------------------------------*
REPORT ZTEST10.
DATA:webservice TYPE REF TO ZWM035CO_SHOP_RETURN_SERVICE.
DATA:LS_IN TYPE ZWM035SHOP_RETURN_REQUEST,
gw_input TYPE ZWM035SHOP_RETURN_RETRIEVE_IN,
gw_output TYPE ZWM035SHOP_RETURN_RETRIEVE_OUT.
DATA:lo_sys_exception TYPE REF TO cx_ai_system_fault,
lo_app_exception TYPE REF TO cx_ai_application_fault.
DATA: p_str1 TYPE string,
p_str2 TYPE string,
p_str3 TYPE string.
START-OF-SELECTION.
"XML数据
p_str1 = '<fields><field><name>Title</name><value>交办测试</value></field><field><name>Urgency</name><value>紧急</value></field>'.
p_str2 = '<field><name>YQDate</name><value>2013-09-24</value></field><field><name>Day_HF</name><value>3</value></field><field><name>XGXM</name><value>1</value></field>'.
p_str3 = '<field><name>Name_KH</name></field><field><name>Content</name><value>任务安排111</value></field><field><name>Remarks</name><value>备注111</value></field></fields>'.
TRY.
CREATE OBJECT webservice
EXPORTING
logical_port_name = 'ZWM035_B'.
"为此webservice创建的逻辑端口。
CATCH cx_ai_system_fault .
MESSAGE '出错了' TYPE 'E'.
ENDTRY.
"写输入参数
LS_IN-SITE = '1000'.
LS_IN-RETURN_NO = '111'.
gw_input-PARAMETERS-RETURN_REQUEST = LS_IN.
TRY.
CALL METHOD webservice->SHOP_RETURN_RETRIEVE
EXPORTING
INPUT = gw_input
IMPORTING
OUTPUT = gw_output.
CATCH cx_ai_system_fault INTO lo_sys_exception .
"“message ‘出错了 systemai’ type ‘s’.
WRITE lo_sys_exception->errortext.
CATCH cx_ai_application_fault INTO lo_app_exception .
WRITE / .
WRITE lo_app_exception->textid.
ENDTRY.
WRITE 'AAA'.