この広告は30日以上更新がないブログに表示されております。
新規記事の投稿を行うことで、非表示にすることが可能です。
広告
posted by fanblog
2020年02月06日
【ABAP】TYPES命令—データ型定義
TYPES命令は、データ型(基本データ型/構造化型データ型)を定義する命令です。
初心者にとっては、DATA命令との区別が難しく、とっつきにくい印象を受けてしまうかもしれませんが、 TYPES命令をマスターせずにABAPをマスターすることは不可能です 。
このページで学べる内容
・TYPES命令とは?
・TYPES命令の使い方・書き方
・基本データ型と構造化型データ型とは?
・TYPEオプション/LIKEオプションの使い分け
・TYPES命令とは?
・TYPES命令の使い方・書き方
・基本データ型と構造化型データ型とは?
・TYPEオプション/LIKEオプションの使い分け
ABAPを学習中の人であれば、 絶対に知っておきたい内容ばかり ですので是非最後までご覧ください。
最初に構文ルール(TYPES命令の基本形)を解説し、その後深堀していく形でTYPES命令を学習していきます 。
目次
1 構文ルール:TYPES命令
2 TYPES命令とは?
2.1 「基本データ型」とは?
2.2 「構造化型データ型」とは?
2.3 TYPES命令とDATA命令の違い?
3 LIKEオプション
1 構文ルール:TYPES命令
2 TYPES命令とは?
2.1 「基本データ型」とは?
2.2 「構造化型データ型」とは?
2.3 TYPES命令とDATA命令の違い?
3 LIKEオプション
1 構文ルール:TYPES命令
?@基本データ型の場合
TYPES (データ型名) TYPE (データ型) .
TYPES (データ型名) TYPE (データ型) .
?A構造化型データ型の場合
TYPES:
BEGIN OF (構造化型データ型名) ,
(項目名) TYPE (データ型) ,
(項目名) TYPE (データ型) ,
・・・・・・・・・・・・・・
END OF (構造化型データ型名) .
TYPES:
BEGIN OF (構造化型データ型名) ,
(項目名) TYPE (データ型) ,
(項目名) TYPE (データ型) ,
・・・・・・・・・・・・・・
END OF (構造化型データ型名) .
2 TYPES命令とは?
TYPES命令は「基本データ型」と「構造化型データ型」を定義する命令です。
まず、最初に「基本データ型」について解説します。
2.1 「基本データ型」とは?
基本データ型を簡単に説明すると「変数」の元となるデータ型です。
DATA命令を用いて 変数を定義する際に、TYPEオプションで指定するデータ型は、「基本データ型」に分類されます。
SAP標準で事前に定義されているデータ型(ABAPデータ型)には、限りがあります。
例えば、「C(テキスト項目)」や「D(日付)」といった基本的なものしか用意されていません。
CやDといったデータ型だけでコーディングしていくことも不可能ではありませんが、例えばデータ型自体に意味を持たせたい場面などが出てきます。
こんな時に、TYPES命令を用いるのです。
D(日付) → Birth_D(生年月日)
ただの「日付」ではなく、「生年月日」を格納する「データ型」を作成する場面が出てきます。
こんな時に
TYPES Birth_D TYPE D.
とコーディングすることで、新しいデータ型を生み出すわけです。
2.2 「構造化型データ型」とは?
では、「構造化型データ型」とは何でしょう。
答えは、その名前から推測できる通り「構造」を定義する際の基となるデータ型です。
構造は1行に並んだ変数の集合です。
構造
変数 変数 変数 変数 ・・・・・
この構造のデータ型を定義する際にも用いることができるのがTYPES命令なのです。
TYPES:
BEGIN OF TYPE_FT001 ,
RBUKRS TYPE ACDOCA-RBUKRS ,
GJAHR TYPE ACDOCA-GJAHR ,
BELNR TYPE ACDOCA-BELNR ,
DOCLN TYPE ACDOCA-DOCLN ,
BLART TYPE ACDOCA-BLART ,
END OF TYPE_FT001 .
BEGIN OF TYPE_FT001 ,
RBUKRS TYPE ACDOCA-RBUKRS ,
GJAHR TYPE ACDOCA-GJAHR ,
BELNR TYPE ACDOCA-BELNR ,
DOCLN TYPE ACDOCA-DOCLN ,
BLART TYPE ACDOCA-BLART ,
END OF TYPE_FT001 .
このようにコーディングすることで、構造化型データ型を定義することができるのです。
もし、上記サンプルコードで定義した「TYPE_FI001」型の構造を宣言したい場合は、
DATA
HENSU1 TYPE
TYPE_FT001 .
というようにコーディングしてあげればOKです。
2.3 TYPES命令とDATA命令の違い?
ここまでの内容を理解できていれば、TYPES命令とDATA命令の違いは明確です。
・DATA命令 ⇒ 変数/構造/内部テーブルを宣言
・TYPES命令 ⇒ 変数/構造/内部テーブルの基となる「型」を定義
となります。
したがって、基本的な流れは、
?@「TYPES命令で型を定義」を行ったあと、
?A「?@で定義したデータ型に基づいてDATA命令で変数/構造を宣言」するという流れになります。
ABAPを学習して間もない方は、この点で混乱してしまう方が多いのですが、一つ一つ丁寧に考えれば決して難しくはありません。
3 LIKEオプション
TYPES命令では、LIKEオプションが利用できます。
TYPES A TYPE D. → TYPES B LIKE A.
TYPES命令のオプションTYPEとLIKEの使い分けについても、この機会に学んでみましょう。
タグ: ABAP