第53章 ルールの実行
ルールの例を特定するか、Business Central でルールを作成したら、関連のプロジェクトをビルドしてデプロイし、ローカルまたは KIE Server でルールを実行してテストできます。
前提条件
- Business Central および KIE Server がインストールされ、実行されている。インストールオプションは、Red Hat Process Automation Manager インストールの計画 を参照してください。
手順
- 
						Business Central で、Menu Design Projects に移動して、プロジェクト名をクリックします。 
- プロジェクトの Assets ページの右上にある Deploy をクリックして、プロジェクトをビルドして KIE Server にデプロイします。ビルドに失敗したら、画面下部の Alerts パネルに記載されている問題に対処します。 - プロジェクトデプロイメントのオプションに関する詳細は、Red Hat Process Automation Manager プロジェクトのパッケージ化およびデプロイ を参照してください。 注記- デフォルトでプロジェクト内のルールアセットが実行可能なルールモデルからビルドされていない場合は、以下の依存関係がプロジェクトの - pom.xmlファイルに含まれていることを確認して、プロジェクトを再構築してください。- <dependency> <groupId>org.drools</groupId> <artifactId>drools-model-compiler</artifactId> <version>${rhpam.version}</version> </dependency>- <dependency> <groupId>org.drools</groupId> <artifactId>drools-model-compiler</artifactId> <version>${rhpam.version}</version> </dependency>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - この依存関係は、デフォルトで Red Hat Process Automation Manager のルールアセットが実行可能なルールモデルからビルドされるために必要です。Red Hat Process Automation Manager のコアパッケージに、この依存関係は同梱されていますが、Red Hat Process Automation Manager のアップグレード履歴によっては、この依存関係を手動で追加して、実行可能なルールモデルの動作を有効にする必要がある場合があります。 - 実行可能なルールモデルに関する詳細は、Red Hat Process Automation Manager プロジェクトのパッケージ化およびデプロイ を参照してください。 
- ローカルでのルール実行に使用するか、KIE Server でルールを実行するクライアントアプリケーションとして使用できるように、Business Central 外に Maven または Java プロジェクトが作成されていない場合は作成します。プロジェクトには、 - pom.xmlファイルと、プロジェクトリソースの実行に必要なその他のコンポーネントを含める必要があります。- テストプロジェクトの例は、その他の DRL ルールの作成および実行方法 を参照してください。 
- テストプロジェクトまたはクライアントアプリケーションの - pom.xmlファイルを開き、以下の依存関係が追加されていない場合は追加します。- 
								kie-ci: クライアントアプリケーションで、ReleaseIdを使用して、Business Central プロジェクトデータをローカルに読み込みます。
- 
								kie-server-client: クライアントアプリケーションで、KIE Server のアセットを使用してリモートに接続します。
- 
								slf4j: (任意) クライアントアプリケーションで、KIE Server に接続した後に、SLF4J (Simple Logging Facade for Java) を使用して、デバッグのログ情報を返します。
 - クライアントアプリケーションの - pom.xmlファイルにおける Red Hat Process Automation Manager 7.13 の依存関係の例- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - このアーティファクトで利用可能なバージョンは、オンラインの Nexus Repository Manager でグループ ID とアーティファクト ID を検索してください。 注記- 個別の依存関係に対して Red Hat Process Automation Manager - <version>を指定するのではなく、Red Hat Business Automation BOM (bill of materials) の依存関係をプロジェクトの- pom.xmlファイルに追加することを検討してください。Red Hat Business Automation BOM は、Red Hat Decision Manager と Red Hat Process Automation Manager の両方に適用されます。BOM ファイルを追加すると、提供される Maven リポジトリーから、推移的依存関係の適切なバージョンがプロジェクトに含められます。- BOM 依存関係の例: - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - Red Hat Business Automation BOM の詳細情報は、What is the mapping between Red Hat Process Automation Manager and the Maven library version? を参照してください。 
- 
								
- モデルクラスを含むアーティファクトの依存関係が、クライアントアプリケーションの - pom.xmlファイルに定義されていて、デプロイしたプロジェクトの- pom.xmlファイルに記載されているのと同じであることを確認します。モデルクラスの依存関係が、クライアントアプリケーションとプロジェクトで異なると、実行エラーが発生します。- Business Central でプロジェクトの - pom.xmlファイルを利用するには、プロジェクトで既存のアセットを選択し、画面左側の Project Explorer メニューで Customize View ギアアイコンをクリックし、Repository View- pom.xml を選択します。 - たとえば、以下の - Personクラスの依存関係は、クライアントと、デプロイしたプロジェクトの- pom.xmlファイルの両方に表示されます。- <dependency> <groupId>com.sample</groupId> <artifactId>Person</artifactId> <version>1.0.0</version> </dependency> - <dependency> <groupId>com.sample</groupId> <artifactId>Person</artifactId> <version>1.0.0</version> </dependency>- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- デバッグ向けロギングを行うために、 - slf4j依存関係を、クライアントアプリケーションの- pom.xmlファイルに追加した場合は、関連するクラスパス (Maven の- src/main/resources/META-INF内など) に- simplelogger.propertiesファイルを作成し、以下の内容を記載します。- org.slf4j.simpleLogger.defaultLogLevel=debug - org.slf4j.simpleLogger.defaultLogLevel=debug- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- クライアントアプリケーションに、必要なインポートを含む - .javaメインクラスと、KIE ベースを読み込む- main()メソッドを作成し、ファクトを挿入し、ルールを実行します。- たとえば、プロジェクトの - Personオブジェクトには、名前、苗字、時給、および賃金を設定および取得するゲッターメソッドおよびセッターメソッドが含まれます。プロジェクトにある以下の- Wageルールでは、賃金と時給を計算し、その結果に基づいてメッセージを表示します。- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - (必要に応じて) KIE Server の外でローカルにこのルールをテストするには、 - .javaクラスで、KIE サービス、KIE コンテナー、および KIE セッションをインポートするように設定し、その後、- main()メソッドを使用して、定義したファクトモデルに対してすべてのルールを実行するようにします。- ローカルでルールの実行 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - KIE Server でこのルールをテストするには、ローカルの例と同じように、インポートとルール実行情報で - .javaクラスを設定し、KIE サービス設定および KIE サービスクライアントの詳細を指定します。- KIE Server でのルールの実行 - Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- 設定した - .javaクラスをプロジェクトディレクトリーから実行します。(Red Hat CodeReady Studio などの) 開発プラットフォーム、またはコマンドラインでファイルを実行できます。- (プロジェクトディレクトリーにおける) Maven の実行例 - mvn clean install exec:java -Dexec.mainClass="com.sample.app.RulesTest" - mvn clean install exec:java -Dexec.mainClass="com.sample.app.RulesTest"- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow - (プロジェクトディレクトリーにおける) Java の実行例 - javac -classpath "./$DEPENDENCIES/*:." RulesTest.java java -classpath "./$DEPENDENCIES/*:." RulesTest - javac -classpath "./$DEPENDENCIES/*:." RulesTest.java java -classpath "./$DEPENDENCIES/*:." RulesTest- Copy to Clipboard Copied! - Toggle word wrap Toggle overflow 
- コマンドラインおよびサーバーログで、ルール実行のステータスを確認します。ルールが期待通りに実行しない場合は、プロジェクトに設定したルールと、メインのクラス設定を確認して、提供されるデータの妥当性を確認します。