如何把一个 ABAP 类的实例,序列化成 XML 字符串试读版

简介: 如何把一个 ABAP 类的实例,序列化成 XML 字符串试读版

本教程前一篇文章,我们学习了如何将 ABAP 变量,通过 CALL TRANSFORMATION 关键字,序列化成 XML 字符串的方法:

本教程我们更进一步,学习如何将一个包含了业务数据的 ABAP 类实例,序列化成 XML 字符串。

我们首先创建一个包含了业务数据的 ABAP 类。

为了简单起见,我们不在 SE24 事务码里创建一个全局类,而是直接在 SE38 创建的 ABAP 报表里,定义一个局部类。关于 ABAP 全局类和局部类的区别,笔者在这篇教程已经做了详细解释:

ABAP 源代码如下:

REPORT zst.
CLASS c1 DEFINITION.
  PUBLIC SECTION.
    INTERFACES if_serializable_object.
  PROTECTED SECTION.
    DATA carriers TYPE TABLE OF scarr.
ENDCLASS.
CLASS c2 DEFINITION INHERITING FROM c1.
  PUBLIC SECTION.
    METHODS constructor.
  PRIVATE SECTION.
    DATA lines TYPE i.
    METHODS: serialize_helper
      EXPORTING count TYPE i,
      deserialize_helper
        IMPORTING count TYPE i.
ENDCLASS.
CLASS c2 IMPLEMENTATION.
  METHOD constructor.
    super->constructor( ).
    SELECT * UP TO 2 ROWS
           FROM  scarr
           INTO  TABLE @carriers.
  ENDMETHOD.
  METHOD serialize_helper.
    count = lines( carriers ).
  ENDMETHOD.
  METHOD deserialize_helper.
    lines = count.
  ENDMETHOD.
ENDCLASS.
START-OF-SELECTION.
  DATA: lo TYPE REF TO c2.
  CREATE OBJECT lo.

简单说明一下这个报表的要点:

  1. 第三行定义了一个 ABAP 类 c1,实现了一个名叫 if_serializable_object 的接口。这个接口内没有定义任何方法,只是起一个标志作用,告诉 ABAP 框架,带有这个接口的 ABAP 类实例,可以被序列化成 XML
  2. c1 的 PROTECTED SECTION 定义了一个成员属性 carriers,该属性能够被 c1 和 c1 子类的实例所访问。

这个成员属性 carriers,就是我们想序列化成 XML 的目标,它是一个内表结构,内表的行类型为数据库表 scarr 的行结构。

  1. 第 10 行定义了一个类 c2,它是 c1 的子类。在 c2 的构造函数里,从数据库表 scarr 里读取两行数据,存储到成员属性 carriers 里。

执行上述的 ABAP 程序,运行时创建了一个 c2 的实例 lo,调试器里查看 lo 的属性:

carriers 属性包含两条记录:

下面我们学习如何将 ABAP 类实例 lo 序列化成 XML.

相关文章
|
1月前
|
Java C#
ABAP 7.40 新语法介绍系列之三 - ABAP Value 操作符试读版
ABAP 7.40 新语法介绍系列之三 - ABAP Value 操作符试读版
23 0
|
1月前
|
数据库
ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版
ABAP 泛型编程实战 - 分享一个数据库表内容的拷贝工具试读版
20 0
|
1月前
|
JSON 数据格式
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
第三方系统或者工具通过 HTTP 请求发送给 ABAP 系统的数据,应该如何解析试读版
27 0
|
1月前
|
BI
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
如何使用动态 ABAP 程序生成技术,对 ABAP 系统标准的报表行为进行微调试读版
13 0
|
23天前
|
数据库 存储 BI
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
12 0
SAP ABAP CDS View 源代码存储的数据库表揭秘和其他相关数据库表介绍试读版
|
23天前
|
数据库
迈入 SAP CDS View 世界的前置知识 - SAP ABAP 数据库视图介绍试读版
迈入 SAP CDS View 世界的前置知识 - SAP ABAP 数据库视图介绍试读版
10 0
迈入 SAP CDS View 世界的前置知识 - SAP ABAP 数据库视图介绍试读版
|
1月前
|
SQL Java 数据库
ABAP 7.40 新语法介绍系列之四 - ABAP Table Expression 内表表达式的用法试读版
ABAP 7.40 新语法介绍系列之四 - ABAP Table Expression 内表表达式的用法试读版
18 0
|
1月前
ABAP 7.40 新语法介绍系列之一 - ABAP 变量内联声明(Inline Declaration)试读版
ABAP 7.40 新语法介绍系列之一 - ABAP 变量内联声明(Inline Declaration)试读版
27 0
|
1月前
SAP ABAP ALV 的分组显示和 Subtotal 显示实现的技术步骤试读版
SAP ABAP ALV 的分组显示和 Subtotal 显示实现的技术步骤试读版
33 0
|
1月前
|
BI
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
工具分享 - 将一个 ABAP Function Group 内所有 Function Module 按照代码行数从高到低排序并显示试读版
15 0

相关课程

更多