View a markdown version of this page

ABAP 中的数据表示 - AWS 适用于 SAP ABAP 的 SDK

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

ABAP 中的数据表示

本节涵盖以下主题。

数据类型

AWS 服务 有一组必须映射到 ABAP 数据类型的标准数据类型。有关更多信息,请参阅下表。

AWS 数据类型 ABAP 数据类型 评论
布尔值 C 单字符 "X" 和 " "
字符串 string
字节 INT2 INT2 的范围大于 0-255。大多数 AWS 服务 会截断溢出,但这种行为尚未正式定义。
短型 INT2
整数 INT4
长整型 DEC19 INT8 直到 ABAP 750 才可用。 DEC19 用于在所有支持的 ABAP 平台之间实现兼容性和一致性。
Blob XSTRING 表示二进制数据
浮点型 STRING 虽然 ABAP 支持 DECFLOATs,但它不能表示诸如 NaN、Infinity 和-Infinity 之类的值。 AWS SDK 在内部将它们表示为 STRINGs,并在运行 DECFLOAT16 时将其转换为。如果 NaN、Infinity 或 +Infinity 得以表示,则开发人员可以根据一组特殊异常或映射来处理这些值。
双精度 string
bigInteger string 这些值表示无法在 ABAP 中表示的无限长度数字,用于代替 BigInteg STRINGs er。
bigDecimal string
Timestamp TZNTSTMPS TZNTSTMPS 允许使用 ABAP 原生时间戳函数进行处理。

AWS 服务 还会返回以下聚合数据类型。

AWS 数据类型 ABAP 数据类型 评论
结构 类
Union 类 并集的字段集数量始终不超过一个,除此以外,它与结构一模一样。其他所有字段均设为无值。
数组 标准表
哈希 哈希表 经过哈希处理的表只有两列:键列(字符串)和值列(类)。

AWS 数据类型

已在 ABAP AWS 服务 中集成了以下方法来提供支持。

  • 某些 AWS 数据类型无法在 ABAP 中表示。例如,以 ABAP 语言表示的 float 数据类型不支持 NaN、Infinity 或 -Infinity 值。因此将 float 数据类型表示为 STRING,并在运行时将其翻译为 DECFLOAT16。

  • AWS 数据在线上以 JSON 或 XML 的形式表示,并且这些值是可选的。例如,请参阅以下由 JSON 格式返回 AWS 服务 的示例。

    Fullname: {    Firstname:  "Ana",    Middlename: "Carolina",    Lastname:  "Silva" }

    如果 Ana 没有中间名,则此服务会返回以下输出内容。

    Fullname: {    Firstname:  "Ana",    Lastname:  "Silva" }

    ABAP 并不区分长度为 0 的字符串和无值的字符串。其他语言可能会向字符串分配 NULL 值,或者对构造函数中的字符串进行包装(如 Java 的 Optional<> 包装程序)。ABAP 不支持上述操作。因此,适用于 SAP ABAP 的 SDK 可以通过提供 getter 方法的变体,有效区分这些值。