zoukankan      html  css  js  c++  java
  • 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.

  • 相关阅读:
    requireJS的使用_API-1
    C# WebService动态调用
    Jquery 分页插件 Jquery Pagination
    脸识别API微软牛津项目
    从源码看Android中sqlite是怎么读DB的(转)
    浅谈SQL注入风险
    django
    java自动转型
    二叉搜索树(Binary Search Tree)--C语言描述(转)
    微软2014校园招聘笔试试题
  • 原文地址:https://www.cnblogs.com/BinGeneral/p/12858964.html
Copyright © 2011-2022 走看看