Web Service的基本配置与使用
目录
5.2 查看消费类的方法(T-CODE : SE80、SE24)
8 调用WebService日志监控(T-CODE : SRT_UTIL)
一、创建Web Service
Web Service就是为了使原来各孤立的站点之间的信息能够相互通信、共享而提出的一种接口。优点是跨平台、技术难度低、开发周期短,Web Service实现的技术难度远远低于CORBA和DCOM。并且数据是以ASCII文本的方式而非二进制传输,调试方便,并实现跨防火墙通信。局限性是单机应用程序和局域网上的同构应用程序不适用Web Service,使用了XML对数据封装,会造成大量的数据要在网络中传输,没有规定任何与实现相关的细节,包括对象模型、编程语言等。
1.创建RFC程序(T-CODE : SE37)

在RFC模块中,只允许使用具有传递值的参数

2.创建服务(T-CODE : SE80/SE37)
2.1 创建的流程
2.1.1 T-CODE : SE37
选择实用程序->更多使用程序(M)->创建Web服务->来自函数模块(F)

填写服务定义和描述,点击继续

选择之前创建的函数,并选中Map Name

Profile选择NO * and NO *即可

选择开发包,并分配之前创建的请求,如果选择Local Object则为本地请求。

点击完成创建完成

2.1.2 T-CODE : SE80
右键选择创建->企业服务

选择Service Provider,点击继续

选择Service Provider,点击继续

填写服务定义和描述,点击继续

选择Function Module,点击继续

选择之前创建的函数,并选中Map Name,点击继续

Profile选择NO * and NO *即可,点击继续

选择开发包,并分配之前创建的请求,如果选择Local Object则为本地请求

点击完成即可创建

2.2 查看 Web Service
找到服务定义下的Web Service

双击查看

3.配置启用SOAMANAGER
3.1 配置启用SOAMANAGER
在对应的客户端运行TCODE:SOAMANAGER,SAPGUI会自动帮你找开一个浏览器(IE),这个界面会因版本的不同而不同,包括里面的操作界面也会因版本不同而不同。

常见无法显示网页的原因:
1. 没有使用ie浏览器。
解决方法:使用ie浏览器
2. 没有公司vpn账号,去cmd试一下ping+ip地址.

解决方法:申请公司vpn,并登陆。
3. 401未授权。
解决方法:检查客户端号是否有错。
4.没有配置hosts文件。
解决方法:有时候不配也可以登陆,检查方法是将端口号前的字符改成你所登陆的系统条目的地址。或者去配置一下hosts文件(见3.2)。
5.以上都试过了就是没用。
解决方法:尝试另一种方案配置 SOAMANAGER。事物代码:scif。

路径:default_host/ sap / bc / webdynpro /sap /APPL_SOAP_MANAGMENT(SOAP管理)
点击测试服务,SAPGUI会自动帮你找开一个浏览器(IE)。

3.2 调整SAP服务器主机的hosts文件
找到在自己机器的hosts文件(一般就位于c:\windows\system32\drivers\etc下)先把hosts文件移动出来,再在空白处添加 所登陆系统ip地址空格端口号前的hostsname,保存,将文件移动回原路径。
3.3 配置 SOAMANAGER
选择服务管理页签下的Web服务配置

- 搜索并选中刚刚创建的服务

选择创建服务

填写如下内容:

选择如下内容:

默认,下一步:

点击完成

跳转到以下页面:点击显示wsdl地址

WSDL地址如下(最好将地址保存下来,后面频繁使用)

4 通过SOAPUI调用WEBSERVICE
4.1 Soap的安装与配置
安装配置好java环境+将下载的SOAPUI文件解压出来就可以用了或者是直接运行安装包
4.2 操作步骤
点击新建Project

填入如下信息

以下内容默认即可

点击确认

输入用户和密码


点击运行

可以看到相应导出参数

Raw页签显示OK

5. 调用Web Service
5.1 创建消费类
T-code:SE80

选择Service Consumer

选择external wsdl/schema

选择url

填写wsdl地址:

填写相应信息

点击完成

5.2 查看消费类的方法(T-CODE : SE80、SE24)
Se80,双击消费类名称

双击消费类的名称(也可以记下这个名字去se24查看)

下图是该消费类的方法

光标放在ZFM_WEBSERVICE点击参数

可以看到导入导出参数

双击导入导出参数的关联类型

查看导入导出参数的结果,其中除第一个参数以外都是导入或者导出参数

6. 创建消费类的逻辑端口
点击消费类的名称

点击创建

填写如下信息

填写wsdl和用户名和密码

默认
输入用户名和密码

默认

默认

创建成功
点击ping

Ping成功即可进行下一步

7. 编写ABAP程序调用WebService
7.1 程序代码
*&---------------------------------------------------------------------* *& Report ZWEB_DEMO *&---------------------------------------------------------------------* *& *&---------------------------------------------------------------------* REPORT zweb_demo. DATA:cl_test TYPE REF TO zclco_zif_ws_test01, lw_input TYPE zclzfm_webservice, lw_output TYPE zclzfm_webservice_response, obj_exception TYPE REF TO cx_ai_system_fault, erro_msg TYPE string. IF cl_test IS NOT BOUND. CREATE OBJECT cl_test TYPE zclco_zif_ws_test01. ENDIF. *DATA xxxxxxxx TYPE REF TO ZIF_WSCO_ZWS_DEMO. *输入参数赋值 lw_input = VALUE #( num1 = 1 num2 = 9 ). TRY. CREATE OBJECT cl_test EXPORTING logical_port_name = 'ZIF_WS_TEST001_LOGIC_PORT'. "消息类逻辑端口名称 CALL METHOD cl_test->zfm_webservice EXPORTING input = lw_input IMPORTING output = lw_output. CATCH cx_ai_system_fault INTO obj. DATA(lv_mess) = obj->get_text( ). * CALL METHOD obj->get_text * RECEIVING * result = erro_msg. ENDTRY. WRITE: / lw_output-num ,lv_mess.可以直接调用企业服务中的消费类

调用后是这个样子的,要根据实际修改填写,并捕捉异常

7.2 运行结果

8 调用WebService日志监控(T-CODE : SRT_UTIL)
点击跟踪

默认自己的用户名

修改性能跟踪、功能跟踪、有效负载跟踪,默认追踪两个小时,点击保存。

点击错误日志

点击错误上下文

再点击有效负载,可以查看传过来的具体内容

岁月本长,而忙者自促。谢谢观看!