概要
このチュートリアルの目的は、カスタムページ と ビジネス データモデル(BDM)の2つのテクノロジーがどのような恩恵をもたらすか示すことにあります。カスタムページの内部でビジネスデータを表示する方法を説明します。
必要前提条件
このチュートリアルの主要な部分に着手する前に、次のステップを実行しておく必要があります:
- Bonita BPM Studio でビジネス データモデルを作成する
- ビジネス データモデルをエクスポートし、デプロイする
- Groovyのカスタムページを定義する。(詳しくは、カスタムページを参照)
- カスタムページを Bonita BPM ポータル(システム管理者としてログイン)に追加する。(詳しくは、カスタムプロファイルとカスタムページを参照)
主なステップ
ビジネス データモデルをインポートする
ビジネス データモデルをアクセスする
データを表示する
注意事項
ビジネス データモデルをインポートする
カスタムページは、Bonita BPM Studio で BDM を開発中に生成された .jar ファイルを介して BDM をアクセスする必要があります。
engine-server/work/tenants/<tenant id>/data-management-client
のディレクトリに置かれているclient-bdm.zip
ファイルを解凍します。- 解凍済みの zip ファイル フォルダ内の
bdm-dao.jar
とbdm-model.jar
ファイルを次の「lib」と呼ぶカスタムページ ディレクトリにコピーします。bonita_homeclienttenants1workpagescustompage_yournamelib
注意: このカスタムページを含む新規フォルダは、そのカスタムページが追加されたときに自動的に作成されます。
ビジネス データモデルをアクセスする
事例として休暇申請に関する情報を格納する Bonita BPM Studio の休暇申請プロセスに、サンプルのビジネス データモデルを組み込んでいます。
Index.groovy page
ページでは、BDM(サンプルでは、休暇申請のアイテムと休暇申請のItemDAO) を表している2つのJava クラスをDAO オブジェクト(import com.bonitasoft.engine.bdm.BusinessObjectDAOFactory
import com.leaverequest.survey.leaverequestItemDAO
import com.myCorp.survey.leaverequestItem
)で提供する BusinessObjectDAOFactory と一緒にインポートする必要があります。
次に、カスタムページの本文では、これらのクラスとメソッドが使用可能です:
//コンテキストから apiSession を取得します。
// DAO factory を作成します。
// DAO object を入手するためにその factory を使用します。
// BDM からデータをアクセスするために DAO object のメソッドを使用します。そのメソッドに事前に計算した入力の値を渡すことができます。
データを表示する
表示を必要とするデータは、開始日と終了日を除いてすべて文字列です。したがって、それらの開始日と終了日は書式変換する必要があります。たとえば:
さて、あなたはページ上にそれらを表示できるビジネスオブジェクトを入手しました。あなたのニーズに従って標準のHTMLに表示する方法はいろいろあります。
たとえば、次の方法を使用できます。
ページ内にHTMLをプリントするには:
out.println(‘<table class=”gridtable”><caption>Leave Request List</caption><tr><th>Start Date </th><th>End date</th><th>Leave Type</th></tr>’);
for(LeaveRequest leaveRequest: leaveRequestList){
out.println(“<tr><td>” + df.format(leaveRequest.getStartDate())+” </td><td> ” + df.format(leaveRequest.getEndDate())+” </td><td> ” +leaveRequest.getLeaveType() + “</td></tr>”);
}
out.println(“</table>”);
注意事項
- カスタムページを開発しているとき、何らかのアクシデントでBonita BPM Studio を停止させた場合、デフォルトではテナントのファイルシステムとデータベースが消去され、途中の作業結果を失う可能性があることに注意してください。最良の回避策は、Bonita BPM Studio上でデータベースの削除を防止することです。[環境設定] -> [データベース] に進んで、「終了時にビジネス データモデルのデータベースをきれいにする」をアンチェックします。
- カスタムページがささいなものである場合は、その開発に Groogy のIDEを使用するアイデアがあります。それを使用するとオートコンプリート、文法チェック、テキストの色分けなどが可能です。たとえば、Eclipse を使用する場合、Groovy のプラグインをインストールできるので、新規 Groovy プロジェクトを作成しカスタムページのファイルシステムにポイントします。さらに、それらの bonita jar を追加するビルドのパスを設定する必要があります:
Bonita-client-sp-6.x.jar
と
console-server-6.x.jarそして、これらのデータモジュール:
bdm-dao.jarbdm-model.jar
- よく用いられるケースは、次の例のサブミット ボタンを通じてページのコンテンツをリスレッシュし、DAOにクエリを再送する場合です。
out.println(“<form name=’myform’ id=’myform’ action=”+actionUrl+”>”);out.println(“<input type=’text’ id=’name’></input>”);
out.println(“<button id=’myButton’>Submit</button></form>”)
- フォームのアクション (この例では、actionUrl ) は、カスタムページと同じ url にポイントすべきです。たとえば、
- サブミットボタンをクリックすることによって、url がコールされ、入力パラメータが設定されるので、次回それをロードされたページは、この情報を持ちます。