Adempiereでデータ登録画面を作る
メニューツリーに表示
これでAdempiereのウインドウが作成されたので、ウインドウをメニュー・ツリーに表示するための設定を行います。メニューから「システム管理者設定 > 一般ルール > システムルール > メニュー」を選択して、「メニュー」ウインドウを開いてください。
「メニュー」タブで、新規作成アイコンをクリックして、データを新規作成してください。「名前」のテキスト・フィールドに、名前を入力してください(Sample Window1など)。「アクション」セレクト・ボックスで、「ウインドウ」を選択してください。
「ウインドウ」セレクト・ボックスで、作成したウインドウを選択してください(Sample Window1)。これで、新規にウインドウを作成する作業は完了です。一度ログアウトして再ログインすると、ウインドウがメニュー・ツリーに表示されます。
図4: 作成したウインドウを選択する |
このようにして作成したウインドウは、Javaクライアントからでも、ウェブUI(ZKウェブ・アプリケーション)からでもアクセスできます。
プロセスの作成と設定
ウインドウを作成する方法を説明したので、次に、プロセスを作成する方法を説明します。
Adempiereのプロセスとは、受注ウインドウにある「明細をコピー」ボタンや受入ウインドウにある「受入から請求を生成」ボタン、メニュー・ツリーにある「キャッシュリセット」処理など、特定の処理を実行するためのものです。プロセスは、アプリケーション・ディクショナリを設定することで、メニュー・ツリーや各ウインドウのボタンとして登録できます。
通常は、プロセスは、Adempiereのソース・コードに含まれている、SvrProcessクラスを継承したクラスを作成して、doIt()メソッドに処理を記述するという方法で実装します(参考URL)。この場合は、Adempiereをビルドし直すことで、実際のコードを配置します。
プロセスは、「Script Process」という機能を使って実装することもできます。今回は「Script Process」の機能を使ってプロセスを実装してみます。
「Script Process」の作成方法
メニューから「アプリケーション構成 > Rule」を選択して、「Rule」ウインドウを開いてください。このウインドウでは、「Script Process」の本体を作成します。
新規にレコードを作成して、以下のように入力項目を設定してください。
入力項目 | 値 |
---|---|
「検索キー」 | beanshell:SampleProcess1 |
「名前」 | SampleProcess1 |
「イベントタイプ」 | Process |
「Rule Type」 | JSR 223 Scripting APIs |
「スクリプト」は、以下のコードを入力してください。
このプロセスでは、テーブルの「Description」(説明)に、「このメッセージはプロセスにより入力されました。」というメッセージを自動で保存します。コードの中で使われているMTableクラスは「base\src\org\compiere\model\MTable.java」にあります。
保存アイコンを押すと、Script Processが保存されます。
プロセスの作成
次に、作成したScript Processをプロセスとして登録します。メニューから「アプリケーション構成 > レポートとプロセス」を選択して「レポートとプロセス」ウインドウを開いてください。「レポート&処理」タブで、レコードを新規作成してください。
「検索キー」には、「Sample_Process1」と入力してください。「名前」には、「Sample Process1」と入力してください。「実体タイプ」は、「Dictionary」を選択してください。「データ・アクセスレベル」は「システムクライアント」を選択してください。「クラス名」には、「@script:beanshell:SampleProcess1」と入力してください。 "beanshell:SampleProcess1"の部分は、「Rule」ウインドウの「検索キー」と同じ値にしてください。
保存アイコンを押して、レコードを保存してください。