【ABAP】事前定義のABAPデータ型

概要

データ型とはどの様な値を格納するのか箱の形を示します。
箱の形を示すのであって値の格納までは行いません。
値を格納する場合はDATA命令を用いります。DATA命令については以下記事を確認してください。

事前定義のABAPデータ型は名前の通り標準で予め用意されたデータ型です。
文字や数字、日付と種類があるため表にまとめて説明します。

種類

種類は以下の通り、文字データ型C,N,D,T、数字データ型I,F,P,X、文字列STRING,XSTRINGとなっています。
文字データ型と数字データ型は固定長となっており、固定の長さを持ちます。
文字列については可変長となっており、長さが変わるため固定の長さを持ちません。

固定長の型の中でも完全ABAPデータ型と不完全データ型があります。
簡単に説明すると予めデータの長さが決まっている決まっていないという違いがあります。
こちらについては別途説明いたします。

データ型意味有効項目長初期値
C文字1~65535空白
N数値文字1~655350埋め
D日付800000000
T時刻6000000
I整数4byte0
F浮動小数点数8byte0
Pパック数値1~16byte0
X16進数項目1~65535byteX’00
STRING文字列可変長(文字列)空白
XSTRINGX文字列可変長(byte文字列)空白
事前定義のABAPデータ型

完全ABAPデータ型

データ型の長さが事前に決まっているため、以下の型を使用する場合は長さを指定する必要はありません。(指定する事はできます。)

データ型意味
D日付
T時刻
I整数
F浮動小数点数
完全ABAPデータ型

不完全ABAPデータ型

データ型の長さが決まっていないため、長さを指定する必要があります。
指定しない場合は最小の長さとなります。

データ型意味
C文字
N数値文字
Pパック数値
X16進数項目
不完全ABAPデータ型

コーディング

以下のサンプルコーディングでは紹介した型を出力結果として確認できるようにしています。
ただし、XSTRING型の初期値に関してはPARAMETERSでX型の値を渡しているため空白の確認ができない内容となっています。

選択画面と出力結果は以下のとなります。

選択画面と出力結果
DATA:
  LCGATA(10) TYPE C,              "C型
  LNGATA(10) TYPE N,              "N型
  LDGATA     TYPE D,              "D型
  LTGATA     TYPE T,              "T型
  LIGATA     TYPE I,              "I型
  LFGATA     TYPE F,              "F型
  LPGATA(5)  TYPE P DECIMALS 3,   "P型
  LXGATA(10) TYPE X,              "X型
  LSTRING    TYPE STRING,         "STRING型
  LXSTRING   TYPE XSTRING.        "XSTRING型

PARAMETERS:
  PCHAR(20)  TYPE C,             "文字
  PINTEG     TYPE I,             "整数
  PFLOAT     TYPE P DECIMALS 3,  "小数
  PDATE      TYPE D,             "日付
  PTIME      TYPE T,             "時刻
  PHEXAD(10) TYPE X.             "Byte

*値の代入
LCGATA   = PCHAR.     "C型
LNGATA   = PINTEG.    "N型
LDGATA   = PDATE.     "D型
LTGATA   = PTIME.     "T型
LIGATA   = PINTEG.    "I型
LFGATA   = PFLOAT.    "F型
LPGATA   = PFLOAT.    "P型
LXGATA   = PHEXAD.    "X型
LSTRING  = PCHAR.     "STRING型
LXSTRING = PHEXAD.    "XSTRING型

*出力結果
WRITE:
    'LCGATA(C型)        :', LCGATA,
  / 'LNGATA(N型)        :', LNGATA,
  / 'LDGATA(D型)        :', LDGATA,
  / 'LTGATA(T型)        :', LTGATA,
  / 'LIGATA(I型)        :', LIGATA,
  / 'LFGATA(F型)        :', LFGATA,
  / 'LPGATA(P型)        :', LPGATA,
  / 'LXGATA(X型)        :', LXGATA,
  / 'LSTRING(STRING型)  :', LSTRING,
  / 'LXSTRING(XSTRING型):', LXSTRING.