|
前回はABAPワークベンチと呼ばれるプラットフォーム上の開発環境を使用して,最も簡単なABAPプログラムを開発しました。今回は,ABAPワークベンチの中でも特に重要な「ABAPディクショナリ」を実際に使用し,その役割を考えてみます。
ABAPディクショナリは,テーブル定義やデータ型といった,ABAPプログラムで使用されるメタデータを一元的に管理するツールです。
まず,ツールを起動してみましょう。前回と同じ手順でSAPシステム「NSP」にログオンしてください。画面左側のメニューから「Tools→ABAP Workbench→Development」とパスをたどり,「SE11 ABAP Dictionary」をダブルクリックしてツールを起動します。ABAPディクショナリの初期画面が表示されます(図1)。
| |
図1●ABAPディクショナリの初期画面 [画像のクリックで拡大表示] |
ABAPディクショナリには,どのようなオブジェクトが管理されているのでしょうか。
ABAPプログラムで使用するテーブルなどのデータベース・オブジェクトは,まずABAPディクショナリで定義します。このテーブル定義を有効化すると,データベースに実テーブルを生成します。
ABAPシステムは,OSやDBMSのベンダーやバージョンに依存しない,アプリケーションの開発・運用環境であることに大きな特徴があります。ABAPディクショナリは,それを実現する仕組みの一つであり,DBMSに依存しないテーブル定義を提供します。
それでは,実際のABAPディクショナリにアクセスして,テーブル定義を照会してみましょう。「Database table」項目に「scarr」と入力してください。これはABAP実習によく用いられる,航空会社データを格納するためのサンプル用テーブルです。「Display」ボタンを押すと,航空会社テーブルの定義情報が表示されます(図2)。
| |
図2●サンプルとして用意されている航空会社テーブル(SCARR)の定義情報 [画像のクリックで拡大表示] |
一般的なテーブル定義と同様に,ここではテーブルの列項目を定義します。このテーブル定義では「MANDT,CARRID,CARRNAME…」が項目名です。「内容説明(Short Description)」を見ると,対象となるデータは,航空会社コードや航空会社名であることがわかります。
ABAPディクショナリのテーブル定義を「有効化」すると,データベース・テーブルが自動生成されます。データベース・テーブルには,実データを格納できます。
この航空会社テーブルは有効化済みで,すでにサンプル・データが格納されています。テーブル定義の画面から,格納されているデータを照会してみましょう。ツールバーの内容ボタンをクリックし,次の画面で実行ボタンをクリックします。航空会社テーブルのデータが表示されます(図3)。このようなデータベースのデータにABAPプログラムからアクセスする方法については,次回紹介します。
| |
図3●航空会社テーブルのデータ(レコード) [画像のクリックで拡大表示] |
さて,ABAPディクショナリでは,データベース・オブジェクトのほかに,データ型など,主にプログラムで使用されるオブジェクトも定義されます。これらのオブジェクトは,テーブル定義の基本エレメントとしても使用されます。
終了ボタンを押して,もう一度航空会社テーブルの定義画面を表示してください。中程の列を見ると,テーブルの各列項目は「データエレメント(Data element)」と呼ばれるデータ型を参照していることがわかります。
例えば,航空会社コード項目(CARRID)は,データ・エレメント「s_carr_id」を参照しています。「s_carr_id」をダブルクリックすると,ABAPディクショナリにおけるデータ・エレメントの定義を照会することができます(図4)。この場合は「CHAR型」の「長さ3」(3バイトではないことに注意)であることがわかります。
| |
図4●データ・エレメント「s_carr_id」の定義。「CHAR型」で「長さ3」であることがわかる [画像のクリックで拡大表示] |
データ・エレメントには,型や長さといった技術的な属性のほかに,プログラムで使用できる,ラベルや項目説明などの意味的な属性が含まれます。このあと作成するプログラムで使用するので,ツールバーにある「Documentation」ボタンをクリックして項目説明を確認してみてください(図5)。
図5●データ・エレメント「s_carr_id」の項目説明(Documentation) |