【SAP ABAP】SAP Webservice & RESTful 接口服务发布教程

您所在的位置:网站首页 webservice查看接口方式 【SAP ABAP】SAP Webservice & RESTful 接口服务发布教程

【SAP ABAP】SAP Webservice & RESTful 接口服务发布教程

2024-06-08 12:24| 来源: 网络整理| 查看: 265

SAP Webservice & RESTful 接口服务发布教程 1、SAP Webservice 类型2、SAP Webservice 服务发布2.1、准备 RFC2.2、通过 RFC 创建服务2.3、查看 WSDL2.3.1、WSADMIN2.3.2、SOAMANAGER 2.4、访问服务2.5、删除服务 3、SAP RESTful 服务发布3.1、创建数据服务类3.2、维护服务3.3、访问服务3.4、删除服务 4、SAP ODATA 服务发布5、SAP PO 服务发布

1、SAP Webservice 类型

关于 WebService 概念,这篇文章讲解的非常全面,可以移步阅读《SAP Web service》。

本想通过 RFC 来发布 ODATA 服务,奈何当前 SAP ECC 版本过低不支持,只好采用其他方式来发布服务,于是就尝试了下面这两种方法。

2、SAP Webservice 服务发布 2.1、准备 RFC

SE37,创建以下测试用 RFC

FUNCTION ZFM_DEMO_ODATA. *"---------------------------------------------------------------------- *"*"Local interface: *" TABLES *" T_DATA STRUCTURE SPFLI *"---------------------------------------------------------------------- select * into table T_DATA from spfli. ENDFUNCTION.

测试执行 RFC,得到的数据结果如下图: 在这里插入图片描述 需要发布服务的 FM 必须设置允许远程访问,即 RFC 函数 在这里插入图片描述

2.2、通过 RFC 创建服务

菜单:Utilities → More Utilities → Create Web Service → From the Function Module 在这里插入图片描述 根据向导,填写 WebService 定义信息: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 至此,Webservice 服务定义完成,可以在 SE80 中查看服务定义,激活服务定义。 在这里插入图片描述

2.3、查看 WSDL

首选需要确定SAP版本,不同版本的事务码不同。 NW740版本之前版本:使用事务码:WSCONFIG,WSADMIN NW740版本之后版本:使用事务码:SOAMANAGER 查看具体SAP版本,可参考这篇文章《如何更详细查看SAP 系统版本信息》。

2.3.1、WSADMIN

SAP ECC6.0,执行事务码:WSADMIN。 在这里插入图片描述 展开左边树形第一个节点,找到刚才定义的 Webservice 服务 ZWS_DEMO 在这里插入图片描述

在这里插入图片描述 在这里插入图片描述 输入SAP用户名和密码,即可获得 WSDL 地址 在这里插入图片描述

2.3.2、SOAMANAGER

SAP S4HANA,执行事务码:SOAMANAGER,跳转浏览器: 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 点击服务名称, 或者从se80->本地对象->服务定义->启动SOAMANAGER配置,可直接跳到此处 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 备注:上面能否勾选,基于定义Webservice时的以下设置。 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 复制,获得 WSDL 地址。

2.4、访问服务

Webservice服务测试,推荐使用SoapUI工具。 (1)新建项目,Add WSDL,贴入上面获取到的 WSDL地址 在这里插入图片描述 在这里插入图片描述 (2)输入SAP用户名及密码 在这里插入图片描述 在这里插入图片描述 (3)修改入参,调用服务 在这里插入图片描述 至此,SAP Webservice 服务发布完成。

2.5、删除服务

SE80,Enterprise Services → Service Definitions 中,找到对应的服务名称 ZWS_DEMO,右键 → Delete → Delete All Objects 在这里插入图片描述 在这里插入图片描述

3、SAP RESTful 服务发布

现在系统集成,都推荐采用 RESTful 服务,于是继续研究在 SAP 中发布 RESTful 服务的方法,具体实现步骤如下。

3.1、创建数据服务类

