4.3.10.1. e Builderで作成したJAVAクラスをサービスタスクで使用する¶
このチュートリアルでは、自分で作成したJAVAクラスを「サービスタスク」に設定する方法を解説します。
「intra-mart e Builder for Accel Platform」 は、intra-mart Accel Platform上で動く業務アプリケーションの開発を支援するためのツールです。
「e Builder」のモジュール・プロジェクトで作成したJAVAクラスはすぐに開発環境へ反映されるため、「サービスタスク」から利用できます。
このチュートリアルは「e Builder」の「モジュール・プロジェクト作成」と「プロジェクトの設定」が完了している必要があります。
それぞれの手順のについては、以下を参照してください。
- モジュール・プロジェクト作成 : 「intra-mart e Builder for Accel Platform アプリケーション開発ガイド」 - 「モジュール・プロジェクト作成」
- プロジェクトの設定 : 「intra-mart e Builder for Accel Platform アプリケーション開発ガイド」 - 「プロジェクトの設定」
図:概要図
プロセスを進めていく中で、「IM-FormaDesigner」を使用します。
チュートリアルを開始する前に「IM-FormaDesigner」で作成したアプリケーションをインポートしてください。
コラム
このチュートリアルで作成するプロセス定義は、以下のリンクからダウンロードできます。
プロセス定義のアップロード方法については、以下のリンクを参照してください。
- プロセス定義 : 「IM-BPM プロセスデザイナ 操作ガイド」 - 「プロセス定義のアップロード」
コラム
このチュートリアルで作成するモジュール・プロジェクトは、以下のリンクからダウンロードできます。
上記のモジュール・プロジェクトをエクスポートしたimmファイルは、以下のリンクからダウンロードできます。
immファイルのインポート方法については、以下のリンクを参照してください。
4.3.10.1.1. e BuilderでJAVAクラスを作成する¶
「サービスタスク」で実行したいJAVAクラスを「e Builder」で作成します。
今回は、「受け取った値を計算して設定する」という簡単なロジックを作成します。
「モジュール・プロジェクト」内で作成することにより、即時ローカル環境で実行可能です。
- 「モジュール・プロジェクト」にクラスを作成します。使用する「モジュールプロジェクト」を右クリックし、「新規(N)」→「クラス」を選択します。
- 「新規Javaクラス」ダイアログが表示されます。以下のように項目を設定します。
- インタフェースを設定します。「新規Javaクラス」ダイアログの中央「インタフェース」の「追加」をクリックします。
- 「実装されたインタフェースの選択」ダイアログで「 jp.co.intra_mart.activiti.engine.delegate.JavaDelegate 」を入力します。「一致する項目(M)」に出てくる「JavaDelegate」を選択し、「OK」ボタンをクリックします。
- 「JavaDelegate」が実装された「CalculationDelegate.java」が作成されます。
作成されたJAVAクラスに、以下のようにコーディングし、保存します。
package tutorial; import jp.co.intra_mart.activiti.engine.delegate.DelegateExecution; import jp.co.intra_mart.activiti.engine.delegate.Expression; import jp.co.intra_mart.activiti.engine.delegate.JavaDelegate; public class CalculationDelegate implements JavaDelegate { // フィールド num1 protected Expression num1; // フィールド num2 protected Expression num2; @Override public void execute(DelegateExecution execution) throws Exception { // フィールドから値を取得 int i1 = Integer.parseInt((String) num1.getValue(execution)); int i2 = Integer.parseInt((String) num2.getValue(execution)); // 計算して変数 sum に設定する execution.setVariable("sum", i1 + i2); } }
図:「CalculationDelegate」クラス(e Builder)
コラム
このチュートリアルでは、クラスをアプリケーションサーバに直接デプロイし実行します。
実際に配布・運用するには「immファイル」としてエクスポートしてください。
環境構築で「IM-Juggling」からWARファイルを生成する際に、その「immファイル」を組み込むことで使用できます。
各種インポート方法については、以下のリンクを参照してください。
- immファイルのエクスポート : 「intra-mart e Builder for Accel Platform アプリケーション開発ガイド / immファイルのエクスポート」
- e Builder での開発の流れ : 「intra-mart e Builder for Accel Platform アプリケーション開発ガイド」 - 「e Builder での開発の流れ」
4.3.10.1.2. プロセス定義を作成する¶
以下の図は、入力された値を計算して結果を表示するプロセスです。
「開始イベント」に設定した「IM-FormaDesigner」のアプリケーション画面で入力された値を「サービスタスク」で計算し、アプリケーション画面で表示します。
図:完成イメージ
- 「開始イベント」 を設置します。
- プロセス開始時に、値を入力するアプリケーション画面を設定します。実行したユーザを「確認画面」タスクの担当者に設定するために、「イニシエータ」を設定しておきます。「開始イベント」の「メインコンフィグ」から、以下のように項目を設定します。
- プロセス全体に対する設定を行います。「開始イベント」ではない場所をクリックし、「プロパティ」をプロセス全体に切り替えます。
- 「プロセス」タブの「処理対象ユーザ」に「青柳辰巳(ユーザコード: aoyagi)」を設定します。
- 「サービスタスク」にJAVAクラスを設定します。「サービスタスク」を選択し、「メインコンフィグ」タブで以下のように項目を設定します。
- タスクタイプ : JAVAクラス
- クラス名 : tutorial.CalculationDelegate
図: 「サービスタスク」- 「プロパティ」- 「メインコンフィグ」 - 「サービスタスク」のフィールドの設定をします。「メインコンフィグ」タブの「フィールド」にある「追加」をクリックします。図: 「サービスタスク」- 「プロパティ」- 「メインコンフィグ」
- 以下のように項目を設定します。
入力値1
- フィールド名:num1
- 種別:式
- 式:${num1}
入力値2
- フィールド名:num2
- 種別:式
- 式:${num2}
図: 「フィールド」コラム
上記で設定している値の詳細は以下のとおりです。- フィールド名呼び出すクラスのクラス変数( jp.co.intra_mart.activiti.engine.delegate.Expression )の変数名を指定します。指定されたクラス変数に式が設定されます。
- 式「IM-FormaDesigner」で作成したアプリケーション画面で、入力フォームに対して設定された「 フィールド識別ID 」を使用したEL式です。EL式で設定することにより、画面で入力された値を取得できます。
確認画面の「ユーザタスク」を設置します。
「ユーザタスク」を選択し、「メインコンフィグ」タブから、以下のように項目を設定します。
「終了イベント」を設置します。
4.3.10.1.3. 結果を確認する¶
このチュートリアルで作成した「プロセス定義」を実行環境にデプロイし、実行結果の確認を行います。
「サイトマップ」→「BPM」→「プロセス開始一覧」画面を表示します。
プロセス開始一覧から、「」アイコンをクリックします。
「IM-FormaDesigner」で作成したアプリケーション画面、「数値入力」が表示されます。
適当な数値を入力し、「決定」ボタンをクリックします。
- 「サイトマップ」→「BPM」→「タスク一覧」画面を表示します。個人タスクに振り分けられている「確認画面」の「」をクリックします。
- 「IM-FormaDesigner」で作成したアプリケーション画面、「確認画面」が表示されます。「和」フォームに結果が入っていることを確認します。