【SAP】SE11:ABAPディクショナリを3分で解説

ABAP

ABAPディクショナリ(トランザクションコード:SE11)は、アドオン/SAP標準を問わずテーブルやデータ型といったディクショナリオブジェクトを一元的に管理する機能です。

本ページでは、ABAPディクショナリの機能の概要と、ABAPディクショナリで登録できるオブジェクトを1つずつ解説。

初心者でもABAPディクショナリが何なのかを何となくイメージできるよう分かりやすく説明します。

このページで学べる内容
  • ABAPディクショナリとは?
  • ディクショナリオブジェクトの概要
    • テーブル / ビュー
    • ドメイン / データエレメント / 構造 / テーブルデータ型
    • 検索ヘルプ/ ロックオブジェクト

ABAPディクショナリは導入初期から運用・保守フェーズにいたるまで使い続けられる基本機能ですので、ABAPエンジニアを目指す方であれば必見の内容です。是非最後までご覧ください。

スポンサーリンク

SE11:ABAPディクショナリ概要

SE11:ABAPディクショナリ第1画面
SE11:ABAPディクショナリ第1画面

ABAPディクショナリは、SAPシステムで利用されているディクショナリオブジェクトの定義をする機能です。

ディクショナリオブジェクトとは具体的に以下の9個を指します。

ディクショナリオブジェクト
  • テーブル
  • ビュー
  • テーブルデータ型
  • 構造
  • データエレメント
  • データ型グループ
  • ドメイン
  • 検索ヘルプ
  • ロックオブジェクト

大雑把に言うと、ABAPディクショナリはSAPにおけるデータの保持の仕方(どのようなデータをどのようなデータベースで持つか?)に関する仕組みの総称。このABAPディクショナリに登録されたデータ定義は、汎用モジュールやアドオンプログラムから呼び出して利用可能になります。

たまにデータの中身(レコード)の管理を行う「SE16/SE16N」と誤解してしまう方がいますので、注意しておきましょう。

SE16とSE11の違い
  • SE11:オブジェクトの定義(どのようなテーブルか?)
  • SE16:オブジェクトの参照(テーブルの中身は?)

