SAP 发布 REST 接口「实例」
前言
SE24
创建 服务处理类,作为IF_HTTP_EXTENSION
接口实现类- 实现
IF_HTTP_EXTENSION~HANDLE_REQUEST
方法 - 进行数据处理 SICF
发布服务Web
请求测试服务SRT_LOG
查看错误日志
SE24 创建 Class
TCode SE24
创建 服务处理类
选择 Class,Next
填入描述信息,Save 保存
实现 接口 IF_HTTP_EXTENSION
实现方法
切换到 Methods
页签,双击 IF_HTTP_EXTENSION~HANDLE_REQUEST
方法进入 源码 页面
业务逻辑:获取 JSON 格式数据,并以 JSON 格式返回给外部系统
实现方法,激活
实现逻辑源码如下:
METHOD if_http_extension~handle_request.DATA: lr_json_ser TYPE REF TO cl_trex_json_serializer,lr_json_des TYPE REF TO cl_trex_json_deserializer.DATA: lv_json_string TYPE string.DATA: gt_t005u TYPE TABLE OF t005u.DATA: lv_request TYPE string.DATA: BEGIN OF ls_request,spras TYPE spras,land1 TYPE land1,END OF ls_request.DATA lt_request LIKE STANDARD TABLE OF ls_request." 该内表格式要和外部传入参数格式一致*&--- 获取调用时候传入的参数CLEAR: lt_request.lv_json_string = server->request->get_cdata( ). " 获取传入的 JSON 格式数据/ui2/cl_json=>deserialize( " 把 JSON 格式的转化为 ABAP 内表, 把 LV_JSON_STRING 放入 LT_REQUEST 里面EXPORTINGjson = lv_json_stringpretty_name = /ui2/cl_json=>pretty_mode-camel_caseCHANGINGdata = ls_request ).APPEND ls_request TO lt_request.*&--- 设置返回数据格式CALL METHOD server->response->if_http_entity~set_content_typeEXPORTINGcontent_type = 'application/json'.*&--- 获取要返回的数据IF lt_request[] IS NOT INITIAL.CLEAR: gt_t005u.SELECT *INTO TABLE gt_t005uFROM t005uUP TO 5 ROWSFOR ALL ENTRIES IN lt_requestWHERE spras = lt_request-sprasAND land1 = lt_request-land1.ENDIF.*&--- 要返回的数据转换成 JSON 格式CLEAR: lv_json_string.CREATE OBJECT lr_json_serEXPORTINGdata = gt_t005u[].CALL METHOD lr_json_ser->serialize.CALL METHOD lr_json_ser->get_dataRECEIVINGrval = lv_json_string.*&--- 设置返回数据server->response->set_cdata(EXPORTINGdata = lv_json_string " Character data).ENDMETHOD.
SICF 发布服务
TCode: SICF
创建自定义服务
default_host/sap
下创建Sub-Element
填写 Element
名称,点击确定
元素 Service
配置
配置刚刚创建的 服务实现类,然后 保存
激活服务
测试服务
获取 URL
,这里我们以 Postman
测试为例
这里需要注意拿到的
URL
中的Domain
和Port
会存在问题
- 直接访问对应
IP
/ 修改本地hosts
文件,做一下本地解析(具体可参见我的「SAP 发布 OData Service」文章中有介绍 / 或者自行 Google)- 端口号可能有误,需自行判断修改
程序中打 外部断点
测试查看
成功接收并转化值
响应码 200
,返回查询结果
SAP 发布 REST 接口「实例」相关推荐
- SAP 字段仍作为视图字段在视图中使用 | 更改表结构重新生成 CDS View「实例」
错误信息 Field ZPDAUSER-ZUSERID is still being used as a view field in view ZV_PDA_USER 视图 ZPDAUSER-ZUSE ...
- SAP GUI 账户密码重置「Note」
SAP GUI 账户密码重置「Note」 概览 SAP_ALL 权限用户登录系统 SU01 解锁 SU01 生成口令 重置密码 SU01 解锁 首先使用拥有 SAP_ALL 权限的用户登录系统 如果你 ...
- SAP SM36 后台作业「实例」
前言 Q: 为什么需要使用「后台作业」? 业务需求,需要周期性运行的任务 如果一个报表查询时间过长(比如客户服务器配置过于一般,程序代码优化过于 xxx),那么为了保证程序成功跑完,建议让程序在后台( ...
- 谷歌大脑发布神经网络的「核磁共振」,并公开相关代码
作者:杨晓凡.camel.思颖.杨文 神经网络的可解释性一直是所有研究人员心头的一团乌云.传统的尝试进行可解释性研究的方法是通过查看网络中哪个神经元被激发来来理解,但是即使我们知道「第 538 号神经 ...
- MCU - C51 单片机「实例」
前言 本文主要讲述 C51 单片机 学习需要掌握的基础内容纲领「实例代码地址」 订阅专栏,后续会陆续更新每章节内容 文章目录 前言 概览 1. Hello Wriprin 2. 创建工程文件 (.c) ...
- SAP 发布JSON接口
SAP发布REST的JSON格式接口: 主要简单介绍一下SAP如何发布REST接口,并指定格式是JSON的. 创建服务处理类 服务处理类用于外部系统调用SAP服务(即sap接口)的时候,作为服务的处理 ...
- 蚂蚁链发布新一代网络平台「FAIR」 区块链进入隐私计算原生时代
10月22日,2021杭州云栖大会上,蚂蚁集团旗下蚂蚁链宣布升级区块链架构,在新架构上,隐私计算成为一种原生能力.蚂蚁链还基于这一新架构推出全新区块链网络平台「FAIR」,在「FAIR」上,隐私计算将 ...
- SAP ALV 导出 Excel 负号前置「实例」
前言 业务场景 报表程序在不做任何修改的情况下,ALV 中金额字段的数据 - 负号将会显示在右侧 对于用户而言,他们希望实现 ALV 中金额字段的负号在左侧,提升可读性 并且还要让导出到 EXCEL ...
- 武大上交发布首篇「图像匹配」大领域综述!涵盖 8 个子领域,汇总近 20年经典方法
原文链接:https://bbs.cvmart.net/topics/3176 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ 武汉大学和 ...
最新文章
- 关于WebRTC发展的担忧和思考
- 如何配置代码自动校验功能
- 转:金牌网管师初级网络实验手册
- UVA 10474 Where is the Marble?
- 对称矩阵(MIT课程)
- 电压比较器的介绍和工作原理
- ks检验正态分布结果_正态分布检验的那些方法
- 3D建模自学要学多久?
- python—文件处理
- php广告统计代码,JS广告、统计代码如何添加,怎样添加JS统计代码和广告
- 我,阿里P7,找不到工作
- 谁在“盘”物联网的“网”?
- 混改中光城投集团控股有限公司 合作方案是如何完成的?
- 使用wkhtmltopdf 将网页转PDF
- 什么是MapReduce(入门篇)
- 记录10--fedora 14下安装tftp软件
- sklearn-鸢尾花分类
- 如何用计算机装手机系统,教你在手机上安装Windows系统
- 深度学习实验总结:PR-曲线、线性回归、卷积神经网络、GAN生成式对抗神经网络
- Lodop常用属性和方法字典(转)