ABAP调用外部WebService
TCode:se80
选择 Package,输入我们自己的开发包,后回车
右击 开发包名称,选择菜单
出现创建向导窗体
选择”Service Consumer”,点击 继续
选择”external WSDL”,点击继续
选择”URL”,点击继续
输入WebService的WSDL地址,就是WebService地址的后面加上?wsdl这个參数。
点击继续
选择开发类和创建传输号,点击继续。
点击”Complete” ,出现WebServer代理类的创建窗体。
改动系统产生的代理类的名字,然后点保存,激活。到这一步,WebService代理就创建完毕了。
要想使用它,我们还要创建一个逻辑port。事务码:lpconfig。
在 代理类中选择、输入上面创建的代理类。在逻辑port中输入port号,PS port号能够随便字母和数字组合。输入描写叙述后。点创建。
在”URL”处,输入要訪问的WebService的地址,全局设置中的”状态管理”要勾上。
选择 WebService中的函数。并输入函数的SoapAction,点保存。逻辑port创建完毕。接下来就该Coding了。
01.*&———————————————————————*
02.*& Report ZWEBSERVICETEST
03.*&
04.*&———————————————————————*
05.*&
06.*&
07.*&———————————————————————*
08.REPORT zwebservicetest.
09.DATA:helloworld(200) TYPE c.
10.DATA:webservice TYPE REF TO zco_web_service1soap. “WebService代理类
11.DATA:gt_input TYPE zhello_world_soap_in, “输入參数
12.gt_output TYPE zhello_world_soap_out. “输出參数
13.DATA:lo_sys_exception TYPE REF TO cx_ai_system_fault,
14.lo_app_exception TYPE REF TO cx_ai_application_fault.
15.START-OF-SELECTION.
16.TRY.
17.CREATE OBJECT webservice
18.EXPORTING
19.logical_port_name = ‘LZP101′ . “为此WebService创建的逻辑端口。
20.CATCH cx_ai_system_fault .
21.MESSAGE ‘出错了’ TYPE ‘S’.
22.ENDTRY.
23.TRY.
24.CALL METHOD webservice->hello_world
25.EXPORTING
26.input = gt_input
27.IMPORTING
28.output = gt_output.
29.CATCH cx_ai_system_fault INTO lo_sys_exception .
30.“message ‘出错了 systemai’ type ‘S’.
31.WRITE lo_sys_exception->errortext.
32.CATCH cx_ai_application_fault INTO lo_app_exception .
33.WRITE / .
34.WRITE lo_app_exception->textid.
35.ENDTRY.
36.WRITE gt_output-hello_world_result.