ABAP 中的数据表示 - Amazon 适用于 SAP 的 SDK ABA
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

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

ABAP 中的数据表示

本节涵盖以下主题。

数据类型

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

Amazon 数据类型 ABAP 数据类型 注释
布尔值 C 单字符 "X"" "
字符串 STRING
字节 INT2 INT2 的范围大于 0 ~ 255。大多数 Amazon Web Services 会截断溢出,但此行为尚无正式定义。
短型 INT2
整数 INT4
长整型 DEC19 在 ABAP 750 版本发布前,INT8 不可用。DEC19 会兼容所有支持的 ABAP 平台并保持一致。
Blob XSTRING 表示二进制数据
Float STRING ABAP 虽然支持 DECFLOAT,但无法表示 NaN、Infinity 和 -Infinity 等值。AmazonSDK 内部将这些值表示为 STRING,并在运行时将其转换为 DECFLOAT16。如果 NaN、Infinity 或 +Infinity 得以表示,则开发人员可以根据一组特殊异常或映射来处理这些值。
Double STRING
bigInteger STRING 这些值表示无限长的数字,无法用 ABAP 表示,并且使用的是 STRING 而不是 bigInteger。
bigDecimal STRING
时间戳 TZNTSTMPS TZNTSTMPS 允许使用 ABAP 原生时间戳函数进行处理。

Amazon Web Services 还会返回以下聚合数据类型。

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

Amazon 数据类型

以下方法经过集成后能够以 ABAP 语言支持 Amazon Web Services。

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

  • 线路上的 Amazon 数据表示为 JSON 或 XML,均为可选值。例如,您可以参阅以下由 Amazon Web Service 以 JSON 格式返回的示例。

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

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

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

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