本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
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
数据类型不支持NaN
、Infinity
或-Infinity
值。因此将float
数据类型表示为STRING
,并在运行时将其翻译为DECFLOAT16
。 -
线路上的 Amazon 数据表示为 JSON 或 XML,均为可选值。例如,您可以参阅以下由 Amazon Web Services 服务 以 JSON 格式返回的示例。
Fullname: { Firstname: "Ana", Middlename: "Carolina", Lastname: "Silva" }
如果 Ana 没有中间名,则此服务会返回以下输出内容。
Fullname: { Firstname: "Ana", Lastname: "Silva" }
ABAP 并不区分长度为 0 的字符串和无值的字符串。其他语言可能会向字符串分配 NULL 值,或者对构造函数中的字符串进行包装(如 Java 的
Optional<>
包装程序)。ABAP 不支持上述操作。因此,适用于 SAP ABAP 的 SDK 可以通过提供 getter 方法的变体,有效区分这些值。