ABAP Restful接口

文章目录

  • ABAP Restful接口
    • 代码

ABAP Restful接口

在这里插入图片描述

代码

  METHOD if_http_extension~handle_request.TYPES: BEGIN OF parameter,name TYPE string,value TYPE string,END OF parameter.TYPES : BEGIN OF ty_material,werks TYPE marc-werks,  "工厂matnr TYPE mara-matnr,  "物料maktx TYPE makt-maktx,  "物料描述matkl TYPE mara-matkl,  "物料组attyp TYPE mara-attyp,  "物料类别END OF ty_material.DATA: lt_fields TYPE tihttpnvp,lv_header_query TYPE string,lv_data TYPE string,lv_html TYPE string.DATA: gt_material TYPE TABLE OF ty_material.FIELD-SYMBOLS <fs_field> LIKE LINE OF lt_fields.server->request->get_header_fields( "拿出请求头的部分CHANGINGfields = lt_fields).lv_data = server->request->if_http_entity~get_cdata( ). "把请求体内BODY那部分给拿出来READ TABLE lt_fieldsWITH KEY name = '~query_string' ASSIGNING <fs_field>."把请求头部分的参数拿出来,就是地址栏后面的参数IF sy-subrc EQ 0.DATA: ls_parameter TYPE parameter,lt_parameter TYPE TABLE OF parameter.DATA: lv_str TYPE string,lt_res TYPE TABLE OF string.DATA:row TYPE i,row1 TYPE i.DATA: s_length TYPE i,s_rlength TYPE i.DATA: s_material TYPE string,gj_material TYPE string.DATA: s_matnr TYPE mara-matnr.SPLIT <fs_field>-value AT '&' INTO TABLE lt_res.LOOP AT lt_res INTO DATA(ls_res).SEARCH ls_res FOR '='.IF  sy-subrc = 0.s_length = strlen( ls_res ).row = sy-fdpos.row1 = sy-fdpos + 1.s_rlength = s_length - row1.IF ls_res(row) = 'matnr'.s_matnr = ls_res+row1(s_rlength).ELSE.s_matnr = ''.ENDIF.ENDIF.CLEAR ls_parameter.ENDLOOP.s_matnr = |{ s_matnr ALPHA = IN }|. "添加前导0row = strlen( s_matnr ).  "计算总长度row1 = row - 18.  "计算需要左移的长度SHIFT s_matnr BY row1 PLACES LEFT.  "向左移动:总长度 - 18 的长度SELECTb~werks,a~matnr,c~maktx,a~matkl,a~attypFROM mara AS aLEFT JOIN marc AS b ON a~matnr = b~matnrLEFT JOIN makt AS c ON a~matnr = c~matnrWHERE a~matnr = @s_matnrINTO TABLE @gt_material."数据转成json格式CALL METHOD cl_fdt_json=>data_to_jsonEXPORTINGia_data = gt_materialRECEIVINGrv_json = gj_material.ENDIF.server->response->set_cdata(EXPORTINGdata = gj_material   "将返回参数放在请求体返回).ENDMETHOD.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/589749.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GDPU Java 天码行空6

一、实验目的 1、理解设计模式的基本思想&#xff1b; 2、理解并掌握常用的几种设计模式&#xff1b; 3、根据需求编写简单工厂设计模式&#xff1b; 4、根据需求编写适配器设计模式&#xff1b; 二、实验内容和步骤 1. 简单工厂模式实现计算器 请用简单工厂模式设计并编码…

自动驾驶传感器:传感的本质

自动驾驶传感器&#xff1a;传感的本质 附赠自动驾驶学习资料和量产经验&#xff1a;链接 0. 前言 这个系列的背景是&#xff1a;工作时候需要攒一台数据采集车辆&#xff0c;那段时间需要熟悉感知硬件&#xff0c;写了不少笔记&#xff0c;都是些冗长的文章&#xff0c;感兴…

Vue3从入门到实战:路由的query和params参数

