第45章 ケース管理のルール

ケースは、シーケンスフローには従わず、データ駆動型です。ケースを解決するために必要な手順は、ケースに関係する人によって提供されるデータに依存します。または、利用可能なデータに基づいてさらにアクションを発生させるようにシステムを設定できます。後者の場合、ビジネスルールを使用して、ケースを続行または解決するために必要な追加のアクションを決定できます。

データは、ケース内のどの時点でも、ケースファイルに挿入できます。デシジョンエンジンは常に、ケースファイルデータをモニターリングしているため、ケースファイルに含まれるデータに、ルールが反応します。ルールを使用してケースファイルデータの変更を監視および応答することで、ある程度自動的にケースが前に進むようにします。

45.1. ルールを使用したケースの前進

Business Central のケース管理に関する IT_Orders サンプルプロジェクトを参照します。

業者が入力した特定のハードウェア明細書に誤りがあるか無効だったとしましょう。ケースを続行させるためには、業者が、有効な注文を新たに行う必要があります。マネージャーが無効な明細書を却下して、業者に対して新しい要求を作成する代わりに、入力した明細書が無効であることをケースデータが示したらすぐに応答するビジネスルールを作成できます。このルールは、業者に新しいハードウェア明細書の要求を作成できます。

以下の手順は、このシナリオを実行するビジネスルールを作成して使用する方法を実演します。

前提条件

  • IT_Orders サンプルプロジェクトが Business Central で開いているが、KIE Server にデプロイされていない。
  • ServiceRegistryjbpm-services-api モジュールの一部で、クラスパスで利用できるようにする必要があります。

    注記

    Business Central 外でプロジェクトをビルドする場合は、以下の依存関係をプロジェクトに追加する必要があります。

    • org.jbpm:jbpm-services-api
    • org.jbpm:jbpm-case-mgmt-api

手順

  1. validate-document.drl という名前で、以下のビジネスルールファイルを作成します。

    package defaultPackage;
    
    import java.util.Map;
    import java.util.HashMap;
    import org.jbpm.casemgmt.api.CaseService;
    import org.jbpm.casemgmt.api.model.instance.CaseFileInstance;
    import org.jbpm.document.Document;
    import org.jbpm.services.api.service.ServiceRegistry;
    
    rule "Invalid document name - reupload"
    when
        $caseData : CaseFileInstance()
        Document(name == "invalid.pdf") from $caseData.getData("hwSpec")
    
    then
    
        System.out.println("Hardware specification is invalid");
        $caseData.remove("hwSpec");
        update($caseData);
        CaseService caseService = (CaseService) ServiceRegistry.get().service(ServiceRegistry.CASE_SERVICE);
        caseService.triggerAdHocFragment($caseData.getCaseId(), "Prepare hardware spec", null);
    end

    このビジネスルールは、invalid.pdf ファイルをケースファイルにアップロードしたタイミングを検出します。これは invalid.pdf ドキュメントを削除し、Prepare hardware spec ユーザータスクの新しいインスタンスを作成します。

  2. Deploy をクリックして、IT_Orders プロジェクトをビルドし、KIE Server にデプロイします。

    注記

    Build & Install オプションを選択してプロジェクトをビルドし、KJAR ファイルを KIE Server にデプロイせずに設定済みの Maven リポジトリーに公開することもできます。開発環境では、Deploy をクリックすると、ビルドされた KJAR ファイルを KIE Server に、実行中のインスタンス (がある場合はそれ) を停止せずにデプロイできます。または Redeploy をクリックして、ビルドされた KJAR ファイルをデプロイしてすべてのインスタンスを置き換えることもできます。次回、ビルドされた KJAR ファイルをデプロイまたは再デプロイすると、以前のデプロイメントユニット (KIE コンテナー) が同じターゲット KIE Server で自動的に更新されます。実稼働環境では Redeploy オプションは無効になっており、Deploy をクリックして、ビルドされた KJAR ファイルを KIE Server 上の新規デプロイメントユニット (KIE コンテナー) にデプロイすることのみが可能です。

    KIE Server の環境モードを設定するには、org.kie.server.mode システムプロパティーを org.kie.server.mode=development または org.kie.server.mode=production に設定します。Business Central の対応するプロジェクトでのデプロイメント動作を設定するには、プロジェクトの SettingsGeneral SettingsVersion に移動し、Development Mode オプションを選択します。デフォルトでは、KIE Server および Business Central のすべての新規プロジェクトは開発モードになっています。Development Mode をオンにしたプロジェクトをデプロイしたり、実稼働モードになっている KIE Server に手動で SNAPSHOT バージョンの接尾辞を追加したプロジェクトをデプロイしたりすることはできません。

  3. invalid.pdf ファイルを作成し、ローカルで保存します。
  4. valid-spec.pdf ファイルを作成し、ローカルで保存します。
  5. Business Central で、MenuProjectsIT_Orders に移動して、IT_Orders プロジェクトを開きます。
  6. ページの右上で Import Asset をクリックします。
  7. validate-document.drl ファイルを default パッケージ (src/main/resources) にアップロードし、Ok をクリックします。

    case management validate document upload

    validate-document.drl ルールがルールエディターに表示されます。Save をクリックするか、ルールエディターを閉じて終了します。

  8. Apps launcher (インストールされている場合) をクリックするか、http://localhost:8080/rhpam-case-mgmt-showcase/jbpm-cm.html に移動して、Showcase アプリケーションを開きます。
  9. IT_OrdersStart Case をクリックします。

    この例では、Aimee がケースの owner、Katy が manager、および業者グループが supplier になります。

    showcase start case
  10. Business Central からログアウトし、supplier グループに属するユーザーでログインし直します。
  11. MenuTrackTask Inbox の順に移動します。
  12. Prepare hardware spec タスクを開いて、Claim をクリックします。これにより、タスクがログインユーザーに割り当てられます。
  13. Start をクリックし、 choose file をクリックして invalid.pdf ハードウェア仕様ファイルの場所を特定します。 the upload button をクリックしてファイルをアップロードします。

    case management invalid spec
  14. Complete をクリックします。

    Prepare hardware specTask Inbox の値が Ready になります。

  15. Showcase の右上にある Refresh をクリックします。Prepare hardware task メッセージが Completed の列と、In Progress の列に表示されていることを確認します。

    case management new spec task

    これは、最初の Prepare hardware spec タスクが明細書ファイル invalid.pdf を使用して完了されているためです。その結果、ビジネスルールによりタスクおよびファイルが破棄され、新しいユーザータスクが作成されます。

  16. Business Central の Task Inbox で、前の手順を繰り返して、invalid.pdf の代わりに valid-spec.pdf ファイルをアップロードします。