IM-BPM for Accel Platform IM-BPM チュートリアルガイド 第20版 2024-04-26

7.1.1. IM-BloomMakerのコンテンツをユーザ入力フォームとして利用する

IM-BPMのプロセス開始時のユーザ入力フォームおよびタスク処理時のユーザ入力フォームをIM-BloomMakerで作成するサンプルです。
../../../../_images/bloommaker_process_and_task_form_01.png
図 : 「プロセスの開始」画面
../../../../_images/bloommaker_process_and_task_form_02.png
図 : 「タスクの処理」画面

注意

本サンプルは、intra-mart Accel Platformに「IM-BloomMaker for Accel Platform」モジュールが組み込まれている環境上で動作することを前提としています。
また、各プロダクトのバージョンは下記を想定しています。
  • intra-mart Accel Platform : 2020 Summer(Zephirine)
  • IM-BPM for Accel Platform : 8.0.12
  • IM-BloomMaker for Accel Platform : 8.0.3

7.1.1.1. 本サンプルの確認方法

  1. 本サンプルの構成資材」 の資材をそれぞれ組み込み/インポートします。
  2. 全ての資材のインポートが完了した後、「サイトマップ」→「BPM」→「プロセス開始一覧」より「プロセス開始一覧」画面へ遷移します。
  3. プロセス「bloommaker_process_and_task_form」の「プロセス開始」をクリックすることで、IM-BloomMakerを使用して作成された「プロセスの開始」画面が表示されます。この画面ではIM-Repositoryの「辞書項目」の「辞書項目の制約」などを利用した項目のバリデーションが行われます。
  4. 「プロセスの開始」画面の表示が行われる際、IM-BloomMakerのルーティングに定義された前処理として、Javaクラス「sample.bloommaker_process_and_task_form.BPMProcessStartPreprocessor」が実行され、権限の確認や画面へのパラメータの検証、初期表示用の情報の取得などが行われます。
  5. 「プロセスの開始」画面にて「業務キー」、「最初のタスクの担当者」、「説明」を入力し、「プロセス開始」ボタンをクリックすることで、プロセスが開始されます。
  6. プロセスの開始時にプロセスの「start」イベントに設定されたリスナクラス「sample.bloommaker_process_and_task_form.BPMProcessStartValidationListener」が実行され、画面入力値由来の変数の検証が行われます。 ここでもIM-Repositoryの「辞書項目」の「辞書項目の制約」が使用されます。
  7. 次に、「プロセスの開始」画面の「最初のタスクの担当者」に指定したユーザにてログインし、「サイトマップ」→「BPM」→「タスク一覧」より「タスク一覧」画面へ遷移します。
  8. プロセス定義「bloommaker_process_and_task_form」のタスク「ユーザタスク」の処理を行うことで、「プロセスの開始」画面と同様にIM-BloomMakerを使用して作成された「タスクの処理」画面が表示されます。
  9. 「プロセスの開始」画面と同様に、「タスクの処理」画面の表示が行われる際、IM-BloomMakerのルーティングに定義された前処理として、Javaクラス「sample.bloommaker_process_and_task_form.BPMTaskCompletePreprocessor」が実行され、権限の確認や画面へのパラメータの検証、初期表示用の情報の取得などが行われます。
  10. プロセスの開始時と同様に、タスクの完了処理時にもタスクの「complete」イベントに設定されたリスナクラス「sample.bloommaker_process_and_task_form.BPMTaskCompleteValidationListener」が実行され、画面入力値由来の変数の検証が行われます。

7.1.1.2. 本サンプルの構成資材

コラム

ユーザモジュールの組込みについて

コラム

e Builder モジュール・プロジェクトについて

e Builder モジュール・プロジェクトについては「intra-mart e Builder for Accel Platform アプリケーション開発ガイド」-「e Builder での開発の流れ」を参照してください。

コラム

IM-BPM定義情報のインポートについて

インポート手順は「IM-BPM ユーザ操作ガイド」-「インポート」を参照してください。

コラム

