当前位置: 首页 > news >正文

ABAP 表转JSON格式

FUNCTION ZRFC_FI_SEND_PAYPLAN2BPM.
*"----------------------------------------------------------------------
*"*"本地接口:
*"  IMPORTING
*"     VALUE(INPUT) TYPE  ZSRFC_FI_SEND_PAYBPM_IN
*"  EXPORTING
*"     VALUE(OUTPUT) TYPE  ZRFC_RETURN
*"----------------------------------------------------------------------DATA: LO_HTTP_CLIENT TYPE REF TO IF_HTTP_CLIENT.DATA: LO_WRITER          TYPE REF TO CL_SXML_STRING_WRITER.DATA:LV_ERR_TEXT      TYPE STRING,LV_JSON_OUT      TYPE XSTRING,LV_REQUEST       TYPE STRING,LV_URL           TYPE AGR_URL,LV_OUTPUT_LENGTH TYPE I,LV_URL_STR       TYPE STRING,LT_BINARY_TAB    TYPE STANDARD TABLE OF SDOKCNTBIN,RESULT           TYPE        STRING,LV_SERVER_NAME   TYPE ZE_SERVER_NAME,LS_ITEM          TYPE ZPDT_SEND_PAYBPM_REQ_DATA,LT_ITEM          TYPE  TABLE OF ZPDT_SEND_PAYBPM_REQ_DATA,LV_LEN           TYPE I.LV_SERVER_NAME = 'PAYPLAN'.SELECT SINGLE HOSTINTO LV_URLFROM /THINKWAY/TBUS0AWHERE EXCHANGE_SYSTEM = 'BPM'AND INSTANCE = 'PAYPLAN'.IF SY-SUBRC <> 0.OUTPUT-MSGTY = 'E'.OUTPUT-MSGTX  = '未找到目标地址'.ELSE.LV_URL_STR = LV_URL.CONDENSE LV_URL_STR.CALL METHOD CL_HTTP_CLIENT=>CREATE_BY_URLEXPORTINGURL                = LV_URL_STRIMPORTINGCLIENT             = LO_HTTP_CLIENTEXCEPTIONSARGUMENT_NOT_FOUND = 1PLUGIN_NOT_ACTIVE  = 2INTERNAL_ERROR     = 3OTHERS             = 4.*content_typeLO_HTTP_CLIENT->REQUEST->SET_CONTENT_TYPE( CONTENT_TYPE = 'application/json; charset=utf-8' ).LO_HTTP_CLIENT->REQUEST->SET_METHOD( IF_HTTP_REQUEST=>CO_REQUEST_METHOD_POST ).CLEAR LT_ITEM[].LOOP AT INPUT-ITEM INTO DATA(LS_INPUT).LS_INPUT-LIFNR = |{ LS_INPUT-LIFNR ALPHA = OUT }|.LS_INPUT-BELNR = |{ LS_INPUT-BELNR ALPHA = OUT }|.LS_INPUT-HKONT = |{ LS_INPUT-HKONT ALPHA = OUT }|.MOVE-CORRESPONDING LS_INPUT TO LS_ITEM.CONDENSE LS_ITEM-ZZDMBTR NO-GAPS.CONDENSE LS_ITEM-WRBTR NO-GAPS.LS_ITEM-ZFBDT = LS_ITEM-BUDAT.APPEND LS_ITEM TO LT_ITEM.ENDLOOP.LO_WRITER = CL_SXML_STRING_WRITER=>CREATE( TYPE = IF_SXML=>CO_XT_JSON ).CALL TRANSFORMATION ID SOURCE DATA = LT_ITEM[] RESULT XML LO_WRITER.LV_JSON_OUT = LO_WRITER->GET_OUTPUT( ).CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'EXPORTINGBUFFER        = LV_JSON_OUTIMPORTINGOUTPUT_LENGTH = LV_OUTPUT_LENGTHTABLESBINARY_TAB    = LT_BINARY_TAB.CALL FUNCTION 'SCMS_BINARY_TO_STRING'EXPORTINGINPUT_LENGTH  = LV_OUTPUT_LENGTHIMPORTINGTEXT_BUFFER   = LV_REQUESTOUTPUT_LENGTH = LV_OUTPUT_LENGTHTABLESBINARY_TAB    = LT_BINARY_TAB.LV_LEN = STRLEN( LV_REQUEST ).REPLACE ALL OCCURRENCES OF REGEX '"CONTROLLER":\[\],' IN LV_REQUEST WITH ''.
*-  通过PO抓取BPM的数据LV_LEN = STRLEN( LV_REQUEST ).CALL METHOD LO_HTTP_CLIENT->REQUEST->SET_HEADER_FIELDEXPORTINGNAME  = '~request_method'VALUE = 'POST'.CALL METHOD LO_HTTP_CLIENT->REQUEST->SET_CDATAEXPORTINGDATA   = LV_REQUESTOFFSET = 0LENGTH = LV_LEN.CALL METHOD LO_HTTP_CLIENT->SENDEXCEPTIONSHTTP_COMMUNICATION_FAILURE = 1HTTP_INVALID_STATE         = 2HTTP_PROCESSING_FAILED     = 3HTTP_INVALID_TIMEOUT       = 4OTHERS                     = 5."接收CALL METHOD LO_HTTP_CLIENT->RECEIVEEXCEPTIONSHTTP_COMMUNICATION_FAILURE = 1HTTP_INVALID_STATE         = 2HTTP_PROCESSING_FAILED     = 3.RESULT = LO_HTTP_CLIENT->RESPONSE->GET_CDATA( ).LO_HTTP_CLIENT->CLOSE( ).DATA: LJSONNODE TYPE REF TO ZCL_MDP_JSON_NODE.DATA:L_VALUEOBJ TYPE REF TO ZCL_MDP_JSON_NODE.LJSONNODE = ZCL_MDP_JSON_NODE=>DESERIALIZE( JSON = RESULT ).FREE LO_HTTP_CLIENT.L_VALUEOBJ = LJSONNODE->OBJECT_GET_CHILD_NODE( KEY = 'isSuccess' ).IF L_VALUEOBJ->VALUE = 'true'.OUTPUT-MSGTY = 'S'.OUTPUT-MSGTX = LJSONNODE->OBJECT_GET_CHILD_NODE( KEY = 'errorMsg' )->VALUE.ELSE.OUTPUT-MSGTY = 'E'.OUTPUT-MSGTX = LJSONNODE->OBJECT_GET_CHILD_NODE( KEY = 'errorMsg' )->VALUE.ENDIF.ENDIF.
ENDFUNCTION.

