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