【ABAP】TYPES命令―3分で学ぶデータ型定義

ABAP

TYPES命令は、データ型(基本データ型/構造化型データ型)を定義する命令です。初心者にとっては、DATA命令との区別が難しく、とっつきにくい印象を受けてしまうかもしれませんが、TYPES命令をマスターせずにABAPをマスターすることは不可能です。

このページで学べる内容

  • TYPES命令とは?
  • TYPES命令の使い方・書き方
  • 基本データ型と構造化型データ型とは?
  • TYPEオプション/LIKEオプションの使い分け(別記事へのリンクあり)

ABAPを学習中の人であれば、絶対に知っておきたい内容ばかりですので是非最後までご覧ください。

最初に構文ルール(TYPES命令の基本形)を解説し、その後深堀していく形でTYPES命令を学習していきます。

構文ルール:TYPES命令

①基本データ型の場合


TYPES (データ型名) TYPE (データ型) .


②構造化型データ型の場合


TYPES:
 BEGIN OF (構造化型データ型名),
    
(項目名) TYPE (データ型),
    
(項目名) TYPE (データ型),
    ・・・・・・・・・・・・・・
 END OF (構造化型データ型名).


※「構造化型データ型」については、チェーン命令の形式で記載しています。チェーン命令など、ABAPの基本構文ルールについては、以下の記事を参照ください。

TYPES命令とは?

TYPES命令は「基本データ型」と「構造化型データ型」を定義する命令です。まず、最初に「基本データ型」について解説します。

「基本データ型」とは?

基本データ型を簡単に説明すると「変数」の元となるデータ型です。

DATA命令を用いて変数を定義する際に、TYPEオプションで指定するデータ型は、「基本データ型」に分類されます。

SAP標準で事前に定義されているデータ型(ABAPデータ型)には、限りがあります。例えば、「C(テキスト項目)」や「D(日付)」といった基本的なものしか用意されていません。

CやDといったデータ型だけでコーディングしていくことも不可能ではありませんが、例えばデータ型自体に意味を持たせたい場面などが出てきます。こんな時に、TYPES命令を用いるのです。

ただの「日付」ではなく、「生年月日」を格納する「データ型」を作成する場面が出てきます。

こんな時に

TYPES Birth_D TYPE D.

とコーディングすることで、新しいデータ型を生み出すわけです。

※ABAPデータ型について知りたい方はこちらをご覧ください。

「構造化型データ型」とは?

では、「構造化型データ型」とは何でしょう。答えは、その名前から推測できる通り「構造」を定義する際の基となるデータ型です。

※変数と構造の違いについて疑問に思った方は、こちらのページをご覧ください。

上記ページでも解説した通り、構造は1行に並んだ変数の集合です。

この構造のデータ型を定義する際にも用いることができるのがTYPES命令なのです。

TYPES 
 BEGIN OF TYPE_FI001,
    RBUKRS               TYPE ACDOCA-RBUKRS,          "会社コード
    GJAHR                TYPE ACDOCA-GJAHR,           "会計年度
    BELNR                TYPE ACDOCA-BELNR,           "会計伝票番号
    DOCLN                TYPE ACDOCA-DOCLN,           "会計伝票明細
    BLART                TYPE ACDOCA-BLART,           "伝票タイプ
 END OF TYPE_FI001.

このようにコーディングすることで、構造化型データ型を定義することができるのです。

もし、上記サンプルコードで定義した「TYPE_FI001」型の構造を宣言したい場合は、

DATA HENSU1 TYPE TYPE_FI001.

というようにコーディングしてあげればOKです。

TYPES命令とDATA命令の違い?

ここまでの内容を理解できていれば、TYPES命令とDATA命令の違いは明確です。

  • DATA命令  ⇒ 変数/構造/内部テーブルを宣言
  • TYPES命令 ⇒ 変数/構造/内部テーブルの基となる「型」を定義

となります。

したがって、基本的な流れは、①「TYPES命令で型を定義」を行ったあと、②「①で定義したデータ型に基づいてDATA命令で変数/構造を宣言」するという流れになります。

ABAPを学習して間もない方は、この点で混乱してしまう方が多いのですが、一つ一つ丁寧に考えれば決して難しくはありません。まだ理解しきれていない、という方は、再度ページ上部から読んでみてください。

LIKEオプション

TYPES命令では、LIKEオプションが利用できます。

TYPES A TYPE D.

TYPES B LIKE A.

TYPES命令のオプションTYPEとLIKEの使い分けについても、この機会に学んでみましょう。続きは、以下のページにて解説しています。

タイトルとURLをコピーしました