コンテンツフレーム起動

基本データ型の変換ルール 文書を SAP ライブラリストラクチャに組み込む

組込 ABAP データ型は 10 あります。これらの基本データ型の間では、100 種類の組合せが可能です。ABAP では、相互変換が不可能なデータ型 D ( 日付) および T ( 時刻) の項目を除き、データ型の組合せに対し、自動的なデータ型変換および長さ調整がサポートされています。

下記の変換表には、ソース項目と対象項目で可能なすべての組合せについて、以下の基本データ型の変換ルールが定義されています。

C  D  F  I  N  P  STRING  T  X  XSTRING

 

文字のソースデータ型

ソースデータ型 C の変換表

対象

変換

C

対象項目は左から右に入力されます。対象項目は長すぎる場合、右から空白が埋められます。短すぎる場合は、内容が右から切詰められます。

D

文字項目には、8 文字の日付が YYYYMMDD の書式で格納されていなければなりません。

F

ソース項目の内容は、リテラルでの記述どおり、型 F の有効な表現でなければなりません。

N

ソース項目の数値だけがコピーされます。対象項目は右寄せされ、後続のゼロが埋められます。

IP

ソース項目には、10 進数の表現がなければなりません。つまり、オプションの符号を伴い、小数点が最大 1 つの数値列です。ソース項目に空白を含めることができます。対象項目が短すぎる場合、オーバーフローが発生することがあります。これにより、プログラムの強制終了が発生する可能性があります。

STRING

ソース項目の占有長がコピーされます。後続の空白はすべて切詰められます。

T

文字項目には、6 文字の時刻が HHMMSS の書式で格納されていなければなりません。

X

この文字項目には 16 進文字列が格納されていなければならないので、有効な文字は 0123456789ABCDE 、および F だけになります。この文字列は、16 進数としてパックされ、左寄せで転送されてから、右側にゼロが埋められるか、または右側で切詰められます。

XSTRING

対象項目がゼロで埋められない点を除き、データ型 X の項目 と同様です。

 

日付のソースデータ型

ソースデータ型 D の変換表

対象

変換

C

日付は変換されずに左寄せで転送されます。

D

変換されずに転送されます。

F

日付はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください)

N

日付は変換されずに左寄せで転送され、必要に応じて、右側にゼロが埋められます。

IP

日付は、0001/01/01 以降の日数に変換されます。

STRING

日付は、文字項目に変換されてから文字列に変換されます。

T

サポートされていません。構文チェックでエラーメッセージが表示されるか、または実行時エラーが発生します。

X

日付は、16 進書式で 0001/01/01 以降の日数に変換されます。

XSTRING

有効なバイトだけがコピーされる点を除き、データ型 X の項目 と同様です。

 

浮動小数点形式の値のソースデータ型

ソースデータ型 F の変換表

対象

変換

C

浮動小数点形式の値は、<mantissa>E<exponent> 書式に変換され、文字項目に転送されます。仮数 (<mantissa>) の値範囲は、数値がゼロでなければ 1 から 10 になります。指数 (<exponent>) には常に符号が付きます。対象項目が短すぎる場合、仮数が丸められます。文字項目の長さは、最低 6 バイトでなければなりません。

D

ソース項目はパック数値に変換されます。次に、パック数値が日付項目に変換されます ( 該当する表を参照してください)

F

変換されずに転送されます。

N

ソース項目はパック数値に変換されます。次に、パック数値が数値テキスト項目に変換されます ( 該当する表を参照してください)

IP

浮動小数点形式の値は整数値または固定小数点値に変換され、必要に応じて丸められます。

STRING

仮数に最大桁数が使用される点 ( 最大精度) を除き、型 C の項目と同様です。それにもかかわらず、符号または指数が異なると、文字列長が変化する場合があります。

T

ソース項目はパック数値に変換されます。次に、パック数値が時刻項目に変換されます ( 該当する表を参照してください)

X

ソース項目はパック数値に変換されます。次に、パック数値が 16 進数に変換されます ( 該当する表を参照してください)

XSTRING

