第24章 Red Hat Decision Manager のランタイムコマンド
Red Hat Decision Manager は、すべてのルールの実行や KIE セッションでのオブジェクトの挿入または取り消しなど、アセット関連の操作のために KIE サーバーに送信できるランタイムコマンドをサポートしています。サポートされるランタイムコマンドのリストは、Red Hat Decision Manager インスタンスの org.drools.core.command.runtime パッケージにあります。
KIE Server REST API では、グローバルの org.drools.core.command.runtime コマンドまたはルール固有の org.drools.core.command.runtime.rule コマンドを http://SERVER:PORT/kie-server/services/rest/server/containers/instances/{containerId} への POST 要求のボディとして使用します。KIE Server REST API の使用に関する詳細情報は、21章KIE コンテナーおよびビジネスアセット用の KIE Server REST API を参照してください。
KIE Server Java クライアント API では、関連する Java クライアントの Java アプリケーションにこれらのコマンドを埋め込むことができます。たとえばルール関連のコマンドでは、RuleServicesClient Java クライアントを埋め込むコマンドに使用します。KIE Server Java クライアント API の使用に関する詳細情報は、22章KIE コンテナーおよびビジネスアセット用の KIE Server Java クライアント API を参照してください。
24.1. Red Hat Decision Manager のランタイムコマンドのサンプル リンクのコピーリンクがクリップボードにコピーされました!
以下は、KIE Server で KIE Server REST API または Java クライアント API のアセット関連演算に使用可能なランタイムコマンドのサンプルです。
-
BatchExecutionCommand -
InsertObjectCommand -
RetractCommand -
ModifyCommand -
GetObjectCommand -
GetObjectsCommand -
InsertElementsCommand -
FireAllRulesCommand -
QueryCommand -
SetGlobalCommand -
GetGlobalCommand
サポートされるランタイムコマンドのリストは、Red Hat Decision Manager インスタンスの org.drools.core.command.runtime パッケージにあります。
このセクションの各コマンドには、KIE Server REST API 用の REST 要求のボディ例 (JSON) と KIE Server Java クライアント API 用の Java クライアントの埋め込みコマンド例が含まれています。Java の例では、name (文字列) と age (整数) のフィールドがあるオブジェクト org.drools.compiler.test.Person を使用しています。
- BatchExecutionCommand
同時に実行する複数のコマンドが含まれています。
Expand 表24.1 コマンドの属性 名前 説明 要件 commands実行されるコマンドリスト
必須
lookupコマンドの実行対象である KIE セッション ID を設定します。ステートレス KIE セッションの場合、この属性は必須です。ステートフル KIE セッションの場合この属性は任意で、指定されていないとデフォルトの KIE セッションが使用されます。
ステートレス KIE セッションでは必須、ステートフル KIE セッションでは任意
注記KIE セッションの ID は、Red Hat Decision Manager プロジェクトの
kmodule.xmlファイルに含まれます。Business Central で KIE セッション ID を表示するか追加して、lookupコマンド属性と併用するには、Business Central の関連のプロジェクトに移動し、プロジェクトの SettingsKIE bases KIE sessions に移動します。KIE ベースが存在しない場合は、Add KIE base KIE sessions の順にクリックして、新規の KIE ベースと KIE セッションを定義します。 JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
InsertObjectCommand insertCommand = new InsertObjectCommand(new Person("john", 25)); FireAllRulesCommand fireCommand = new FireAllRulesCommand(); BatchExecutionCommand batch = new BatchExecutionCommandImpl(Arrays.asList(insertCommand, fireCommand), "ksession1");InsertObjectCommand insertCommand = new InsertObjectCommand(new Person("john", 25)); FireAllRulesCommand fireCommand = new FireAllRulesCommand(); BatchExecutionCommand batch = new BatchExecutionCommandImpl(Arrays.asList(insertCommand, fireCommand), "ksession1");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - InsertObjectCommand
KIE セッションにオブジェクトを挿入します。
Expand 表24.2 コマンドの属性 名前 説明 要件 object挿入するオブジェクト
必須
out-identifierオブジェクト挿入から作成され、実行結果に追加される
FactHandleの ID任意
return-object実行結果にオブジェクトを返す必要があるかどうかを決定するブール値 (デフォルト値:
true)任意
entry-point挿入のエントリーポイント
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
Command insertObjectCommand = CommandFactory.newInsert(new Person("john", 25), "john", false, null); ksession.execute(insertObjectCommand);Command insertObjectCommand = CommandFactory.newInsert(new Person("john", 25), "john", false, null); ksession.execute(insertObjectCommand);Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - RetractCommand
KIE セッションからオブジェクトを取り消します。
Expand 表24.3 コマンドの属性 名前 説明 要件 fact-handle取り消すオブジェクトに関連付けられた
FactHandle必須
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの使用例:
FactHandleFromStringRetractCommand retractCommand = new RetractCommand(); retractCommand.setFactHandleFromString("123:234:345:456:567");RetractCommand retractCommand = new RetractCommand(); retractCommand.setFactHandleFromString("123:234:345:456:567");Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの使用例: 挿入されたオブジェクトから
FactHandleの使用RetractCommand retractCommand = new RetractCommand(factHandle);
RetractCommand retractCommand = new RetractCommand(factHandle);Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - ModifyCommand
KIE セッションに以前に挿入されたオブジェクトを修正します。
Expand 表24.4 コマンドの属性 名前 説明 要件 fact-handle修正するオブジェクトに関連付けられた
FactHandle必須
settersオブジェクト修正のセッターリスト
必須
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - GetObjectCommand
KIE セッションからオブジェクトを取得します。
Expand 表24.5 コマンドの属性 名前 説明 要件 fact-handle取得するオブジェクトに関連付けられた
FactHandle必須
out-identifierオブジェクト挿入から作成され、実行結果に追加される
FactHandleの ID任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
GetObjectCommand getObjectCommand = new GetObjectCommand(); getObjectCommand.setFactHandleFromString("123:234:345:456:567"); getObjectCommand.setOutIdentifier("john");GetObjectCommand getObjectCommand = new GetObjectCommand(); getObjectCommand.setFactHandleFromString("123:234:345:456:567"); getObjectCommand.setOutIdentifier("john");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - GetObjectsCommand
KIE セッションからすべてのオブジェクトをコレクションとして取得します。
Expand 表24.6 コマンドの属性 名前 説明 要件 object-filterKIE セッションから返されるオブジェクト用のフィルター
任意
out-identifier実行結果に使用する識別子
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
GetObjectsCommand getObjectsCommand = new GetObjectsCommand(); getObjectsCommand.setOutIdentifier("objects");GetObjectsCommand getObjectsCommand = new GetObjectsCommand(); getObjectsCommand.setOutIdentifier("objects");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - InsertElementsCommand
KIE セッションにオブジェクトリストを挿入します。
Expand 表24.7 コマンドの属性 名前 説明 要件 objectsKIE セッションに挿入するオブジェクトリスト
必須
out-identifierオブジェクト挿入から作成され、実行結果に追加される
FactHandleの ID任意
return-object実行結果にオブジェクトを返す必要があるかどうかを決定するブール値。デフォルト値は
trueです。任意
entry-point挿入のエントリーポイント
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
List<Object> objects = new ArrayList<Object>(); objects.add(new Person("john", 25)); objects.add(new Person("sarah", 35)); Command insertElementsCommand = CommandFactory.newInsertElements(objects);List<Object> objects = new ArrayList<Object>(); objects.add(new Person("john", 25)); objects.add(new Person("sarah", 35)); Command insertElementsCommand = CommandFactory.newInsertElements(objects);Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - FireAllRulesCommand
KIE セッションですべてのルールを実行します。
Expand 表24.8 コマンドの属性 名前 説明 要件 max実行するルールの最大数。デフォルト値は
-1で、実行に制限を課しません。任意
out-identifier実行結果で、使用されたルール数の取得に使用される ID。
任意
agenda-filterルール実行に使用するアジェンダフィルター。
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
FireAllRulesCommand fireAllRulesCommand = new FireAllRulesCommand(); fireAllRulesCommand.setMax(10); fireAllRulesCommand.setOutIdentifier("firedActivations");FireAllRulesCommand fireAllRulesCommand = new FireAllRulesCommand(); fireAllRulesCommand.setMax(10); fireAllRulesCommand.setOutIdentifier("firedActivations");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - QueryCommand
KIE ベースで定義されたクエリーを実行します。
Expand 表24.9 コマンドの属性 名前 説明 要件 nameクエリー名。
必須
out-identifierクエリー結果の ID。クエリー結果を実行結果に追加する際に、この ID を使用します。
任意
argumentsクエリーパラメーターとして渡されるオブジェクトリスト。
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
QueryCommand queryCommand = new QueryCommand(); queryCommand.setName("persons"); queryCommand.setOutIdentifier("persons");QueryCommand queryCommand = new QueryCommand(); queryCommand.setName("persons"); queryCommand.setOutIdentifier("persons");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - SetGlobalCommand
オブジェクトをグローバルステートに設定します。
Expand 表24.10 コマンドの属性 名前 説明 要件 identifierKIE ベースで定義されるグローバル変数の ID
必須
objectグローバル変数に設定されるオブジェクト
任意
out設定したグローバル変数を実行結果から除外するブール値
任意
out-identifierグローバル実行結果の ID
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
SetGlobalCommand setGlobalCommand = new SetGlobalCommand(); setGlobalCommand.setIdentifier("helper"); setGlobalCommand.setObject(new Person("kyle", 30)); setGlobalCommand.setOut(true); setGlobalCommand.setOutIdentifier("output");SetGlobalCommand setGlobalCommand = new SetGlobalCommand(); setGlobalCommand.setIdentifier("helper"); setGlobalCommand.setObject(new Person("kyle", 30)); setGlobalCommand.setOut(true); setGlobalCommand.setOutIdentifier("output");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - GetGlobalCommand
以前に定義したグローバルオブジェクトを取得します。
Expand 表24.11 コマンドの属性 名前 説明 要件 identifierKIE ベースで定義されるグローバル変数の ID
必須
out-identifier実行結果で使用される ID
任意
JSON リクエストボディの例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Java コマンドの例
GetGlobalCommand getGlobalCommand = new GetGlobalCommand(); getGlobalCommand.setIdentifier("helper"); getGlobalCommand.setOutIdentifier("helperOutput");GetGlobalCommand getGlobalCommand = new GetGlobalCommand(); getGlobalCommand.setIdentifier("helper"); getGlobalCommand.setOutIdentifier("helperOutput");Copy to Clipboard Copied! Toggle word wrap Toggle overflow サーバーの応答例 (JSON)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow