ABAP でのデータの表現 - AWS SDK の SAP ABAP

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

ABAP でのデータの表現

このセクションでは、次のトピックについて説明します。

データ型

AWS のサービス には、ABAP データ型にマッピングする必要があるデータ型の標準セットがあります。詳細については、以下の表をご参照ください。

AWS データ型 ABAP データ型 コメント
boolean C 単一文字 "X" および " "
文字列 STRING
バイト INT2 INT2 の範囲は 0 ~ 255 よりも大きくなります。ほとんどの AWS のサービス は、オーバーフローを切り捨てますが、この動作は正式に定義されていません。
ショート INT2
整数 INT4
Long DEC19 INT8 は ABAP 750 までは使用できません。DEC19 は、サポートされているすべての ABAP プラットフォームでの互換性と一貫性を保つために使用されています。
blob XSTRING バイナリデータを表します
浮動小数点 STRING ABAP は DECFLOAT をサポートしていますが、NaN、無限大、負の無限大などの値を表すことはできません。AWSSDK はこれらを内部的に文字列として表現し、実行時に DECFLOAT16 に変換します。NaN、無限大、または正の無限大が表現されている場合、開発者は特別な例外またはマッピングのセットに対応してこれらを処理できます。
ダブル STRING
bigInteger STRING これらの値は ABAP では表現できない無限長の数値を表し、bigInteger の代わりに文字列が使用されます。
bigDecimal STRING
タイムスタンプ TZNTSTMPS TZNTSTMPS により、ネイティブ ABAP タイムスタンプ関数による処理が可能になります。

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

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

AWS データ型

ABAP で AWS のサービス をサポートするために、次のアプローチが統合されました。

  • 特定の AWS データ型は ABAP では表現できません。例えば、ABAP の float データ型は、NaNInfinity、または -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 メソッドのバリアントが用意されており、値の区別が容易になっています。