abap调用外部 web service 时,大致分为以下三个步骤
1,se80,选择package,点击创建enterprise service/web service-proxy client
2, lpconfig,创建逻辑端口
3,编程调用刚才创建的代理类。
备注:此实例需为ecc 版本
一:创建代理类
a,按照选择package,点击创建enterprise service/web service-proxy client,点击继续选择
service consumer
b,url/http destination,点击继续
c,选择url,输入wsdl地址,若为local host的,需更改为本机的地址
d,点击继续,输入选择包,前缀。
没有错误的话,会根据wsdl文件,产生代理类,激活
二,创建逻辑端口lpconfig或者SOAMANAGER
输入代理类,逻辑端口名称,可以设为默认端口
a, 一般设置里,运行环境选择 web 服务基础结构
调用参数: url文本框里输入web service地址
操作: 为每个具体的方法, 在soap 操作里输入wsdl里定义的soapAction
b,应用程序里特定设置
全局设置里,够选消息标记,状态管理
保存激活
三,对特定的需要编码。
REPORT ztest.
DATA:obj_certif TYPE REF TO ytcertifco_certificate_request,
obj_output TYPE ytcertifhello_world_soap_out,
obj_input TYPE ytcertifhello_world_soap_in,
wa_obj_input LIKE prxctrl,
erro_msg TYPE string,
obj_exception TYPE REF TO cx_ai_system_fault.
TRY.
CREATE OBJECT obj_certif
EXPORTING
logical_port_name = ‘LP01‘.
CATCH cx_ai_system_fault INTO obj_exception .
CALL METHOD obj_exception->get_text
RECEIVING
result = erro_msg.
WRITE /1 erro_msg.
ENDTRY.
*wa_obj_input-field = ‘head world‘.
*wa_obj_input-value = ‘1‘.
*APPEND wa_obj_input TO obj_input-controller.
TRY.
CALL METHOD obj_certif->hello_world
EXPORTING
input = obj_input
IMPORTING
output = obj_output.
WRITE:obj_output-hello_world_result.
CATCH cx_ai_system_fault INTO obj_exception .
CALL METHOD obj_exception->get_text
RECEIVING
result = erro_msg.
WRITE /1 erro_msg.
ENDTRY.