

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# ABAP 中的資料表示
<a name="representation"></a>

本節涵蓋下列主題。

**Topics**
+ [資料類型](#data-types)
+ [AWS 資料類型](#aws-api)

## 資料類型
<a name="data-types"></a>

AWS 服務 有一組標準資料類型，必須映射至 ABAP 資料類型。如需詳細資訊，請參閱下表。


<table>
<thead>
  <tr><th>AWS 資料類型</th><th>ABAP 資料類型</th><th>說明</th></tr>
</thead>
<tbody>
  <tr><td>boolean</td><td>C</td><td>單一字元"X"和 " "</td></tr>
  <tr><td>字串</td><td>STRING</td><td></td></tr>
  <tr><td>位元組</td><td>INT2</td><td>INT2 的範圍大於 0-255。大多數 AWS 服務 會截斷溢位，但此行為不會正式定義。</td></tr>
  <tr><td>Short</td><td>INT2</td><td></td></tr>
  <tr><td>Integer</td><td>INT4</td><td></td></tr>
  <tr><td>Long</td><td>DEC19</td><td>INT8 在 ABAP 750 之前無法使用。DEC19 用於所有支援的 ABAP 平台之間的相容性和一致性。</td></tr>
  <tr><td>Blob</td><td>XSTRING</td><td>代表二進位資料</td></tr>
  <tr><td>Float</td><td>STRING</td><td rowspan="2">雖然 ABAP 支援 DECFLOATs，但無法代表 NaN、Infinity 和 -Infinity. AWS SDK 等值，在內部將其表示為 STRINGs，並在執行時間將其轉換為 DECFLOAT16。如果代表 NaN、Infinity 或 \+Infinity，開發人員可能會處理這些項目，以回應一組特殊例外狀況或映射。</td></tr>
  <tr><td>Double</td><td>STRING</td></tr>
  <tr><td>bigInteger</td><td>STRING</td><td rowspan="2">這些值代表無法在 ABAP 中表示的無限長度數字，並使用 STRINGs而不是 bigInteger。</td></tr>
  <tr><td>bigDecimal</td><td>STRING</td></tr>
  <tr><td>時間戳記</td><td> TZNTSTMPS </td><td>TZNTSTMPS 可使用原生 ABAP 時間戳記函數進行處理。</td></tr>
</tbody>
</table>


AWS 服務 也會傳回下列彙總資料類型。


| AWS 資料類型 | ABAP 資料類型 | 說明 | 
| --- | --- | --- | 
| 結構 | 類別 |  | 
| UNION | 類別 | 聯集與結構相同，只是聯集絕不會有多個欄位集。所有其他欄位都會設定為無值。 | 
| 陣列 | 標準資料表 |  | 
| 雜湊 | HASHED 資料表 | 雜湊資料表只會有兩個資料欄：KEY （字串） 和 VALUE （類別）。 | 

## AWS 資料類型
<a name="aws-api"></a>

下列方法已整合為 AWS 服務 支援 ABAP。
+ 某些 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* 方法的變體來促進值的差異。