龙空技术网

SAP 发布webservice和调用webservice

sap交流 2828

前言:

今天大家对“如何发布webservice服务”可能比较关心,我们都需要分析一些“如何发布webservice服务”的相关内容。那么小编同时在网上网罗了一些有关“如何发布webservice服务””的相关资讯,希望姐妹们能喜欢,各位老铁们快快来了解一下吧!

一、发布webservice

1.se37 创建webservice服务

2.TCODE:SOAMANAGER

3.定义服务banding:

输入服务名称,点击下一步:

生成WSDL:

url输入浏览器和sap登录验证信息,测试wsdl:

至此,webservice发布完成。

二、调用webservice

创建webservice使用者

选择Service Consumer

这里测试用配置个本地对象

生成代理类:

激活所有对象

Se80企业服务,可以看到代理类信息:

再次回到TCODE:SOAMANAGER,配置代理类的逻辑端口:

注意这次搜索”消费者代理”:

这里选择基于WSDL配置,后面步骤会比较多,(我测试过其他几个选项都不行):

逻辑端口:逻辑端口是指逻辑意义上用于区分服务的端口,如TCP/IP协议中的服务端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等。由于物理端口和逻辑端口数量较多,为了对端口进行区分,将每个端口进行了编号,这就是端口号。简单来说,ip地址是用来区分主机,端口号是用来区分主机上的不同服务

一直下一步直到完成

Ping web服务

程序中调用:

DATA:lo_cx_root TYPE REF TO cx_root.

DATA:l_prox_e TYPE REF TO zco_sap_service_port_type.

DATA:lo_sys_exception TYPE REF TO cx_ai_system_fault,

cx_ai_application_fault TYPE REF TO cx_ai_application_fault

IF l_prox_e IS INITIAL.

TRY.

CREATE OBJECT l_prox_e

EXPORTING

logical_port_name = 'ZLP01'.

CATCH cx_ai_system_fault INTO lo_sys_exception.

IF lo_sys_exception->errortext IS NOT INITIAL.

output-msgty = 'E'.

output-msgtx = lo_sys_exception->errortext.

APPEND output.CLEAR:output.

EXIT.

ENDIF.

CATCH cx_ai_application_fault INTO cx_ai_application_fault.

ENDTRY.

ENDIF.

invoke_flow_request-in0 = lv_json.

TRY.

CALL METHOD l_prox_e->invoke_flow

EXPORTING

invoke_flow_request = invoke_flow_request

IMPORTING

invoke_flow_response = invoke_flow_response.

CATCH cx_ai_system_fault INTO lo_sys_exception.

IF lo_sys_exception->errortext IS NOT INITIAL.

output-msgty = 'E'.

output-msgtx = lo_sys_exception->errortext.

APPEND output.CLEAR:output.

EXIT.

ENDIF.

CATCH cx_ai_application_fault INTO cx_ai_application_fault.

ENDTRY.

.

标签: #如何发布webservice服务