IM-Repository定義情報のインポートについて

インポート手順は「IM-Repository ユーザ操作ガイド」-「辞書のインポートを行う」を参照してください。

コラム

IM-BloomMaker定義情報のインポートについて

インポート手順は「IM-BloomMaker for Accel Platform ユーザ操作ガイド」-「定義ファイルをインポートする」を参照してください。

コラム

IM-Authz(認可) ポリシー - XML形式定義情報のインポートについて

パブリックストレージへのファイルの配置は「システム管理者操作ガイド」-「ファイル操作」を参照してください。
また、ジョブネット「認可(ポリシー)インポート」の実行時に実行パラメータfile を追加し、値に上記の認可ファイルのパブリックストレージ上のパスを指定してください。
または、パブリックストレージへの配置の際にファイル名をauthz-policy.xmlへリネームしてパブリックストレージのルート直下に配置し、ジョブを実行してください。

7.1.1.3. ユーザモジュール定義情報(im_bpm_tutorial_guide_bloommaker_process_and_task_form-8.0.0.imm)の詳細

IM-BloomMakerで定義したユーザ入力フォームへのルーティング時の前処理(サーバサイド処理)や、プロセスリスナを使用したサーバサイドバリデーションを行うJavaクラスのサンプルを格納したユーザモジュール資材です。

7.1.1.3.1. 前処理で実行されるJavaクラス

  • sample.bloommaker_process_and_task_form.BPMProcessStartPreprocessor.java
    コンテンツ「【チュートリアル】start_process_form」へのルーティング時の前処理として実行されます。
    プロセス開始後に遷移するコールバックパスの妥当性の検証や、必須パラメータの確認、ユーザ権限の妥当性の検証、初期表示情報の取得などの処理を行います。
  • sample.bloommaker_process_and_task_form.BPMTaskStartPreprocessor.java
    コンテンツ「【チュートリアル】complete_task_form」へのルーティング時の前処理として実行されます。
    タスク処理後に遷移するコールバックパスの妥当性の検証や、必須パラメータの確認、ユーザ権限の妥当性の検証、初期表示情報の取得などの処理を行います。

コラム

ユーザ権限の妥当性の検証について

IM-BPMではユーザがプロセスインスタンスの関係者であるか、権限を確認する機構が用意されています。
本サンプルでは、コンテンツにルーティングする際の前処理として、権限のチェックを行っています。

IM-BPMの関係者の詳細については「IM-BPM 仕様書」-「関係者権限」を参照してください。
IM-BPMとIM-BloomMakerの画面連携の詳細については「IM-BPM 仕様書」-「IM-BloomMaker画面連携」を参照してください。
IM-BPMとIM-BloomMakerの画面連携時のパラメータの詳細については「IM-BPM 仕様書」-「パラメータ」を参照してください。
IM-BPMとIM-BloomMakerの画面連携時の権限の検証の詳細については「IM-BPM 仕様書」-「検証」を参照してください。

7.1.1.3.2. プロセスのリスナで実行されるJavaクラス

  • sample.bloommaker_process_and_task_form.BPMProcessStartValidationListener.java
    プロセス「bloommaker_process_and_task_form」の実行時のプロセスリスナとして実行されます。
    プロセス開始時のサーバサイドバリデーションとして、必須項目の有無の検証や、IM-Repositoryの辞書項目を使用しての画面入力値由来の変数の文字数の検証を行います。

7.1.1.3.3. タスクのリスナで実行されるJavaクラス

  • sample.bloommaker_process_and_task_form.BPMTaskCompleteValidationListener.java
    プロセス「bloommaker_process_and_task_form」の実行時のタスクリスナとして実行されます。
    タスク処理時のサーバサイドバリデーションとして、必須項目の有無の検証や、IM-Repositoryの辞書項目を使用しての画面入力値由来の変数の文字数の検証を行います。

コラム

IM-Repositoryの辞書項目を使用したバリデーションについて