先行ゼロがコピーされない点を除き、データ型 X の項目と同様です。

 

整数のソースデータ型

I は、小数点以下桁数を除き、常に型P と同様に処理されます。型 P が言及されるときは、必ず同じ内容が型 I 項目にも適用されます。

 

数値テキストのソースデータ型

ソースデータ型 N の変換表

対象

変換

C

数値項目は文字項目と同様に扱われます。先行ゼロは保持されます。

D

数値項目は文字項目に変換されます。次に、文字項目が日付項目に変換されます ( 該当する表を参照してください)

F

数値項目はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください)

N

数値項目は右寄せで転送され、左側にゼロが埋められるか、または左側で切詰められます。

IP

数値項目は数値として解釈されて対象項目に転送され、そこで右寄せされてプラス符号が採用されます。対象項目が短すぎる場合、プログラムは強制終了する可能性があります。

STRING

C の項目と同様です。文字列長は数値テキスト長と一致します。

T

数値項目は文字項目に変換されます。次に、文字項目が時刻項目に変換されます ( 該当する表を参照してください)

X

数値項目はパック数値に変換されます。次に、パック数値が 16 進数に変換されます ( 該当する表を参照してください)

XSTRING

先行ゼロがコピーされない点を除き、型 X の項目と同様です。

 

パック数値のソースデータ型

プログラム属性固定小数点演算を設定していると、型 P の項目は、小数点以下桁数にしたがって丸められるか、またはゼロで埋められます。

ソースデータ型 P の変換表

対象

変換

C

パック項目は文字項目に右寄せで転送されます。その際、必要に応じて小数点も転送されます。最終桁は符号のために予約されています。先行ゼロは空白として表示されます。対象項目が短すぎる場合、正の数値の符号は省略されます。それでも不十分な場合は、項目の左側が切詰められます。ABAP では、切詰をアスタリスク (*) で示します。文字項目に先行ゼロを表示する場合は、MOVE の代わりに UNPACK を使用します。

D

パック項目値は 0001/01/01 以降の日数を表し、YYYYMMDD 書式で日付に変換されます。

F

パック項目は、浮動小数点形式の値として受入および転送されます。

N

パック項目は必要に応じて丸められ、アンパックされてから右寄せで転送されます。符号は省略されます。必要に応じて、対象項目の左側がゼロで埋められます。

IP

パック項目は型 I に変換されます。変換で生成された 4 バイトは、対象項目に右寄せで格納されます。対象項目が短すぎる場合、オーバーフローが発生します。対象項目が長すぎる場合、対象項目の左側がゼロで埋められます。

STRING

先行ゼロが生成されない点を除き、データ型 C の項目と同様です。

T

パック項目値は午前 0 時以降の秒数を表し、HHMMSS 書式で時刻に変換されます。

X

パック項目は型 I に変換されます。変換で生成された 4 バイトは、右寄せされてビッグエンディアン書式で対象項目に格納されます。対象項目は短すぎる場合、左側から切詰められます。対象項目は 4 より長い場合、左側がゼロで埋められます。マイナス数値は、2 の補数 (= ビット補数 +1) によって表現されます。

XSTRING

先行ゼロが生成されない点を除き、型 X の項目と同様です。

 

文字列のソースデータ型

ソースデータ型 STRING の変換表

対象

変換

C

対象項目は左から右に入力されます。対象項目は長すぎる場合、後続の空白で埋められます。短すぎる場合は、内容が右から切詰められます。

D

文字列には、8 文字の日付が YYYYMMDD の書式で格納されていなければなりません。

F

文字列の内容は、リテラルでの記述どおり、型 F の有効な表現でなければなりません。

N

文字列内の数値だけがコピーされます。対象項目は右寄せされ、後続のゼロで埋められます。対象項目は短すぎる場合、左側から切詰められます。

IP

文字列には、10 進数の表現がなければなりません。つまり、オプションの符号を伴い、小数点以下桁数が最大 1 桁の数値列です。ソース項目に空白を含めることができます。対象項目が短すぎる場合、オーバーフローが発生することがあります。これにより、プログラムの強制終了が発生する可能性があります。

