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.

ABAP 内表与XML转换的更多相关文章

  1. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW-(以运单号为单位显示ALV然后保存输出)

    *********************************************************************** * Title           : ZSDF003  ...

  2. ABAP 内表的行列转换-发货通知单-打印到Excel里-NEW

    *********************************************************************** * Title           : ZSDF002  ...

  3. ABAP 内表的行列转换-发货通知单-打印到Excel里

    需要传入数据到Excel里的模板如上图所示 ********************** *           设计主要逻辑与原理说明                                 ...

  4. ABAP 内表的行列转换-发货通知单2

    *&---------------------------------------------------------------------* *& Report  Z_TEST_C ...

  5. ABAP 内表的行列转换-发货通知单-SLIS

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: VTTP,LIPS,LIKP,KNA1 ,VTTK. DATA: gd_fieldcat TYP ...

  6. ABAP 内表的行列转换-NEW

    REPORT Z_TEST_COL_TO_ROW. TYPE-POOLS: slis. TABLES: mseg,mkpf. DATA: gd_fieldcat TYPE slis_t_fieldca ...

  7. ABAP 内表的行列转换

    http://www.cnblogs.com/qlp1982/p/3370591.html

  8. Abap 内表的语法

    ABAP中的内表相当于其他程序设计语言中的二维数组,存储多行结构相同的数据 不同于二维数组,内表在创建后,列结构与列数是固定不变的,而行数是动态增长的  内表支持循环对每行数据进行操作,也支持整体操作 ...

  9. ABAP内表数据和JSON格式互转

    本程序演示ABAP内表数据如何转为JSON格式,以及JSON数据如何放入内表. 注:json字符串格式如:jsonstr = '[ {flag: "0",message: &quo ...

随机推荐

  1. python嵌套列表知多少

    今天在创建嵌套列表时遇到一个问题,决定看看到底是谁在背后捣鬼 >>> board1 = [[0]*3 for _ in range(3)] [[0, 0, 0], [0, 0, 0] ...

  2. element动态添加表头的正确姿势

    1. 第一步循环 el-table-column <el-table-column v-if="item.show" v-for="(item, index) in ...

  3. [转载]绕过CDN查找真实IP方法总结

    前言 类似备忘录形式记录一下,这里结合了几篇绕过CDN寻找真实IP的文章,总结一下绕过CDN查找真实的IP的方法 介绍 CDN的全称是Content Delivery Network,即内容分发网络. ...

  4. golang实现并发爬虫一(单任务版本爬虫功能)

    目的是写一个golang并发爬虫版本的演化过程. 那么在演化之前,当然是先跑通一下单任务版本的架构. 正如人走路之前是一定要学会爬走一般. 首先看一下单任务版本的爬虫架构,如下: 这是单任务版本爬虫的 ...

  5. 【山外笔记-数据库】Memcached详解教程

    本文打印版文档下载地址 [山外笔记-数据库]Memcached详解教程-打印版.pdf 一.Memcached数据库概述 1.Memcached简介 (1)Memcached是一个自由开源的,高性能, ...

  6. Spring5:控制反转

    二.Spring IOC控制反转 1:IOC推导 >传统业务调用编程 定义一个userDao接口:UserDao package com.spring; public interface Use ...

  7. PG TO Oracle 增量同步-外部表

    背景 最近在负责公司数据Oracle转PG:老平台数据库:Oracle11g:新平台数据库:PostgreSQL12.由于平台统计规则有变动:所以正在推广的游戏数据无法全部迁移过来:只能在老平台上运行 ...

  8. 《Metasploit魔鬼训练营》第一章实践作业

    <Metasploit魔鬼训练营>第一章实践作业 1.搜集Samba服务usermap_script安全漏洞的相关信息,画出该安全漏洞的生命周期图,标注各个重要事件点的日期,并提供详细描述 ...

  9. 如何给 Inno Setup 生成的安装包添加版本信息

    使用 Inno 已有的函数 GetFileVersion 获取 EXE 文件的版本 #define ApplicationName 'Application Name' #define Applica ...

  10. 在java中使用JMH(Java Microbenchmark Harness)做性能测试

    文章目录 使用JMH做性能测试 BenchmarkMode Fork和Warmup State和Scope 在java中使用JMH(Java Microbenchmark Harness)做性能测试 ...