ABAP 内表与XML转换
1需求说明
在系统交互中需要将SAP内表转换为XML文件,发送给其他系统,并且将其他系统返回的XML文件转换为SAP内表。
2创建转换编辑器
事务代码:STRANS
选择简单转换
以图形方式编辑
右键插入新行
选择参考的类型。此处的TYPE类型是SE11中创建的表类型
SE11表类型如下
结构为嵌套结构,其中包含详细信息的表类型
详细信息表类型
其中包含两个详细信息字段
插入行后整个结构如下
在源代码中将会看到如下信息
完成XML格式
3代码实现
3.1内表与XML转换
定义变量
头行内表赋值
将内表转换为XML,并将返回的二进制字符串转为XML字符串
将XML转换为内表
3.2源代码
"-----------------------------------------@斌将军-------------------------------------------- DATA:LT_EKKO TYPE ZTXML001, GT_EKKO TYPE ZTXML001, GS_EKKO TYPE ZSXML001, GT_EKPO TYPE ZTDETAIL, GS_EKPO TYPE ZSDETAIL, XML_XSTRING TYPE XSTRING, XML_STRING TYPE STRING, LO_OREF TYPE REF TO CX_ST_ERROR, LV_MESSAGE TYPE CHAR200. "输出参数 "行结构 GS_EKPO-EBELP = '00010'. GS_EKPO-LOEKZ = 'X'. APPEND GS_EKPO TO GT_EKPO. "头结构 GS_EKKO-ID = '111'. GS_EKKO-EBELN = '4100000011'. GS_EKKO-BUKRS = '2000'. GS_EKKO-DETAIL = GT_EKPO. APPEND GS_EKKO TO GT_EKKO. "将内表转换为XML TRY . CALL TRANSFORMATION ZXMLTEST001 SOURCE POHEADER = GT_EKKO RESULT XML XML_XSTRING. "2进制转换XML字符串不乱码 CALL FUNCTION 'ECATT_CONV_XSTRING_TO_STRING' EXPORTING IM_XSTRING = XML_XSTRING "二进制字符串 IM_ENCODING = 'UTF-8' IMPORTING EX_STRING = XML_STRING. "返回的xml字符串 CATCH CX_ST_ERROR INTO LO_OREF. "传输XML转换错误 LV_MESSAGE = LO_OREF->GET_TEXT( ) . "报错日志保存 ENDTRY. WRITE /:XML_STRING. "将XML转换为内表 TRY. CALL TRANSFORMATION ZXMLTEST001 SOURCE XML XML_STRING RESULT POHEADER = LT_EKKO. CATCH CX_ST_ERROR INTO LO_OREF. "返回XML解析错误 LV_MESSAGE = LO_OREF->GET_TEXT( ). ENDTRY. WRITE /:LV_MESSAGE. "-----------------------------------------@斌将军--------------------------------------------
定期更文,欢迎关注
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· 葡萄城 AI 搜索升级:DeepSeek 加持,客户体验更智能
· 什么是nginx的强缓存和协商缓存
· 一文读懂知识蒸馏