第5章 Red Hat Process Automation Manager における DMN サポート

Red Hat Process Automation Manager は、適合レベル 3 で DMN 1.2 モデルの設計およびランタイムをサポートし、適合レベル 3 で DMN 1.1 および 1.3 モデルはランタイムのみサポートします。DMN モデルは、お使いの Red Hat Process Automation Manager デシジョンサービスと複数の方法で統合できます。

  • DMN デザイナーを使用して Business Central で直接 DMN モデルを設計します。
  • Business Central で プロジェクトに DMN ファイルをインポートします (Menu → Design → Projects → Import Asset)。Business Central にインポートした DMN 1.1 および 1.3 モデル (DMN 1.3 機能は含まれません) は、DMN デザイナーで開き、保存時に DMN 1.2 モデルに変換されます。
  • Business Central を使用せずにプロジェクトのナレッジ JAR (KJAR) ファイルの一部として DMN ファイルをパッケージ化します。

次の表は、Red Hat Process Automation Manager の各 DMN バージョンの設計とランタイムサポートをまとめたものです。

表5.1 Red Hat Process Automation Manager における DMN サポート

DMN バージョン

DMN エンジンのサポート

DMN モデラーのサポート

実行

開く

保存

DMN 1.1

grn check

grn check

bk x

DMN 1.2

grn check

grn check

grn check

DMN 1.3

grn check

grn check

bk x

全 DMN 適合レベル 3 の要件に加え、Red Hat Process Automation Manager には FEEL および DMN モデルコンポーネントに機能拡張および修正が含まれており、Red Hat Process Automation Manager での DMN デシジョンサービスの実装体験を最適化します。DMN モデルは、プラットフォームの観点からすると、Red Hat Process Automation Manager プロジェクトに追加したり、DMN デシジョンサービスを起動するために KIE Server にデプロイしたりできるため、DRL ファイルやスプレッドシートのデシジョンテーブルなど、Red Hat Process Automation Manager の他のビジネスアセットとよく似ています。

Red Hat Process Automation Manager プロジェクトのパッケージ化およびデプロイメント方法を使用して外部の DMN ファイルを追加する方法は、Red Hat Process Automation Manager プロジェクトのパッケージ化およびデプロイ を参照してください。

DMN 意思決定サービスのクラウドネイティブ機能の代替として、Kogito マイクロサービスの Red Hat ビルドを使用して、新しい DMN 意思決定サービスを設計できます。DMN サービスを Kogito マイクロサービスの Red Hat ビルドに移行できます。Kogito マイクロサービスの Red Hat ビルドへの移行の詳細は、Kogito マイクロサービスの Red Hat ビルドへの移行 を参照してください。

5.1. Red Hat Process Automation Manager における設定可能な DMN プロパティー

Red Hat Process Automation Manager には、クライアントアプリケーションの KIE Server で DMN モデルを実行する時に設定できる以下の DMN プロパティーが含まれます。これらのプロパティーは、KIE Server にプロジェクトをデプロイする際に、Red Hat Process Automation Manager プロジェクトの kmodule.xml ファイルを使用して設定できます。

org.kie.dmn.strictConformance

このプロパティーを有効にすると、一部の helper 関数や、DMN 1.1 にバックポートされた DMN 1.2 の機能強化など、DMN 規定以外に提供された拡張機能やプロファイルをデフォルトで無効にします。このプロパティーを使用して、DMN Technology Compatibility Kit (TCK) を実行するなど、純粋な DMN 機能だけをサポートするデシジョンエンジンを設定できます。

デフォルト値は false です。

-Dorg.kie.dmn.strictConformance=true
org.kie.dmn.runtime.typecheck

このプロパティーを有効にすると、DRD 要素の入力または出力として、DMN モデルに宣言した型に従う実際の値を検証できるようになります。このプロパティーを使用して、DMN モデルに提供されたデータ、または DMN モデルが生成したデータが、モデルに指定したものに準拠するかどうかを検証できます。

デフォルト値は false です。

-Dorg.kie.dmn.runtime.typecheck=true
org.kie.dmn.decisionservice.coercesingleton

このプロパティーは、デフォルトで、1 つの出力デシジョンを定義するデシジョンサービスの結果を、1 つの出力デシジョン値にします。このプロパティーを無効にすると、出力されたデシジョンを定義するデシジョンサービスの結果を、その意思決定のエントリーを 1 つ持つ context にします。このプロパティーを使用して、プロジェクト要件に従ってデシジョンサービスを調整できます。

デフォルト値: true

-Dorg.kie.dmn.decisionservice.coercesingleton=false
org.kie.dmn.profiles.$PROFILE_NAME

このプロパティーは、Java の完全修飾名で設定された場合に、起動時にデシジョンエンジンに DMN プロファイルを読み込みます。このプロパティーを使用して、DMN 規定とは異なるサポート機能、またはそれ以外のサポート機能を使用する事前定義した DMN プロファイルを実装できます。Signavio DMN モデラーを使用して DMN モデルを作成する場合は、このプロパティーを使用して Signavio DMN プロファイルからお使いの DMN デシジョンサービスに機能を実装します。

-Dorg.kie.dmn.profiles.signavio=org.kie.dmn.signavio.KieDMNSignavioProfile
org.kie.dmn.runtime.listeners.$LISTENER_NAME

Java の完全修飾名で値を指定すると、このプロパティーは起動時に DMN Runtime Listener をデシジョンエンジンに読み込み、登録します。DMN モデルの評価時に複数のイベントを通知するには、このプロパティーを使用して DMN リスナーを登録してください。

KIE Server にプロジェクトをデプロイする際にこのプロパティーを設定するには、プロジェクトの kmodule.xml ファイルでこのプロパティーを変更します。このアプローチは、リスナーがプロジェクトに固有であり、KIE Server でデプロイされたプロジェクトにのみその設定を適用する必要がある場合に役立ちます。

<kmodule xmlns="http://www.drools.org/xsd/kmodule">
  <configuration>
    <property key="org.kie.dmn.runtime.listeners.mylistener" value="org.acme.MyDMNListener"/>
  </configuration>
</kmodule>

Red Hat Process Automation Manager 環境に対してこのプロパティーをグローバルに設定するには、コマンドターミナルまたはその他のグローバルアプリケーション設定メカニズムを使用してこのプロパティーを変更します。このアプローチは、デシジョンエンジンが Java アプリケーションの一部として埋め込まれた場合に便利です。

-Dorg.kie.dmn.runtime.listeners.mylistener=org.acme.MyDMNListener
org.kie.dmn.compiler.execmodel

このプロパティーが有効な場合には、ランタイムに実行可能なルールモデルに DMN デシジョンテーブルロジックをコンパイルできます。このプロパティーを使用して、DMN デシジョンテーブルのロジックをより効率的に評価できます。このプロパティーは、実行可能なモデルのコンパイルがプロジェクトのコンパイル時に実行されなかった場合に有用です。このプロパティーを有効にすると、デシジョンエンジンにより最初の評価時のコンパイル時間が増加してしまいますが、その後のコンパイルがより効率的になります。

デフォルト値は false です。

-Dorg.kie.dmn.compiler.execmodel=true