STRING

ソース文字列は、変換されずに対象文字列へコピーされます。

T

文字列には、6 文字の時刻が HHMMSS の書式で格納されていなければなりません。

X

文字項目には 16 進文字列が格納されていなければならないので、有効な文字は 0123456789ABCDE 、および F だけになります。この文字列は、16 進数としてパックされ、左寄せで転送されてから、右側がゼロで埋められるか、右側で切詰められます。

XSTRING

対象項目がゼロで埋められない点を除き、データ型 X の項目と同様です。

 

時刻のソースデータ型

ソースデータ型 T の変換表

対象

変換

C

ソース項目は、変換されずに左寄せで転送されます。

D

サポートされていません。構文チェックでエラーメッセージが表示されるか、または実行時エラーが発生します。

F

ソース項目はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください)

N

日付は文字項目に変換されます。次に、文字項目が数値テキストに変換されます ( 該当する表を参照してください)

IP

日付は、午前 0 時以降の秒数に変換されます。

STRING

時刻は、文字項目に変換されてから文字列に変換されます。

T

日付は変換されずに左寄せで転送され、必要に応じて、右側がゼロで埋められます。

X

日付は、16 進書式で午前 0 時以降の秒数に変換されます。

XSTRING

有効なバイトだけがコピーされる点を除き、型 X の項目と同様です。

 

16 進項目のソースデータ型

ソースデータ型 X の変換表

対象

変換

C

16 進項目の値は 16 進文字列に変換され、対象項目に左寄せで転送されてから、ゼロで埋められます。

D

ソース項目値は 0001/01/01 以降の日数を表し、YYYYMMDD 書式で日付に変換されます。

F

ソース項目はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください)

N

ソース項目はパック数値に変換されます。次に、パック数値が数値テキスト項目に変換されます ( 該当する表を参照してください)

IP

ソース項目の値は、16 進数として解釈されます。ソース項目値は 10 進数にパックされ、右寄せで対象項目に転送されます。16 進項目が 4 バイトより長い場合、最後の 4 バイトだけが変換されます。対象項目が短すぎる場合、実行時エラーが発生することがあります。

STRING

対象項目がゼロで埋められない点を除き、型 C の項目と同様です。文字列長は、16 進項目の長さの 2 倍になります。

T

ソース項目値は午前 0 時以降の秒数を表し、HHMMSS 書式で時刻に変換されます。

X

値は左寄せで転送され、必要に応じて、右側が X'00' 埋められます。

XSTRING

16 進項目は完全にコピーされます。つまり、後続のゼロは切詰められません。

 

バイト列のソースデータ型

ソースデータ型 XSTRING の変換表

対象

変換

C

バイト列の値は 16 進文字列に変換され、対象項目に左寄せで転送されてから、ゼロで埋められます。

D

バイト列値は 0001/01/01 以降の日数を表し、YYYYMMDD 書式で日付に変換されます。

F

バイト列の内容はパック数値に変換されます。次に、パック数値が浮動小数点形式の値に変換されます ( 該当する表を参照してください)

N

バイト列の内容はパック数値に変換されます。次に、パック数値が数値テキスト項目に変換されます ( 該当する表を参照してください)

IP

バイト列の内容は 16 進数として解釈されます。ソース項目値は 10 進数にパックされ、対象項目に右寄せで転送されます。バイト列が 4 バイトより長い場合、最後の 4 バイトだけが変換されます。対象項目が短すぎる場合、実行時エラーが発生することがあります。

STRING

対象項目がゼロで埋められない点を除き、型 C の項目と同様です。文字列長は、バイト列の長さの 2 倍になります。

T

バイト列値は午前 0 時以降の秒数を表し、HHMMSS 書式で時刻に変換されます。

X

バイト列は左寄せで転送され、必要に応じて、右側が X'00' 埋められます。

XSTRING

ソースバイト列は、変換されずに対象バイト列へコピーされます。

 

 

 

コンテンツフレーム終了