Adempiereでデータ登録画面を作る
第4回記事では、Adempiereの使い方として、ウインドウを作成してメニュー・ツリーに追加する方法と、プロセスを作成する方法について説明します。
アプリケーション・ディクショナリとは
Adempiereでは、メニュー・ツリーでどのような項目をどの階層に表示するかという情報を、データベース内のデータとして保持しています。
また、メニュー・ツリーの項目をクリックすると表示されるウインドウや、ウインドウ内のタブ、フィールド(テキスト・エリアなどの表示項目)も、ソース・コードに書かれているのではなく、データベース内のデータとして保存されていて、その情報に基づいて、各ウインドウの名前や、画面の入力項目が表示されます。
この仕組みのことを、アプリケーション・ディクショナリ(アプリケーション辞書、または、アプリケーション構成)と呼びます。単純なデータの登録・編集を行うウインドウならば、管理画面から操作するだけで、プログラミングをすることなく作成できます。
ウインドウの作成
今回の記事では、「名前」と「説明」という入力項目がある単純なウインドウを作成する手順を説明します。Adempiereで新規にウインドウを作成する方法は、以下の通りです。
まず、Adempiereに、System Administratorとしてログインしてください。メニューから「アプリケーション構成 > テーブルとカラム」を選び、「テーブルとカラム」ウインドウを開いてください。
図1: メニューから「テーブルとカラム」を選ぶ |
「テーブル」タブで、新規作成アイコンをクリックして、レコードを新規作成してください。「DBテーブル名」に、テーブル名を入力してください(SAMPLE_TABLE1など)。後で実行する処理によって、この名前でデータベースにテーブルが作成されます。
「名前」に、名前を入力してください(SAMPLE1など)。「データ・アクセスレベル」は「すべて」を選択してください。入力したら、保存アイコンをクリックして、データを保存してください。
「テーブルからカラムをコピー」ボタンを押して、「テーブル」のセレクト・ボックスから、「M_FreightCategory_貨物カテゴリ」を選択してください。リストはアルファベット順に並んでいます。
この処理をすることによりAdempiereのテーブルが標準で持っている、AD_Client_ID(クライアントID)、AD_Org_ID(組織ID)、Created(レコード作成ユーザー)、CreatedBy(レコード作成日時)などが「カラム」タブのレコードとして作成されます(「M_FreightCategory_貨物カテゴリ」は、最も単純な構造のテーブルのため、コピー元のテーブルに使います)。
「カラム」タブに移動して、右下にある「カラムを同期」ボタンを押してください。処理が実行されるとデータベース(PostgreSQL)に「テーブル」タブの「DBテーブル名」で入力した名前と同じ名前のテーブルが作成されます(「カラム」タブ1度処理を実行するとすべてのカラムを持ったテーブルが作成されます)。
図2: カラムを同期させる |
図3: テーブルが作成される |
次に、ウインドウ、タブ、フィールドの設定をします。メニューから「アプリケーション構成 > ウインドウ、タブ & フィールド」で、「ウインドウ、タブ & フィールド」ウインドウを開いてください。
「ウインドウ」タブで、データの新規作成してください。「名前」に、ウインドウの名前を入力してください(Sample Window1など)。保存アイコンをクリックして、データを保存してください。
「タブ」タブで、データの新規作成してください。「名前」に、タブの名前を入力してください(Tab1など)。「テーブル」の項目で、「テーブルとカラム」ウインドウで作成した値を選択してください(SAMPLE_TABLE1_SAMPLE1など)(「テーブルとカラム」ウインドウで作成したデータが、"DBテーブル名"_"名前"でリストに表示されています)。
保存アイコンをクリックして、データを保存してください。「フィールドを作成」ボタンで処理を実行すると、「テーブルとカラム」ウインドウで設定したデータを基に、「フィールド」タブにレコードが作成されます。