!--a11y-->

これらのデータ型は R/3 システムカーネルに事前定義されて おり、すべての ABAP プログラムで表示可能です。事前定義されたデータ型を使用して、ローカルデータ型とオブジェクトを定義したり、インタフェースパラメータとフィールドシンボルのタイプを指定したりすることができます。
これらの事前定義された基本データ型は、実行時に項目長が常に固定されている各項目のデータ型を指定する際に使われます。以下の表に、さまざまな固定長データ型を示します。すべての項目長はバイトで指定されます。
|
データ型
|
初期 項目長 |
有効 項目長 |
初期値
|
意味
|
|
数値タイプ |
||||
|
I |
4 |
4 |
0 |
整数 ( 自然数) |
|
F |
8 |
8 |
0 |
浮動小数点数形式の値 |
|
P |
8 |
1 - 16 |
0 |
パック数値 |
|
文字タイプ |
||||
|
C |
1 |
1 - 65535 |
' … '
|
テキスト項目 ( 英数字) |
|
D |
8 |
8 |
'00000000' |
日付項目 ( 書式: YYYYMMDD) |
|
N |
1 |
1 - 65535 |
'0 … 0'
|
数値テキスト項目 ( 数字) |
|
T |
6 |
6 |
'000000' |
時刻項目 ( 書式: HHMMSS) |
|
16 進タイプ |
||||
|
X |
1 |
1 - 65535 |
X'0 … 0' |
16 進項目 |
データ型 D 、F 、I および T は、データオブジェクトの技術属性を完全に記述します。データ型 C 、N 、P および X はジェネリックです。ジェネリックタイプを使用してプログラムまたはデータオブジェクト内のローカルデータ型を定義する場合は、項目長を指定し、データ型 P の場合は小数点以下桁数を指定する必要があります。ジェネリックタイプを使用してフィールドシンボルのインタフェースパラメータタイプを指定する際には、技術属性を指定する必要がありません。
初期 ( ジェネリックタイプの場合は初期項目長) とは、TYPES 命令と DATA 命令の短縮形で暗黙に使われる値です。
固定長の事前定義タイプは以下のように分類されます。
ABAP では 5 つの非数値タイプ ( テキスト項目 (C) 、数値テキスト項目 (N) 、日付項目 (D) 、時刻項目 (T) 、16 進項目 (X)) だけでなく、3 つの数値タイプを使用して数字の表示と計算を行います。データ型 N は数値タイプではありません。データ型 N オブジェクトには数字 (0...9) のみが含まれますが、内部では数字として表されません。データ型 N 項目の典型は、勘定コードと郵便番号です。
キ 整数 - タイプ I
タイプ I 数字の値範囲は -2**31 〜 2**31-1 であり、整数のみが含まれます。算術演算の結果が整数以外 ( たとえば、分数) であれば、その結果は切捨てではなく、丸められます。
タイプ I はカウンタ、明細数、索引、時間枠などに使用できます。
キ パック数字 - タイプ P
タイプ P のデータは小数点以下に桁数を設定することができます。小数点以下桁数はジェネリックであり、プログラムに設定されます。タイプ P のデータの値範囲は、そのサイズと小数点以下桁数によって異なります。有効サイズは 1 〜 16 バイトの任意の値です。2 つの 10 進数は 1 バイトにパックされ、最後のバイトには 1 つの数字と符号が挿入されます。小数点以下には最大 14 桁を設定することができます。初期値はゼロです。タイプ P のデータを使用する場合は、プログラム属性固定小数点算術を設定してください。これを設定しない場合、タイプ P の数字は整数として扱われます。
タイプ P のデータは距離、重量、金額などの値に使用できます。
キ 浮動小数点数形式の値 - タイプ F
タイプ F の数字の正数と負数に関する値範囲は 1x10**-307 〜 1x10*308 であり、ゼロが含まれます。精度範囲は約 15 桁数であり、ハードウェアプラットフォームの浮動小数点演算によって異なります。タイプ F のデータは内部で 2 進数に変換されるため、丸めエラーが発生する可能性があります。ABAP プロセッサはこの影響を最小限に抑えようとしますが、高い精度を必要とする場合はタイプ F のデータを使用しないようにしてください。代わりに、タイプ P のデータを使用してください。
タイプ F の項目は、値範囲が非常に大きく、丸めエラーが重要視されない場合に使用します。
計算に I および F の項目を使用すると、P 項目を使用した場合よりも高速に処理されます。I および F の項目を使用した算術演算は実際のマシンコード演算とほとんど同じですが、P 項目を使用するとソフトウェアのサポートの必要性が高くなります。しかし、精度または値範囲の要件を満たすにはタイプ P のデータを使用する必要があります。
5 つの非数値タイプのうち、4 つのタイプ C 、D 、N および T は文字タイプです。これらのタイプの項目を文字項目といいます。これらの項目の各 ポジションは、1 文字のコードを表すのに十分なスペースを使用します。現在、ABAP では ASCII や EBCDI などの 1 バイトコードのみを使用しています。ただし、ユニコードとの適合については準備中です。ユニコードでは、各文字は 2 バイトまたは 4 バイトを使用します。
その他の非数値タイプ - X は、メモリ内にある各バイトを常に解釈します。1 バイトは 2 桁 の 16 進数表示によって表されます。このタイプの項目を 16 進項目 といいます。16 進項目では、シングルビットを処理することができます。
これらの事前定義された基本データ型は、項目長が実行時まで固定されない各項目のデータ型を指定する際に使われます。事前定義された可変長の ABAP データ型には 2 つあり、これらは一般に文字列として知られています。
キ 文字列を表す STRING
文字列とは、可変長の一連の文字です。文字列には、英数字をいくつでも含めることができます。文字列の長さは、文字数に、1 文字の内部表示に必要な長さを乗じたものです。
キ バイト文字列を表す XSTRING
バイト文字列は、可変長の 16 進タイプです。このバイト数に制限はありません。バイト文字列の長さはバイト数に等しくなります。
文字列をデータオブジェクトとして作成した場合、文字列ヘッダは静的に作成されます。この文字列には管理情報が含まれます。実際のデータオブジェクトは、実行時に演算命令によって動的に作成および修正されます。
文字列の初期値は長さがゼロの空文字列です。文字列が含まれている構造は、ディープ構造として処理されます。つまり、文字列を含む構造に対する変換ルールはありません。
ABAP には、プログラムにローカルデータ型またはデータオブジェクトを定義する際に使用できる事前定義された複合データ型はありません。すべての複合データ型は基本 ABAP データ型にもとづいており、ABAP プログラムまたは ABAP ディクショナリに設定されます。