ABAPディクショナリで登録されたデータ定義はクライアント非依存のため変更したタイミングで全クライアントへ同時に反映されます。(クライアント依存/非依存についてはこちら

SAP:ディクショナリオブジェクトの分類

ここからは、9つのディクショナリオブジェクトを3つに分類し概要を把握したうえで詳細な解説に移ります。

ABAPディクショナリと一言に行っても、登録できるオブジェクトタイプは大きく3種類に分類することができます。

ABAPディクショナリと一言に行っても、登録できるオブジェクトタイプは大きく3種類に分類することができます。データベースオブジェクトと、データ型、そしてそれ以外です。このように分類・整理することでABAPディクショナリの概要を理解する一助となります。

データベースオブジェクトと、データ型、そしてそれ以外です。

分類については何通りかありますがSAP初心者にとって一番わかりやすい分類で解説していきます。

データベースオブジェクト

データベースオブジェクトに分類されるのは、テーブルとビューです。

データベースオブジェクトに分類されるのは、テーブルとビューです。

ABAPディクショナリでテーブル定義を行うことで、データベースインターフェースを通してデータベース上へのデータ登録を行うことが可能になります。

データベースインターフェースとは

データベースインターフェースとは、一言で説明するとアプリケーションサーバとデータベースサーバの「翻訳機」です。

どんなデータベースサーバを使っていたとしても、このデータベースインターフェースを通せば、特段データベースサーバの分類を意識せずに目的とするデータを取ってきたり、編集することが可能。

データベースインターフェースとは、一言で説明するとアプリケーションサーバとデータベースサーバの「翻訳機」です。

データベースインターフェースの仕組みについてもっと詳しく知りたい方は以下のページをご覧ください。

データベースオブジェクト:テーブル

テーブルについては、テーブル/構造/変数について解説した「内部テーブル/構造/変数―ABAPの3つの基本」ページをご覧ください。

ABAPディクショナリの機能からは、アドオンテーブルの新規定義を行います。実際の詳しい手順については、下記のページで詳しく解説しますので、合わせて知っておきたい方は以下ののページをご覧ください。

ビュー

ビューの定義もテーブルと同様、DBオブジェクトに分類されます。

ビュー(VIEW)とは

ビュー(View)とは1つ以上のデータベースから任意のデータを選択して、 見たいデータだけ、欲しいデータだけを表示する仕組みのこと。

その種類に応じて、射影ビュー・更新ビュー・データベースビューなどに分類されます。詳しくはこちらの記事をご覧ください。

テーブルとビューについては、これでOK。続いてデータ型について詳解します。

データ型

データ型は、DBオブジェクトのもとになる情報です。もう少しわかりやすい説明をすると「テーブルを構成する部品」がデータ型です。

ABAPディクショナリで登録するオブジェクトタイプの二つ目はデータ型です。データ型は、DBオブジェクトのもとになる情報です。もう少しわかりやすい説明をすると「テーブルを構成する部品」がデータ型です。

すなわち、各テーブル構成はデータ型に分類されるディクショナリオブジェクトから成り立ちます(例外あり)。テーブル登録の前提となるのがデータ型に分類される「テーブルデータ型」「構造」「データエレメント」「データ型グループ」「ドメイン」の5つです。

ドメイン

blank
ドメイン―定義タブ

ドメインとは、データ型(文字型・数値型・日付型等)や桁長(何文字か?)の属性情報を定義する最も基本となるオブジェクトです。後述するデータエレメントの参照先として利用するのが主な利用方法です。

ドメインでは、許容値を設定することも可能です。入力できる値を直接指定するか、間隔で指定することができます。

blank
ドメイン―値範囲タブ

ドメインの詳しい解説は以下のページからご確認ください。

データエレメント

データエレメントは、ドメインや事前定義のデータ型を参照して項目の「意味属性」を定義します。「意味属性」というのは、ドメインで定義した「技術属性」と対をなす概念で、どのような項目であるか?を定義するものです。

ドメインが、「データ型」「桁長」などシステム的な制約情報を持つのに対して、データエレメントは「会社コード」や「メッセージ変数」など業務に近い意味を保持します。

データエレメントを事前に定義しておけば、TYPES命令で定義する際に参照することができます。


TYPES Z_STATUS TYPE CHAR2


データエレメント「CHAR2」を参照し、新たなデータ型を定義する例です。

また、データエレメントは「テーブル/ビュー」の各項目に対するテキストの定義にもなります。実際に業務ユーザの目に触れる設定のため、わかりやすい命名が重要となるオブジェクトでもあります。

データエレメントの作り方は、以下の記事で詳しく解説しております。

構造

構造ついては、テーブル/構造/変数について解説した「内部テーブル/構造/変数―ABAPの3つの基本」ページをご覧ください。

ABAPディクショナリで登録することで、コーディング時にTYPES命令で定義せずに利用することが可能になります。

テーブルデータ型

テーブルデータはこちらのページで概念を理解すると良いです。

その他

その他に分類されるものは、検索ヘルプとロックオブジェクトです。こちらの概念は、これまで解説してきたデータベースオブジェクト・データ型の2つと性質が異なります。

検索ヘルプ

検索ヘルプは、データの検索時に利用されるオブジェクトです。項目に値を入力する際に「F4」ボタンを押下すると表示されるものです。ちなみに、ABAPディクショナリの画面でもF4ボタンを押すことができますね。

blank

検索ヘルプの定義は「選択メソッド」の定義、「ダイアログtype」などから成り立ちます。

さらに詳しい検索ヘルプの仕組みや、検索ヘルプの作り方は以下の記事で解説しております。

ロックオブジェクト

データベースをロックする際の制御を定義することができます。ロックオブジェクトには、ロックするテーブルとロック方法が定義されており、実際にはABAPではそのロックオブジェクトを呼び出す形で利用します。

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

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

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

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

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

合わせてこちらの記事もおすすめです。

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