在Vue 3中&#xff0c;我们可以通过路由的查询参数来传递数据。这意味着我们可以在不同的页面之间传递一些信息&#xff0c;以便页面可以根据这些信息来显示不同的内容或执行不同的操作。 查询参数的使用方式类似于在URL中添加附加信息&#xff0c;以便页面之间可以根据这些信息…

vue3源码解析——watch和watchEffect区别

watch和watchEffect是Vue 3.0中新增的两个响应式API&#xff0c;用于监听数据的变化。watch适用于需要获取新值和旧值&#xff0c;或者需要懒执行的场景&#xff0c;而watchEffect适用于需要监听多个数据源&#xff0c;并且需要立即执行的场景。它们之间的区别如下&#xff1a;…

【Linux】详解动静态库的制作和使用动静态库在系统中的配置步骤

一、库的作用 1、提高开发效率&#xff0c;让开发者所有的函数实现不用从零开始。 2、隐藏源代码。 库其实就是所有的.o文件用特定的方式进行打包形成一个文件&#xff0c;各个.o文件包含了源代码中的机器语言指令。 二、动态库和静态库的制作和使用 2.1、静态库的制作和使用…

美创科技获浙江省网络空间安全协会多项荣誉认可

4月2日&#xff0c;浙江省网络空间安全协会第二届会员大会第一次会议在杭州隆重召开&#xff0c;近180家会员单位代表、数十位特邀专家、嘉宾莅临现场。浙江省委网信办副主任马晓军出席会议并致辞&#xff0c;本次大会由协会秘书长吴铤主持。 凝心聚力&#xff0c;继往开来&…

ViveNAS性能调试笔记(一)

ViveNAS是一个开源的NAS文件服务软件&#xff0c;有一套独立自创的架构&#xff0c;ViveNAS希望能做到下面的目标&#xff1a; - 能支持混合使用高性能的介质(NVMe SSD)和低性能介质&#xff08;HDD&#xff0c;甚至磁带&#xff09;。做到性能、成本动态均衡。因此ViveNAS使用…

C++--类的定义

一.类的定义 class 类名 { private:成员属性或成员函数 protected:成员属性或成员函数 public:成员属性或成员函数 };补充&#xff1a; &#xff08;1&#xff09;class是声明类的关键字&#xff0c;class后跟类名。类名一般首字母大写。 &#xff08;2&#xff09;类包括成员…

怎样在Linux搭建NTP服务器

搭建 NTP&#xff08;Network Time Protocol&#xff09;服务器可以帮助你在局域网内提供时间同步服务&#xff0c;让网络中的设备都使用统一的时间。以下是在 Linux 系统上搭建 NTP 服务器的基本步骤&#xff1a; 安装 NTP 服务器软件&#xff1a; 在终端中执行以下命令安装 N…

【爬虫框架Scrapy】02 Scrapy入门案例

接下来介绍一个简单的项目&#xff0c;完成一遍 Scrapy 抓取流程。通过这个过程&#xff0c;我们可以对 Scrapy 的基本用法和原理有大体了解。 1. 本节目标 本节要完成的任务如下。 创建一个 Scrapy 项目。 创建一个 Spider 来抓取站点和处理数据。 通过命令行将抓取的内容…

Gemini即将收费,GPT无需注册?GPT3.5白嫖和升级教程

&#x1f310;Gemini 即将开始收费 开发者“白嫖”的好日子到头了 - Gemini将开始收费&#xff0c;影响使用Google AI for Developers提供的Gemini API的用户。 - Gemini API将引入按量付费定价&#xff0c;需要注意新的服务条款。 - 用户需在5月2日之前停止使用Gemini API和Go…

redis事务(redis features)

redis支持事务&#xff0c;也就是可以在一次请求中执行多个命令。redis中的事务主要是通过MULTI和EXEC这两个命令来实现的。 MULTI命令用来开启一个事务&#xff0c;事务开启之后&#xff0c;所有的命令就都会被放入到一个队列中&#xff0c;最后通过一个EXEC命令来执行事务中…