欢迎您访问 最编程 本站为您分享编程语言代码,编程技术文章!
您现在的位置是: 首页

SAP新版SOAMANAGER下WebService配置

最编程 2024-02-24 18:32:19
...

随着SAP 组件版本升级,原来的WEBSERVICE 配置方式也有了很大变化。配置WS 的事务码SOAMANAGER 也进行了升级,页面风格变化很大,配置方式和之前也有区别。原来的老事务码LPCONFIG已经无效了。

本文档所用组件版本如下图。本文档只提供了 SAP与 SAP之间的 WS 通信配置和调试。 和其他平 SAP台比如JAVA 通信,恕本人力有不逮,但原理是一样的。

版本:

SAP新版SOAMANAGER下WebService配置_命名规则

前期准备,新建函数组和函数

SAP新版SOAMANAGER下WebService配置_用户名_02

注意:对于RFC函数参数必须传递值

SAP新版SOAMANAGER下WebService配置_用户名_03

SAP新版SOAMANAGER下WebService配置_用户名_04

源代码:



FUNCTION YFM_MF_SCARR.
*"----------------------------------------------------------------------
*"*"本地接口:
*" IMPORTING
*" VALUE(I_CID) TYPE S_CARR_ID DEFAULT 'AM'
*" EXPORTING
*" VALUE(E_MSG) TYPE CHAR77
*"----------------------------------------------------------------------
TABLES:scarr.
DATA:wa_scarr TYPE scarr.

wa_scarr-carrid = i_cid.
MODIFY scarr FROM wa_scarr.
COMMIT WORK AND WAIT.
IF sy-subrc = 0.
e_msg = 'Success'.
ENDIF.
ENDFUNCTION.


1、建立被叫方,Called party

1.1 SE80 部分:

SAP新版SOAMANAGER下WebService配置_用户名_05SAP新版SOAMANAGER下WebService配置_命名规则_06

调用已存在的函数实现(YFM_MF_SCARR)

SAP新版SOAMANAGER下WebService配置_用户名_07SAP新版SOAMANAGER下WebService配置_命名规则_08SAP新版SOAMANAGER下WebService配置_用户名_09

SAP新版SOAMANAGER下WebService配置_web服务_10

完成之后要点击激活按钮,复制WSDL地址至服务器即可打开相应界面

SAP新版SOAMANAGER下WebService配置_服务器_11

SAP新版SOAMANAGER下WebService配置_服务器_12

将上图的URL(WSDL)贴到IE上打开,如果打开如下图所示,表示成功

SAP新版SOAMANAGER下WebService配置_命名规则_13

注意,此WSDL并非最终要提供给主叫方的WSDL。但也不是完全无用,复制URL到浏览器内,如果可以顺利访问,则正常;如果报类似CAN NOT REACH OUT一类的错,可能是SICF里有东西没激活。运行事务码SICF,按照该WSDL的路径,一层层查看,看到没激活的就激活。

此处简单解释一下:一个WSDL由6部分组成,Types, Messages, PortType, Policy(optional), Binding,Service,此处生成的WSDL只有Types, Messages, PortType 三部分。如果提供给主叫方,会无法解析而报错。

SAP新版SOAMANAGER下WebService配置_命名规则_14

1.2 SOAMANAGER 部分

运行事务码SOAMANAGER

SAP新版SOAMANAGER下WebService配置_示例代码_15

搜索刚才在SE80 里建立的SERVICE ,YWS_TEST001_CP

SAP新版SOAMANAGER下WebService配置_服务器_16

点击进来

SAP新版SOAMANAGER下WebService配置_服务器_17

是空的。需要创建服务。名字随意,自己认识就行。在项目上请遵守命名规则。

SAP新版SOAMANAGER下WebService配置_命名规则_18

验证方法选择无验证就好。否则调一次服务弹一次窗出来让你填这填那。红色区域填上登录SAP 的用户和密码。再继续下一步。

SAP新版SOAMANAGER下WebService配置_命名规则_19

SAP新版SOAMANAGER下WebService配置_web服务_20

SAP新版SOAMANAGER下WebService配置_命名规则_21

继续下一步到最后。完成。会生成一个新的 WSDL 点垃。垃圾桶右边的图标可以看到它。 如果还是报不能 REACH OUT 一类的错误,再去SICF 里按WSDL 的路径激活。

SAP新版SOAMANAGER下WebService配置_命名规则_22

SAP新版SOAMANAGER下WebService配置_web服务_23