IM-Repositoryの辞書項目を使用したバリデーションの詳細については「IM-Repository拡張プログラミングガイド」-「制約用途に指定した制約に適合するかどうかを確認する」を参照してください。
IM-Repositoryの辞書項目については後述の「IM-Repository定義情報(im-repository-export-data-bloommaker_process_and_task_form.xlsx)の詳細」を参照してください。

7.1.1.4. e Builder モジュール・プロジェクト定義情報(im_bpm_tutorial_guide_bloommaker_process_and_task_form-8.0.0-sources.zip)の詳細

先述のユーザモジュール「bloommaker_process_and_task_form-8.0.0.imm」を作成するためのe Builder モジュール・プロジェクトです。各Javaクラスのソースコードなどが格納されています。

7.1.1.5. IM-BPM定義情報(im_bpm-bloommaker_process_and_task_form.zip)の詳細

プロセス開始時およびタスク処理時にIM-BloomMakerのフォームを呼び出すサンプルプロセスおよび、プロセスを格納するプロジェクト、プロセスのデプロイ情報を含む資材です。
本サンプルでは、上記の入力フォームの呼び出しのほか、プロセスやタスクのリスナを使用したサーバサイドバリデーションも行います。

7.1.1.5.1. IM-BPMのプロジェクト

  • 「【チュートリアル】bloommaker_process_and_task_form」
    本サンプルで使用するプロセスを格納するためのプロジェクトです。

7.1.1.5.2. IM-BPMのプロセス定義

  • 「bloommaker_process_and_task_form」
    プロセスの開始時や、タスクの処理時にIM-BloomMakerで作成された入力フォームを呼び出すプロセス定義です。
    プロジェクト「【チュートリアル】bloommaker_process_and_task_form」に格納されています。

    コラム

    プロセスの入力フォームについて

    プロセスの開始イベント、および、ユーザタスクに設定するフォームキーに対し画面連携方式を設定することが可能です。
    本サンプルではこの機能を使用して、IM-BloomMakerのコンテンツと連携を行っています。
    フォームキーの詳細については「IM-BPM 仕様書」-「フォームキー」を参照してください。

    コラム

    プロセスのリスナについて

    本サンプルでは、プロセス開始時のプロセスの「start」イベントおよびタスク処理時のタスクの「complete」イベントにてリスナを使用したバリデーションを実行しています。
    プロセスのリスナについての詳細は「IM-BPM プログラミングガイド」-「リスナ」を参照してください。

7.1.1.5.3. IM-BPMのデプロイメント

  • 「【チュートリアル】bloommaker_process_and_task_form-deployment」
    本サンプルで使用するプロセス定義のデプロイメント定義情報です。

    コラム

    プロセスの開始について

    プロセスの開始手順は「IM-BPM ユーザ操作ガイド」-「プロセスインスタンスの開始」を参照してください。

7.1.1.6. IM-Repository定義情報(im-repository-export-data-bloommaker_process_and_task_form.xlsx)の詳細

プロセス開始時のユーザ入力フォームとタスク処理時のユーザ入力フォームにて、項目のバリデーションに使用する辞書情報を含む資材です。
辞書項目の制約を使用したバリデーションについては「ユーザモジュール定義情報(im_bpm_tutorial_guide_bloommaker_process_and_task_form-8.0.0.imm)の詳細」を参照してください。

コラム

辞書項目について

辞書項目の詳細については「IM-Repository ユーザ操作ガイド」-「辞書項目」を参照してください。

コラム

辞書項目の制約について

辞書項目の制約の詳細については「IM-Repository ユーザ操作ガイド」-「辞書項目の制約」を参照してください。

7.1.1.7. IM-BloomMaker定義情報(im_bloommaker-data-bloommaker_process_and_task_form.zip)の詳細

プロセス開始時のユーザ入力フォームとタスク処理時のユーザ入力フォームの定義情報と、それらの入力フォームへのルーティング情報の定義が含まれる資材です。

