

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# 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>String</td><td>STRING</td><td></td></tr>
  <tr><td>バイト</td><td>INT2</td><td>INT2 の範囲は 0 ～ 255 よりも大きくなります。ほとんどの AWS のサービス はオーバーフローを切り捨てますが、この動作は正式に定義されていません。</td></tr>
  <tr><td>ショート</td><td>INT2</td><td></td></tr>
  <tr><td>整数</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>浮動小数点数</td><td>STRING</td><td rowspan="2">ABAP は DECFLOATs をサポートしていますが、NaN、Infinity、-Infinity などの値を表すことはできません。 AWS SDK はこれらを内部的に STRINGsとして表し、実行時に DECFLOAT16 に変換します。NaN、無限大、または正の無限大が表現されている場合、開発者は特別な例外またはマッピングのセットに対応してこれらを処理できます。</td></tr>
  <tr><td>倍精度</td><td>STRING</td></tr>
  <tr><td>bigInteger</td><td>STRING</td><td rowspan="2">これらの値は ABAP では表現できない無限長の数値を表し、bigInteger の代わりに文字列が使用されます。</td></tr>
  <tr><td>bigDecimal</td><td>STRING</td></tr>
  <tr><td>Timestamp</td><td> TZNTSTMPS </td><td>TZNTSTMPS により、ネイティブ ABAP タイムスタンプ関数による処理が可能になります。</td></tr>
</tbody>
</table>


AWS のサービス は、次の集計データ型も返します。


| AWS データ型 | ABAP データ型 | コメント | 
| --- | --- | --- | 
| 構造 | Class |  | 
| Union | Class | Union は構造体と同じですが、Union は複数のフィールドセットを持たない点が異なります。その他のフィールドはすべて [値なし] に設定されます。 | 
| 配列 | STANDARD TABLE |  | 
| ハッシュ | HASHED TABLE | ハッシュテーブルには、KEY (文字列) と VALUE (クラス) の 2 つの列しかありません。 | 

## AWS データ型
<a name="aws-api"></a>

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 ではサポートされていません。そのため、SDK for SAP ABAP には *getter* メソッドのバリアントが用意されており、値の区別が容易になっています。