データオブジェクトとデータ型
7.3 データオブジェクトとデータ型
データオブジェクトとデータ型について
「データオブジェクトとは?データ型とは?」と自分で調べると、初心者には理解し難い複雑な説明が出てきます。
ここではシンプルに以下のように定義します
・データオブジェクトは「箱 」
・データ型は「箱の大きさや 、箱に入れることができる物の情報 」。
データオブジェクトとは
・データオブジェクトは「箱」。
プログラムでは様々なデータのやり取りを行いますが、
データには置き場所が必要となります。
このデータを入れる箱をデータオブジェクトと呼びます。
データ型とは
・データ型は「箱の大きさや、箱に入れることができる物の情報」。
データオブジェクトに格納できるデータの大きさ(長さ)や、数字だけや文字だけしか格納できない等の属性情報は
データ型と呼びます。
データオブジェクトの種類
単一項目:単一項目は、仕切りも段数も何もないシンプルな1つの箱のようなイメージです。表計算ソフトで例えると、セルに当たります。
構造:構造は、箱を横に複数個つなげた、または細長い箱に仕切りをつけたイメージです。表計算ソフトでは、1行の表に当たります。
テーブル:テーブルは、構造を何段にも重ねた棚のようなイメージです。表計算ソフトでは、複数行の表に当たります。
ABAP ディクショナリの各要素の関係性
ABAPディクショナリでは、データ型、ドメイン、テーブル、ビュー、検索ヘルプおよびロックオブジェクトの登録と管理を行います。
ABAPディクショナリの中で、
①ドメイン / ②データ型(データエレメント、構造、テーブルデータ型) / ③テーブル
には依存関係があります。
ドメイン
ドメインは、データ型や桁数などの組み合わせを定義するオブジェクトです。
データエレメントの参照先として利用されます。
※ドメインでは、許容値を設定することも可能です。入力できる値を直接指定するか、間隔で指定することができます。
ドメインの作成
①「ドメイン」を選択
②名称「Z_DOMAIN_1_xxxx」を入力
※xxxxの部分は 英語表記で名前を入力
例:Z_DOMAIN_1_KANDA
③「登録」ボタンをクリック
④内容を入力
内容説明:顧客コード
書式(データ型):NUMC
書式(文字数):5
出力特性(出力長):5
※その他はデフォルトのまま
⑤「チェック」ボタンをクリック
⑥「保存」ボタンをクリック
⑦「有効化」ボタンをクリック
ドメイン作成完了
データ型 データエレメント
データエレメントは、ドメインや事前定義のデータ型を参照して項目の「意味属性」を定義します。
「意味属性」というのは、ドメインで定義した「技術属性」と対をなす概念で、どのような項目であるか?を定義するものです。
データエレメントの作成
①「データ型」を選択
②名称「Z_DE_CUSTOMER_xxxx」を入力
※xxxxの部分は 英語表記で名前を入力
例:Z_DE_CUSTOMER_KANDA
③「登録」ボタンをクリック
④「データエレメント」を選択
⑤「決定」を選択
⑥ 内容を入力
内容説明:顧客コード
基本データ型
ドメイン:Z_DOMAIN_1_xxxx
※xxxxの部分は 英語表記で名前を入力
例:Z_DOMAIN_1_KANDA
⑦「項目ラベル」をクリック
⑧内容を入力
(長さ) / 項目ラベル
短:10 / 顧客コード
中:15 / 顧客コード
長:20 / 顧客コード
ヘッダ:5 / 顧客コード
⑨「チェック」をクリック
⑩「保存」をクリック
⑪「有効化」をクリック
作成完了
データ型 構造
構造は、データベースの1つの行(レコード)にあたります
図の顧客コード、顧客名、業種、所在地、電話番号のような構成要素を持ちます
この構成要素を項目と言い、構造は、いくつかの項目から作成されている。
(よって、前述のドメイン、データエレメントが “未登録” の場合は構造を作成できない)
※ABAPディクショナリで登録することで、コーディング時にTYPES命令で定義せずに利
用することが可能になります。
構造の作成
①「データ型」を選択
②名称「Z_STR_CUSTOMER_xxxx」を入力
※xxxxの部分は 英語表記で名前を入力
例:Z_DE_CUSTOMER_KANDA
③「登録」ボタンをクリック
④「構造」を選択
⑤「決定」ボタンをクリック
⑥内容を入力
内容説明:顧客情報
Component: ZCUTOMER
Componentタイプ:
Z_DE_CUSTOMER_xxxx
※xxxxの部分は 英語表記で名前を入力
例:Z_DE_CUSTOMER_KANDA
⑦「チェック」をクリック
⑧「保存」をクリック
⑨「有効化」をクリック
作成完了