【SAP】ドメイン(Domain)とは?初心者向けに1から解説

ABAP

SAP初心者の方が混乱しがちなABAPディクショナリの基本―ドメインについて解説します。

ドメインとは、データ型と項目長を定義する役割を担う仕組みの1つで、ABAPディクショナリから登録されます。アドオンテーブルを作成する際などに、ドメインへの理解が必須となりますので是非この機会にマスターしておきましょう。

このページで学べる内容
  • ドメインとは?
  • データエレメントとの関係
  • ドメインのメリット
  • ドメインの登録方法

SAPエンジニアを目指す方であれば、知らないと恥ずかしい超基本知識です。人に説明できるレベルになるまで理解を深めておきましょう。

それでは、早速解説を始めます。

スポンサーリンク

SAP:ドメイン(Domain)とは?

SAPのドメインとは、データ型項目長を定義するオブジェクトです。

ドメインBURKS
内容会社コード
データ型CHAR(文字型)
項目長4
ドメインの例

例えば、上記 "BURKS" というドメインは「4桁の文字型」という定義がなされています。

このドメインは基本的にはデータエレメントの参照先として利用されるのがメインの使われ方です。

データエレメントとは?

データエレメントとは、簡単に説明するとテーブルの項目の意味属性を決めている情報のことで、テーブル項目のラベルの名前(SE16などで表示されます) などを決める役割を担います。

データエレメントとは、簡単に説明するとテーブルの項目の意味属性を決めている情報のことで、テーブル項目のラベルの名前(SE16などで表示されます) などを決める役割を担います。
上記テーブルは項目 "MANDT" に対して、データエレメントは "MANDT" が指定されています。

データエレメントは意味属性とも呼ばれます。テーブルの項目の業務的な意味(利用目的)を定義するのがデータエレメントの役割で、例えば「税込み額」とか「ユーザ名称」などの業務的な意味を与えるのが主な役割です。

ドメインはデータエレメントの技術属性を定義します。つまり、データ型と項目長、そして取りうる値の範囲です。

データエレメントはドメインを参照しデータ型と項目長を決定します。

blank

このドメインを1つ定義しておけば、複数のデータエレメントへの紐づけが可能なので、適切に設定を行うことで構造化されたデータ管理が可能となります。

データエレメントとドメイン

データエレメント
⇒意味属性(例/支払日・登録日・請求日
⇒ドメインを参照し技術属性を獲得する

ドメイン
技術属性(例/DATS型・8桁

ドメインの設定方法

それでは、ドメインの設定方法を見ていきましょう。実際の登録画面を見ることでよりドメインに対する理解が深まるはずです。

1:ABAPディクショナリ(SE11)

SAPメニュー > ツール > ABAPワークベンチ > 開発 > ABAPディクショナリ(SE11)

トランザクションコード:SE11を実行すると「ABAPディクショナリ」の画面が開きます。

「ドメイン」の項目に、登録したいドメイン名を入力して登録ボタンを押します。

ドメイン登録画面が開きます。

2:ドメイン定義

実際にドメインの詳細定義を行っていきます。

ドメイン定義:内容説明

ここはドメインの説明を適切に設定しておけばOK。ここで設定した内容がエンドユーザには触れることはほとんどないため、基本的には開発者向けに分かりやすい内容で設定しておきます。

ドメイン定義:データ型

事前定義されたABAPのディクショナリデータ型を指定します。

ディクショナリデータ型とは、ABAPディクショナリの中でのみ利用できるデータ型です。

ディクショナリデータ型意味
ACCP会計期間 YYYYMM
CHAR文字列
CLNTクライアント
CUKY通貨コード(CURR項目による参照)
CURR通貨項目
DATS日付
DEC計算/金額項目
FLTP浮動小数点数
INT11 バイト整数
INT22 バイト整数
INT44 バイト整数
LANG言語
LCHR文字 (長)
LRAWバイト順序 (長)
NUMC数値テキスト
PREC精度
QUAN数量
RAWバイト順序
RAWSTRING可変長のバイト順序
STRING可変長の文字列
TIMS時刻 HHMMSS
UNIT単位

ドメイン定義:文字数

文字数(項目長)を決定します。

格納できるレコードの長さは、ここで指定した長さ以下に限定されます。大は小を兼ねる的な考えで長く設定していてもシステムとして動かないことはありませんが、思わぬエラーデータが入ってくる確率が高くなります。

3.値範囲定義

値範囲タブを選択します。

ここでは、そのドメインに対する入力可能な値(ドメイン値)を定義します。

上記のように指定値を設定しておけば、その値以外のレコードを保持できなくなります。

これは、ドメインの優れている点の1つで、ABAPによるコーディングをせずにエンドユーザの入力可能値を制限する1つの方法としても採用することが可能です。むしろアドオンでドメインを定義する場合は、入力可能値の制限を目的としていることがほとんどです。

プロパティタブについて

プロパティタブには特に何も登録しなくてOK。システム的な情報(作成者名や作成日など)が自動的に登録されます。

最後に保存・有効化を忘れずに。これでドメインの定義が完了です。

ABAPを1から勉強したい方は

ABAPを1から学習したい初心者の方向けに、できるだけ網羅的にABAPが理解できるよう以下ページに知識体系を整理しています。

特に初心者のうちは、どこから学べばよいか?どう勉強すれば良いか?すらわからない状態になりがち。

ある程度の知識を持ったうえで、はじめて実践的な理解へとつながります。

是非、一度ご覧になってみてください。

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