Web Service的基本配置与使用

Web Service的基本配置与使用

目录

一、创建Web Service

1.创建RFC程序(T-CODE : SE37)

2.创建服务(T-CODE : SE80/SE37)

 2.1 创建的流程

 2.1.1 T-CODE : SE37

2.1.2 T-CODE : SE80

2.2  查看 Web Service

3.配置启用SOAMANAGER

3.1 配置启用SOAMANAGER

3.2 调整SAP服务器主机的hosts文件

3.3 配置 SOAMANAGER

4  通过SOAPUI调用WEBSERVICE

4.1 Soap的安装与配置

4.2 操作步骤

5. 调用Web Service

5.1 创建消费类

5.2  查看消费类的方法(T-CODE : SE80、SE24)

6. 创建消费类的逻辑端口

7. 编写ABAP程序调用WebService

7.1 程序代码

7.2 运行结果

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地址如下(最好将地址保存下来,后面频繁使用)

通过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 运行结果

调用WebService日志监控(T-CODE : SRT_UTIL)

点击跟踪

默认自己的用户名

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

点击错误日志

点击错误上下文

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

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

Could not load content