(1)SE24,创建数据服务类:YCL_REST_TEST 在这里插入图片描述 (2)继承系统接口:IF_HTTP_EXTENSION 在这里插入图片描述 (3)实现接口中的方法:IF_HTTP_EXTENSION~HANDLE_REQUEST 该方法为服务的主入口,主要就是分发处理各种 HTTP 方法,因为是发布数据查询服务,所以这里只演示了 GET方法。 在这里插入图片描述 (4)添加 GET 方法,并将 server 作为入参 在这里插入图片描述 (5)实现 GET 方法,查询数据,并返回Json串

METHOD get. DATA: lt_fields TYPE tihttpnvp, s_carrid TYPE rseloption, s_connid TYPE rseloption, lv_content_type TYPE string. DATA: ls_selopt TYPE rsdsselopt. * 获取请求参数 server->request->get_form_fields( CHANGING fields = lt_fields ). IF lt_fields IS INITIAL. " Sets current HTTP status code server->response->set_status( code = 404 reason = '未查询到传入参数,请检查' ). RETURN. ENDIF. FIELD-SYMBOLS: LIKE LINE OF lt_fields. LOOP AT lt_fields ASSIGNING . "FIELD-SYMBOL(). TRANSLATE -name TO UPPER CASE. CASE -name. WHEN 'CARRID'. CLEAR ls_selopt. ls_selopt-sign = 'I'. ls_selopt-option = 'EQ'. ls_selopt-low = -value. APPEND ls_selopt TO s_CARRID. WHEN 'CONNID'. CLEAR ls_selopt. ls_selopt-sign = 'I'. ls_selopt-option = 'EQ'. ls_selopt-low = -value. APPEND ls_selopt TO s_CONNID. ENDCASE. ENDLOOP. * 查询数据 DATA: lt_data TYPE TABLE OF SPFLI. SELECT * FROM SPFLI INTO CORRESPONDING FIELDS OF TABLE lt_data WHERE CARRID in s_CARRID and CONNID IN s_CONNID. * 返回 Json 结果 " Sets the HTTP body of this entity to the given char. data data: lv_str type string. * 说明:SAP ECC 不具备Json处理类,需要找网上第三方工具类,此处定义为:Z_UI2_CL_JSON2。 * SAP S4 可以直接使用系统自带的Json处理类:/ui2/cl_json,两者功能相似 lv_str = Z_UI2_CL_JSON2=>serialize( data = lt_data "lt_sflight"将内表转换为json传出 compress = abap_true pretty_name = Z_UI2_CL_JSON2=>pretty_mode-camel_case ). server->response->set_cdata( lv_str ). " Sets current HTTP status code server->response->set_status( code = 200 reason = 'OK' ). lv_content_type = 'application/json'. " Set the Body Type (Text/HTML, for example) server->response->set_content_type( lv_content_type ). ENDMETHOD.

保存,激活,待用。

3.2、维护服务

SAP端,执行事务码:SICF,进行 RESTful 服务发布。 在这里插入图片描述 default_host,右键 → 新的子元素 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 在这里插入图片描述 保存,返回 在这里插入图片描述 右键,激活服务 在这里插入图片描述 在这里插入图片描述

3.3、访问服务

右键,测试服务 在这里插入图片描述 弹出浏览器,获取到 Url,以及Json 结果 在这里插入图片描述 拷贝 Url 到 Postman 工具中,测试条件查询 在这里插入图片描述 至此,SAP RESTful 服务发布完成。

3.4、删除服务

在这里插入图片描述 在这里插入图片描述

4、SAP ODATA 服务发布

具体操作步骤可以参考这篇文章《三种方法进行SAP ODATA数据服务发布(DDIC、RFC、CDS)》。

5、SAP PO 服务发布

(1)PO发布Webservice,可以参考这篇文章《SAP PO 接口配置完整教程之一RFC服务发布》。

(2)PO发布RESTful,后续提供。

原创文章,转载请注明来源-X档案



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3