以上 ABAP转json后会产生 

"DATA":{"LT_ITEM":[{"CONTROLLER":[],"BUKRS":"1040","BUTXT":"XXXXX机械科技有限公司","LIFNR":"2000","NAME1":"XXXXX科技有限公司","BELNR":"100027622","BUZEI":"001","BUDAT":"20240930","BLDAT":"20240930","WRBTR":"49041.11","ZTERM":"C999","ZFBDT":"20240930","ZFAEL":"31","ZZ....

 的数据,而实际的 {"CONTROLLER":[],是不需要的

所以要用到 REPLACE ALL OCCURRENCES OF REGEX '"CONTROLLER":\[\],' IN LV_REQUEST WITH ''.

本来replace就可以了,因为有多个 所以 用到 REPLACE ALL OCCURRENCES OF REGEX 

注意 '"CONTROLLER":\[\],'    因为特殊符号 []  在,所以要用到转义一下 

参考数据

写于20241010 台州

相关文章:

ABAP 表转JSON格式

FUNCTION ZRFC_FI_SEND_PAYPLAN2BPM. *"---------------------------------------------------------------------- *"*"本地接口&#xff1a; *" IMPORTING *" VALUE(INPUT) TYPE ZSRFC_FI_SEND_PAYBPM_IN *" EXPORTING *" VAL…...

oceanbase的日志量太大,撑爆磁盘,修改下日志级别

oceanbase的日志量太大&#xff0c;撑爆磁盘&#xff0c;修改下日志级别&#xff1a; [adminlnpg ~]$ obclient -h127.0.0.1 -uroot -P2881 -plinux123 Welcome to the OceanBase. Commands end with ; or \g. Your OceanBase connection id is 3221561020 Server version: O…...

【C++11】lambda表达式

前言&#xff1a; 随着 C11 的发布&#xff0c;C 标准引入了许多新特性&#xff0c;使语言更加现代化&#xff0c;开发者编写的代码也变得更加简洁和易于维护。Lambda 表达式是其中一个重要的特性&#xff0c;它提供了一种方便的方式来定义匿名函数&#xff0c;这在函数式编程范…...

前端学习-css的背景(十六)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 目录 前言 背景颜色 语法格式 背景图片 语法格式 背景平铺 语法格式 背景图片位置 语法格式 参数代表的意思 参数是方位名词 参数是精确单位 参数是混合单位 背…...

使用Postman搞定各种接口token实战

现在许多项目都使用jwt来实现用户登录和数据权限&#xff0c;校验过用户的用户名和密码后&#xff0c;会向用户响应一段经过加密的token&#xff0c;在这段token中可能储存了数据权限等&#xff0c;在后期的访问中&#xff0c;需要携带这段token&#xff0c;后台解析这段token才…...

ssh连接慢的问题或远程连接服务超时

问题原因&#xff1a; 在SSH登录过程中&#xff0c;服务器会通过反向DNS查找客户端的主机名&#xff0c;然后与登录的IP地址进行匹配&#xff0c;以验证登录的合法性。如果客户端的IP没有域名或DNS服务器响应缓慢&#xff0c;这可能导致SSH登录过慢。为了解决这个问题&#xf…...

基于卷积神经网络的蔬菜识别系统,resnet50,mobilenet模型【pytorch框架+python源码】

更多目标检测和图像分类识别项目可看我主页其他文章 功能演示&#xff1a; 基于卷积神经网络的蔬菜识别系统&#xff0c;resnet50&#xff0c;mobilenet【pytorch框架&#xff0c;python&#xff0c;tkinter】_哔哩哔哩_bilibili &#xff08;一&#xff09;简介 基于卷积神…...

数据结构与算法:栈与队列的高级应用

目录 3.1 栈的高级用法 3.2 队列的深度应用 3.3 栈与队列的综合应用 总结 数据结构与算法&#xff1a;栈与队列的高级应用 栈和队列是两种重要的线性数据结构&#xff0c;它们在计算机科学和工程的许多领域都有广泛的应用。从函数调用到表达式求值&#xff0c;再到任务调度…...

macos php开发环境之macport安装的php扩展安装,php常用扩展安装,port中可用的所有php扩展列表

macos中&#xff0c;我们使用了port 安装了php后&#xff0c;默认只带有php基本的核心扩展的&#xff0c; 如果需要使用其他的扩展&#xff0c;如 redis, https&#xff0c; xdebug等扩展就需要我们手动来安装对应的扩展。 macos php开发环境 macport安装的php的方法见macos 中…...

使用Pytorch+Numpy+Matplotlib实现手写字体分类和图像显示

文章目录 1.引用2.内置图片数据集加载3.处理为batch类型4.设置运行设备5.查看数据6.绘图查看数据图片(1)不显示图片标签(2)打印图片标签(3)图片显示标签 7.定义卷积函数8.卷积实例化、损失函数、优化器9.训练和测试损失、正确率(1)训练(2)测试(3)循环(4)损失和正确率曲线(5)输出…...

kimi帮我解决ubuntu下软链接文件夹权限不够的问题

我的操作如下 ubuntuubuntu-QiTianM420-N000:~$ ln -s /media/ubuntu/4701aea3-f883-40a9-b12f-61e832117414 code ubuntuubuntu-QiTianM420-N000:~$ ls -l 总用量 636 drwxrwxr-x 2 ubuntu ubuntu 4096 5月 7 17:16 bin drwxrwxrwx 2 ubuntu ubuntu 4096 5月 8 13…...

如何去除背景音乐保留人声?保留人声,消除杂音

在日常生活和工作中&#xff0c;我们经常遇到需要处理音频的情况&#xff0c;尤其是当我们想要去除背景音乐&#xff0c;仅保留人声时。这种需求在处理电影片段、制作音乐MV、或者提取演讲内容等场景中尤为常见。本文将为您详细介绍如何去除背景音乐并保留人声&#xff0c;帮助…...

2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数

2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数 2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数 文章目录 2.4.ReactOS系统提升IRQL级别KfRaiseIrql 函数KfRaiseIrql 函数 KfRaiseIrql 函数 /*********************************************************************** NAME …...

【新书】使用 OpenAI API 构建 AI 应用:利用 ChatGPT等构建 10 个 AI 项目(第二版),404页pdf

通过构建 ChatGPT 克隆、代码错误修复器、测验生成器、翻译应用、自动回复邮件生成器、PowerPoint 生成器等项目&#xff0c;提升您的应用开发技能。 关键特性 通过掌握 ChatGPT 概念&#xff08;包括微调和集成&#xff09;&#xff0c;转变为 AI 开发专家 通过涵盖广泛 AI …...

修改PostgreSQL表中的字段排列顺序

二、通过修改系统表(pg_attribute)达到字段重新排序的目的有关系统表的概述及用途可以查看官网&#xff1a;http://www.pgsqldb.org/pgsqldoc-cvs/catalogs.html 表名字表用途pg_class表&#xff0c;索引&#xff0c;序列&#xff0c;视图&#xff08;”关系”&#xff09;pg_…...

canvas实现手写功能

1.从接口获取手写内容&#xff0c;处理成由单个字组成的数组&#xff08;包括符号&#xff09; 2.合成所有图的时候&#xff0c;会闪现outputCanvas合成的图&#xff0c;注意隐藏 3.可以进行多个手写内容切换 4.基于uniapp的 <template><view class"content&quo…...

Python知识点:基于Python技术,如何使用TensorFlow进行目标检测

开篇&#xff0c;先说一个好消息&#xff0c;截止到2025年1月1日前&#xff0c;翻到文末找到我&#xff0c;赠送定制版的开题报告和任务书&#xff0c;先到先得&#xff01;过期不候&#xff01; 使用TensorFlow进行目标检测的完整指南 目标检测是计算机视觉领域中的一项重要任…...

初始爬虫13(js逆向)

为了解决网页端的动态加载&#xff0c;加密设置等&#xff0c;所以需要js逆向操作。 JavaScript逆向可以分为三大部分&#xff1a;寻找入口&#xff0c;调试分析和模拟执行。 1.chrome在爬虫中的作用 1.1preserve log的使用 默认情况下&#xff0c;页面发生跳转之后&#xf…...

前端发送了请求头的参数,经debug发现后端请求对象请求头中没有该参数

debug测试&#xff0c;发现前端发来请求头中确实没有找到添加的请求头参数&#xff0c;但是 Network 中却显示请求头中有该参数信息。 原因是RequestHeaders中设置的请求参数含有下划线&#xff0c;NGINX将静默地丢弃带有下划线的HTTP标头&#xff0c;这样做是为了防止在将头映…...

雷池社区版如何使用静态资源的方式建立站点

介绍&#xff1a; SafeLine&#xff0c;中文名 “雷池”&#xff0c;是一款简单好用, 效果突出的 Web 应用防火墙(WAF)&#xff0c;可以保护 Web 服务不受黑客攻击。 雷池通过过滤和监控 Web 应用与互联网之间的 HTTP 流量来保护 Web 服务。可以保护 Web 服务免受 SQL 注入、X…...

谷歌浏览器插件

项目中有时候会用到插件 sync-cookie-extension1.0.0&#xff1a;开发环境同步测试 cookie 至 localhost&#xff0c;便于本地请求服务携带 cookie 参考地址&#xff1a;https://juejin.cn/post/7139354571712757767 里面有源码下载下来&#xff0c;加在到扩展即可使用FeHelp…...

React第五十七节 Router中RouterProvider使用详解及注意事项

前言 在 React Router v6.4 中&#xff0c;RouterProvider 是一个核心组件&#xff0c;用于提供基于数据路由&#xff08;data routers&#xff09;的新型路由方案。 它替代了传统的 <BrowserRouter>&#xff0c;支持更强大的数据加载和操作功能&#xff08;如 loader 和…...

云启出海,智联未来|阿里云网络「企业出海」系列客户沙龙上海站圆满落地

借阿里云中企出海大会的东风&#xff0c;以**「云启出海&#xff0c;智联未来&#xff5c;打造安全可靠的出海云网络引擎」为主题的阿里云企业出海客户沙龙云网络&安全专场于5.28日下午在上海顺利举办&#xff0c;现场吸引了来自携程、小红书、米哈游、哔哩哔哩、波克城市、…...

学校招生小程序源码介绍

基于ThinkPHPFastAdminUniApp开发的学校招生小程序源码&#xff0c;专为学校招生场景量身打造&#xff0c;功能实用且操作便捷。 从技术架构来看&#xff0c;ThinkPHP提供稳定可靠的后台服务&#xff0c;FastAdmin加速开发流程&#xff0c;UniApp则保障小程序在多端有良好的兼…...

ServerTrust 并非唯一

NSURLAuthenticationMethodServerTrust 只是 authenticationMethod 的冰山一角 要理解 NSURLAuthenticationMethodServerTrust, 首先要明白它只是 authenticationMethod 的选项之一, 并非唯一 1 先厘清概念 点说明authenticationMethodURLAuthenticationChallenge.protectionS…...

Spring Boot面试题精选汇总

&#x1f91f;致敬读者 &#x1f7e9;感谢阅读&#x1f7e6;笑口常开&#x1f7ea;生日快乐⬛早点睡觉 &#x1f4d8;博主相关 &#x1f7e7;博主信息&#x1f7e8;博客首页&#x1f7eb;专栏推荐&#x1f7e5;活动信息 文章目录 Spring Boot面试题精选汇总⚙️ **一、核心概…...

【C语言练习】080. 使用C语言实现简单的数据库操作

080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...

【FTP】ftp文件传输会丢包吗?批量几百个文件传输,有一些文件没有传输完整,如何解决?

FTP&#xff08;File Transfer Protocol&#xff09;本身是一个基于 TCP 的协议&#xff0c;理论上不会丢包。但 FTP 文件传输过程中仍可能出现文件不完整、丢失或损坏的情况&#xff0c;主要原因包括&#xff1a; ✅ 一、FTP传输可能“丢包”或文件不完整的原因 原因描述网络…...

在鸿蒙HarmonyOS 5中使用DevEco Studio实现指南针功能

指南针功能是许多位置服务应用的基础功能之一。下面我将详细介绍如何在HarmonyOS 5中使用DevEco Studio实现指南针功能。 1. 开发环境准备 确保已安装DevEco Studio 3.1或更高版本确保项目使用的是HarmonyOS 5.0 SDK在项目的module.json5中配置必要的权限 2. 权限配置 在mo…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...