SAP 发布 HTTP 接口

作者:斌将军 约 3 分钟阅读 更新日期:2025-03-02 1 年前更新 标签:ABAP, 开发
SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图

## 1、创建类

SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图

引用标准接口

SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图

改写集成的接口方法

SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图

此处仅实现POST方法,将传入的JSON报文转为函数传入参数,调用获取物料接口,并将返回的物料信息,转换为JSON报文返回

METHOD if_http_extension~handle_request. DATA:lv_method TYPE string, lv_req_json TYPE string, lv_res_json TYPE string. lv_method = server->request->get_header_field( '~request_method' ).* lv_path = server->request->get_header_field( '~request_uri' ). IF lv_method <> 'POST'. server->response->set_header_field( name = 'Content-Type' value = 'text/html' ). server->response->set_cdata( '请使用POST方法' ). server->response->set_status( code = 200 reason = '' ). RETURN. ENDIF. TYPES:BEGIN OF ty_input, i_matnr TYPE marc-matnr, END OF ty_input. DATA:ls_input TYPE ty_input, lt_marc TYPE TABLE OF ymms_marc. TYPES:BEGIN OF ty_output, t_marc LIKE lt_marc, END OF ty_output. DATA:ls_output TYPE ty_output. lv_req_json = server->request->get_cdata( ). /ui2/cl_json=>deserialize( EXPORTING json = lv_req_json pretty_name = /ui2/cl_json=>pretty_mode-camel_case CHANGING data = ls_input ). CALL FUNCTION 'YLCCTEST01_GETMATNR' EXPORTING i_matnr = ls_input-i_matnr TABLES t_marc = lt_marc. ls_output-t_marc = lt_marc. lv_res_json = /ui2/cl_json=>serialize( data = ls_output )."pretty_name = /ui2/cl_json=>pretty_mode-low_case ). server->response->set_status( code = 200 reason = 'successfully' ). " server->response->set_header_field( name = 'Content-Type' value = 'application/json' ). server->response->set_cdata( lv_res_json ). ENDMETHOD.

## 2、创建WEB服务

事务代码SICF,创建新节点

SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图

处理器清单中填上类名称

SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图

## 3、激活并测试服务

SAP 发布 HTTP 接口 - 封面图
SAP 发布 HTTP 接口 - 封面图
斌将军

关于作者:斌将军

企业信息化与 SAP 技术顾问,长期专注 SAP ABAP、FI/CO、MM、SD 等模块的技术分享与实战经验总结。查看更多介绍

来源说明:本文内容由「SAP发布HTTP接口.md」整理生成,仅用于内部技术分享与学习交流。