7.2. KIE Server Java クライアント API を使用した DMN サービスの実行
KIE Server Java クライアント API は、KIE Server の REST または JMS インターフェイスを通してリモートの DMN サービスを呼び出す軽量なアプローチを提供します。これにより、KIE ベースと相互に作用するのに必要なランタイムの依存関係の数が減ります。これを有効にして適切なペースで個別に相互作用するようにし、意思決定の定義から呼び出しコードを切り離すと、柔軟性が上がります。
KIE Server Java クライアント API の詳細は、KIE API を使用した Red Hat Process Automation Manager の操作 を参照してください。
前提条件
-
KIE Server がインストールされ、設定されている (
kie-serverロールが割り当てられているユーザーの既知のユーザー名と認証情報を含む)。インストールオプションは、Red Hat Process Automation Manager インストールの計画 を参照してください。 KJAR アーティファクトとして DMN プロジェクトをビルドして、KIE Server にデプロイしておく。
mvn clean install
mvn clean installCopy to Clipboard Copied! Toggle word wrap Toggle overflow プロジェクトのパッケージ化およびデプロイメント、および実行可能モデルに関する詳細は、Red Hat Process Automation Manager プロジェクトのパッケージ化およびデプロイ を参照してください。
- KIE コンテナーの ID に DMN モデルを含んでいる。1 つ以上のモデルが存在する場合は、そのモデルの名前空間およびモデル名が必要です。
手順
クライアントアプリケーションで、Java プロジェクトの関連クラスパスに以下の依存関係を追加します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow <version>は、プロジェクトで現在使用されている Red Hat Process Automation Manager の Maven アーティファクトバージョンです (例: 7.67.0.Final-redhat-00024)。注記個別の依存関係に対して 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 RHPAM product and maven library version? を参照してください。
適切な接続情報で
KieServicesClientをインスタンス化します。以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow KIE サーバーの Java クライアントインスタンスで
getServicesClient()メソッドを呼び出すことで、関連する KIE Server に接続した KIE サーバーの Java クライアントからDMNServicesClientを取得します。DMNServicesClient dmnClient = kieServicesClient.getServicesClient(DMNServicesClient.class );
DMNServicesClient dmnClient = kieServicesClient.getServicesClient(DMNServicesClient.class );Copy to Clipboard Copied! Toggle word wrap Toggle overflow これで、
dmnClientが、KIE Server でデシジョンサービスを実行できるようになりました。希望するモデルに対してデシジョンサービスを実行します。
以下に例を示します。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- モデル評価に対する入力として使用する、新しい DMN コンテキストをインスタンス化します。この例では、Age Classification の意思決定を複数回ループさせています。
- 2
- 入力 DMN コンテキストに入力変数を割り当てます。
- 3
- DMN モデルに定義したすべての DMN の意思決定を評価します。
-
$kieContainerIdは、DMN モデルを含む KJAR がデプロイされているコンテナーの ID です。 -
$modelNamespaceは、モデルの名前空間です。 -
$modelNameは、モデルの名前です。
-
- 4
- DMN の結果オブジェクトは、サーバーの応答から利用できます。
この時点では、
dmnResultには、評価した DMN モデルから得た意思決定の結果がすべて含まれます。DMNServicesClientで利用可能なメソッドを使用して、モデルで特定の DMN 意思決定だけを実行することもできます。注記KIE コンテナーに DMN モデルが 1 つだけ含まれる場合は、KIE Server API によってデフォルトで選択されるため、
$modelNamespaceと$modelNameを除外できます。