前言

  • 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 中的 DomainPort 会存在问题

  1. 直接访问对应 IP / 修改本地 hosts 文件,做一下本地解析(具体可参见我的「SAP 发布 OData Service」文章中有介绍 / 或者自行 Google)
  2. 端口号可能有误,需自行判断修改

程序中打 外部断点 测试查看

成功接收并转化值

响应码 200,返回查询结果

SAP 发布 REST 接口「实例」相关推荐

  1. SAP 字段仍作为视图字段在视图中使用 | 更改表结构重新生成 CDS View「实例」

    错误信息 Field ZPDAUSER-ZUSERID is still being used as a view field in view ZV_PDA_USER 视图 ZPDAUSER-ZUSE ...

  2. SAP GUI 账户密码重置「Note」

    SAP GUI 账户密码重置「Note」 概览 SAP_ALL 权限用户登录系统 SU01 解锁 SU01 生成口令 重置密码 SU01 解锁 首先使用拥有 SAP_ALL 权限的用户登录系统 如果你 ...

  3. SAP SM36 后台作业「实例」

    前言 Q: 为什么需要使用「后台作业」? 业务需求,需要周期性运行的任务 如果一个报表查询时间过长(比如客户服务器配置过于一般,程序代码优化过于 xxx),那么为了保证程序成功跑完,建议让程序在后台( ...

  4. 谷歌大脑发布神经网络的「核磁共振」,并公开相关代码

    作者:杨晓凡.camel.思颖.杨文 神经网络的可解释性一直是所有研究人员心头的一团乌云.传统的尝试进行可解释性研究的方法是通过查看网络中哪个神经元被激发来来理解,但是即使我们知道「第 538 号神经 ...

  5. MCU - C51 单片机「实例」

    前言 本文主要讲述 C51 单片机 学习需要掌握的基础内容纲领「实例代码地址」 订阅专栏,后续会陆续更新每章节内容 文章目录 前言 概览 1. Hello Wriprin 2. 创建工程文件 (.c) ...

  6. SAP 发布JSON接口

    SAP发布REST的JSON格式接口: 主要简单介绍一下SAP如何发布REST接口,并指定格式是JSON的. 创建服务处理类 服务处理类用于外部系统调用SAP服务(即sap接口)的时候,作为服务的处理 ...

  7. 蚂蚁链发布新一代网络平台「FAIR」 区块链进入隐私计算原生时代

    10月22日,2021杭州云栖大会上,蚂蚁集团旗下蚂蚁链宣布升级区块链架构,在新架构上,隐私计算成为一种原生能力.蚂蚁链还基于这一新架构推出全新区块链网络平台「FAIR」,在「FAIR」上,隐私计算将 ...

  8. SAP ALV 导出 Excel 负号前置「实例」

    前言 业务场景 报表程序在不做任何修改的情况下,ALV 中金额字段的数据 - 负号将会显示在右侧 对于用户而言,他们希望实现 ALV 中金额字段的负号在左侧,提升可读性 并且还要让导出到 EXCEL ...

  9. 武大上交发布首篇「图像匹配」大领域综述!涵盖 8 个子领域,汇总近 20年经典方法

    原文链接:https://bbs.cvmart.net/topics/3176 专注计算机视觉前沿资讯和技术干货 微信公众号:极市平台 官网:https://www.cvmart.net/ 武汉大学和 ...

最新文章

  1. 关于WebRTC发展的担忧和思考
  2. 如何配置代码自动校验功能
  3. 转:金牌网管师初级网络实验手册
  4. UVA 10474 Where is the Marble?
  5. 对称矩阵(MIT课程)
  6. 电压比较器的介绍和工作原理
  7. ks检验正态分布结果_正态分布检验的那些方法
  8. 3D建模自学要学多久?
  9. python—文件处理
  10. php广告统计代码,JS广告、统计代码如何添加,怎样添加JS统计代码和广告
  11. 我,阿里P7,找不到工作
  12. 谁在“盘”物联网的“网”?
  13. 混改中光城投集团控股有限公司 合作方案是如何完成的?
  14. 使用wkhtmltopdf 将网页转PDF
  15. 什么是MapReduce(入门篇)
  16. 记录10--fedora 14下安装tftp软件
  17. sklearn-鸢尾花分类
  18. 如何用计算机装手机系统,教你在手机上安装Windows系统
  19. 深度学习实验总结:PR-曲线、线性回归、卷积神经网络、GAN生成式对抗神经网络
  20. Lodop常用属性和方法字典(转)

热门文章

  1. angularjs的select 下拉框默认选中某个选项
  2. v-modle 原理解析
  3. Windows 编译 Lua版本 批处理
  4. 从零基础转行渗透测试到如今20k,我经历了什么?
  5. 【Java提升】设计模式入门教程 工厂模式
  6. 官宣!字节跳动取消大小周,员工却高兴不起来! 内网哀嚎:变相降薪20%,少赚一万!...
  7. Php与python简单比较
  8. 词袋模型(Bag-of-words model)
  9. 词袋模型与TF-IDF模型
  10. JavaScript常用内置对象