比如这样一个WSDL :http://xxxxx.xxx.com:8800/sap/bc/srt/wsdl/flv_10002A111AD1/bndg_url/sap/bc/srt/rfc/sap/yws_test001_cp/200/yws_test001_cp/yws_test001_cp?sap-client=200

此WSDL 是最终提供给呼叫方的。要把URL 记录下来。

 

2 、建立呼叫方,Calling party

呼叫方,主叫方,发起方,调用方⋯⋯whatever.

2.1 SE80 部分。

找一台机器做呼叫方。实在找不到,自己呼自己也行。

SAP新版SOAMANAGER下WebService配置_示例代码_24

选择企业服务,选择对应对象类型

SAP新版SOAMANAGER下WebService配置_命名规则_25

选择生成源对象

SAP新版SOAMANAGER下WebService配置_示例代码_26

选择URL

SAP新版SOAMANAGER下WebService配置_服务器_27

填入提供者WebService的WSDL

SAP新版SOAMANAGER下WebService配置_用户名_28

刚才输的用户名和密码再输一次。就是建立被叫方时用的那个。

SAP新版SOAMANAGER下WebService配置_示例代码_29

根据实际情况选择对应的传输包和前缀

SAP新版SOAMANAGER下WebService配置_服务器_30

最后点击完成生成系统会根据WSDL生成对应的消费类,同时需要做激活操作

SAP新版SOAMANAGER下WebService配置_用户名_31

SE24查看消费类信息

SAP新版SOAMANAGER下WebService配置_服务器_32

SAP新版SOAMANAGER下WebService配置_示例代码_33

SAP新版SOAMANAGER下WebService配置_示例代码_34

SAP新版SOAMANAGER下WebService配置_服务器_35

通过SOAMANAGER配置端口信息

执行SOAMANAGER

SAP新版SOAMANAGER下WebService配置_用户名_36

选择WEB服务配置,输入消费类名进行查找

SAP新版SOAMANAGER下WebService配置_web服务_37

 点击ZCL_CO_YWS_TEST001_CP

SAP新版SOAMANAGER下WebService配置_服务器_38

端口名字随意,自己认识就行。在项目上请遵守命名规则。

SAP新版SOAMANAGER下WebService配置_web服务_39

WSDL 的URL ,用之前记录的那一个。用户名密码该填的填。

SAP新版SOAMANAGER下WebService配置_用户名_40

SAP新版SOAMANAGER下WebService配置_用户名_41

SAP新版SOAMANAGER下WebService配置_服务器_42

SAP新版SOAMANAGER下WebService配置_服务器_43SAP新版SOAMANAGER下WebService配置_命名规则_44SAP新版SOAMANAGER下WebService配置_命名规则_45

SAP新版SOAMANAGER下WebService配置_命名规则_46

默认是激活的。最右侧的电容图标可以用来测试,Ping一下被叫方看通不通

SAP新版SOAMANAGER下WebService配置_web服务_47

3 、建程序测试

3.1 示例代码。

注意在呼叫方建程序。各变量解释见下。



DATA: lo_clientproxy   TYPE REF TO zcl_co_yws_test001_cp,    "图2
lo_sys_exception TYPE REF TO cx_ai_system_fault,
ls_input TYPE zcl_yfm_mf_scarr, "图4
ls_output TYPE zcl_yfm_mf_scarr_response. "图4

ls_input-icid = 'WS'.TRY.
CREATE OBJECT lo_clientproxy
EXPORTING
logical_port_name = 'YTEST001'. "图1
CALL METHOD lo_clientproxy->yfm_mf_scarr "图3
EXPORTING
input = ls_input
IMPORTING
output = ls_output.
WRITE: / ls_output-emsg. " 输出结果
CATCH cx_ai_system_fault INTO lo_sys_exception.
WRITE: / lo_sys_exception->errortext.
ENDTRY.


 

图1

SAP新版SOAMANAGER下WebService配置_web服务_48

图2

SAP新版SOAMANAGER下WebService配置_示例代码_49

图3

SAP新版SOAMANAGER下WebService配置_用户名_50

图4

SAP新版SOAMANAGER下WebService配置_示例代码_51

 

 

根据上面的的代码,撸了个通用接口(即不完善版),直接上图

类和方法

SAP新版SOAMANAGER下WebService配置_用户名_52

方法参数

SAP新版SOAMANAGER下WebService配置_命名规则_53

方法实现

SAP新版SOAMANAGER下WebService配置_服务器_54

代码调用

SAP新版SOAMANAGER下WebService配置_示例代码_55

 

 输出:Success