7.1.1.7.1. IM-BloomMakerのコンテンツ

  • 「BPMチュートリアル」-「【チュートリアル】start_process_form」
    プロセスの開始時に呼び出されるユーザ入力フォーム画面の定義情報です。IM-BPM REST API「プロセスインスタンス登録」を呼び出すアクションの定義やボタンクリックなどの画面イベントの定義、レイアウト等の情報が含まれます。

コラム

IM-BPM REST API「プロセスインスタンス登録」について

IM-BPM REST API「プロセスインスタンス登録」の詳細について「APIドキュメント」-「プロセスインスタンス登録」を参照してください。
  • 「BPMチュートリアル」-「【チュートリアル】complete_task_form」
    タスクの処理時に呼び出されるユーザ入力フォーム画面の定義情報です。IM-BPM REST API「タスク登録」を呼び出すアクションの定義やボタンクリックなどの画面イベントの定義、レイアウト等の情報が含まれます。

コラム

IM-BPM REST API「タスク登録」について

IM-BPM REST API「タスク登録」の詳細について「APIドキュメント」-「タスク登録」を参照してください。

コラム

IM-Repositoryを使用したフォームのバリデーションについて

本サンプルではIM-Repositoryの辞書項目を使用し、フォーム上の入力フィールドの最大長や属性などのメタデータを設定します。

IM-Repositoryの辞書項目の新規登録については「IM-Repository ユーザ操作ガイド」-「辞書項目を新規登録する」を参照してください。

IM-BloomMakerでは、これらのメタデータを使用して項目のバリデーションを行えます。
ここでは、IM-Repositoryの辞書項目を使用したフォームのバリデーションの設定手順の一例を示します。
  1. コンテナの初期表示アクションにて、「入力規則エラーを非表示にする」を実行します。
../../../../_images/bloommaker_process_and_task_form_03.png
図 : 「入力規則エラーを非表示にする」
  1. 「変数」タブの「IM-Repository から作成」-「辞書項目をインポート」よりIM-Repositoryの辞書項目を変数定義としてインポートします。
../../../../_images/bloommaker_process_and_task_form_04.png
図 : 「IM-Repository から作成」-「辞書項目をインポート」
  1. 上記の設定後、作成した変数をエレメントにバインドします。
../../../../_images/bloommaker_process_and_task_form_05.png
図 : 「変数をエレメントにバインド」
  1. アクション「入力規則エラーを表示する」を実行することにより、制約違反となっている項目の周囲が赤く縁どられます。また、アクションの実行条件として、「変数〇が入力規則に即していないとき」を指定することでエラーメッセージの表示などを制御することもできます。
../../../../_images/bloommaker_process_and_task_form_06.png
図 : 「入力規則エラーを表示する」
../../../../_images/bloommaker_process_and_task_form_07.png
図 : 「入力エラーとなっている状態」
../../../../_images/bloommaker_process_and_task_form_08.png
図 : 「変数〇が入力規則に即していないとき」

7.1.1.7.2. IM-BloomMakerのルーティング

  • 「BPMチュートリアル」-「【チュートリアル】routing_start_process_form」
    コンテンツ「【チュートリアル】start_process_form」へアクセスするためのURLの指定や、アクセスする際に呼び出される前処理などの情報を定義するルーティング定義情報です。
  • 「BPMチュートリアル」-「【チュートリアル】routing_complete_task_form」
    コンテンツ「【チュートリアル】complete_task_form」へアクセスするためのURLの指定や、アクセスする際に呼び出される前処理などの情報を定義するルーティング定義情報です。

7.1.1.8. IM-Authz(認可) ポリシー - XML形式定義情報(authz-policy-bloommaker_process_and_task_form-BM.xml)の詳細

IM-BloomMakerのルーティング「【チュートリアル】routing_start_process_form」および「【チュートリアル】routing_complete_task_form」に対する認可設定です。
本サンプルでは「IM-BPM管理者」および「IM-BPMユーザ」に対し「参照」権限を付与します。

コラム

IM-BloomMakerのルーティングの認可について

ルーティングの認可設定手順は「IM-BloomMaker for Accel Platform チュートリアルガイド」-「ルーティングの認可を設定する」を参照してください。