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.

posted @ 2017-07-01 13:53  llguanli  阅读(558)  评论(0编辑  收藏  举报