SAP初心者の方が混乱しがちなABAPディクショナリの基本―ドメインについて解説します。
ドメインとは、データ型と項目長を定義する役割を担う仕組みの1つで、ABAPディクショナリから登録されます。アドオンテーブルを作成する際などに、ドメインへの理解が必須となりますので是非この機会にマスターしておきましょう。
SAPエンジニアを目指す方であれば、知らないと恥ずかしい超基本知識です。人に説明できるレベルになるまで理解を深めておきましょう。
それでは、早速解説を始めます。
SAP:ドメイン(Domain)とは?
SAPのドメインとは、データ型と項目長を定義するオブジェクトです。
ドメイン | BURKS |
---|---|
内容 | 会社コード |
データ型 | CHAR(文字型) |
項目長 | 4 |
例えば、上記 "BURKS" というドメインは「4桁の文字型」という定義がなされています。
このドメインは基本的にはデータエレメントの参照先として利用されるのがメインの使われ方です。
データエレメントとは、簡単に説明するとテーブルの項目の意味属性を決めている情報のことで、テーブル項目のラベルの名前(SE16などで表示されます) などを決める役割を担います。
データエレメントは意味属性とも呼ばれます。テーブルの項目の業務的な意味(利用目的)を定義するのがデータエレメントの役割で、例えば「税込み額」とか「ユーザ名称」などの業務的な意味を与えるのが主な役割です。
ドメインはデータエレメントの技術属性を定義します。つまり、データ型と項目長、そして取りうる値の範囲です。
データエレメントはドメインを参照しデータ型と項目長を決定します。
このドメインを1つ定義しておけば、複数のデータエレメントへの紐づけが可能なので、適切に設定を行うことで構造化されたデータ管理が可能となります。
データエレメント
⇒意味属性(例/支払日・登録日・請求日
⇒ドメインを参照し技術属性を獲得する
ドメイン
⇒技術属性(例/DATS型・8桁
データエレメントの基本から学びたいという方はこちらの記事をご覧ください。
ドメインの設定方法
それでは、ドメインの設定方法を見ていきましょう。実際の登録画面を見ることでよりドメインに対する理解が深まるはずです。
1:ABAPディクショナリ(SE11)
SAPメニュー > ツール > ABAPワークベンチ > 開発 > ABAPディクショナリ(SE11)
トランザクションコード:SE11を実行すると「ABAPディクショナリ」の画面が開きます。
「ドメイン」の項目に、登録したいドメイン名を入力して登録ボタンを押します。
ドメイン登録画面が開きます。
データ型・構造定義など、SAPで利用されるデータ定義の全てを管理する機能のこと。
詳しくはこちらの記事をご覧下さい。
2:ドメイン定義
実際にドメインの詳細定義を行っていきます。
ドメイン定義:内容説明
ここはドメインの説明を適切に設定しておけばOK。ここで設定した内容がエンドユーザには触れることはほとんどないため、基本的には開発者向けに分かりやすい内容で設定しておきます。
ドメイン定義:データ型
事前定義されたABAPのディクショナリデータ型を指定します。
ディクショナリデータ型とは、ABAPディクショナリの中でのみ利用できるデータ型です。
ディクショナリデータ型 | 意味 |
---|---|
ACCP | 会計期間 YYYYMM |
CHAR | 文字列 |
CLNT | クライアント |
CUKY | 通貨コード(CURR項目による参照) |
CURR | 通貨項目 |
DATS | 日付 |
DEC | 計算/金額項目 |
FLTP | 浮動小数点数 |
INT1 | 1 バイト整数 |
INT2 | 2 バイト整数 |
INT4 | 4 バイト整数 |
LANG | 言語 |
LCHR | 文字 (長) |
LRAW | バイト順序 (長) |
NUMC | 数値テキスト |
PREC | 精度 |
QUAN | 数量 |
RAW | バイト順序 |
RAWSTRING | 可変長のバイト順序 |
STRING | 可変長の文字列 |
TIMS | 時刻 HHMMSS |
UNIT | 単位 |
ドメイン定義:文字数
文字数(項目長)を決定します。
格納できるレコードの長さは、ここで指定した長さ以下に限定されます。大は小を兼ねる的な考えで長く設定していてもシステムとして動かないことはありませんが、思わぬエラーデータが入ってくる確率が高くなります。
3.値範囲定義
値範囲タブを選択します。
ここでは、そのドメインに対する入力可能な値(ドメイン値)を定義します。
上記のように指定値を設定しておけば、その値以外のレコードを保持できなくなります。
これは、ドメインの優れている点の1つで、ABAPによるコーディングをせずにエンドユーザの入力可能値を制限する1つの方法としても採用することが可能です。むしろアドオンでドメインを定義する場合は、入力可能値の制限を目的としていることがほとんどです。
プロパティタブには特に何も登録しなくてOK。システム的な情報(作成者名や作成日など)が自動的に登録されます。
最後に保存・有効化を忘れずに。これでドメインの定義が完了です。
ABAPを1から勉強したい方は
初めてABAPを勉強するのは結構難しいですよね。
でもその悩みを抱えているのは一人じゃありません。全てのABAP使いが同じ道を進んできました。
ABAPをはじめとするプログラミングスキルを武器に、時間と場所に捉われない自由な生き方を目指してみませんか?
読者料典 【完全無料】ABAP:学習カリキュラム ←こちらから!