Red Hat Training

A Red Hat training course is available for Red Hat Decision Manager

第3章 Business Central での DMN モデルの作成および編集

Business Central の新たな DMN デザイナーを使用すると、DMN 意思決定要件ダイアグラム (DRD) を設計し、完全な DMN 意思決定モデルの意思決定論理を定義できます。Red Hat Decision Manager は、適合レベル 3 の DMN 1.2 モデルに対する設計とランタイムの両方のサポートを提供し、FEEL と DMN モデルコンポーネントの機能拡張と修正が含まれており、Red Hat Decision Manager での DMN 設計サービスの実装が最適化されます。Red Hat Decision Manager では、適合レベル 3 の DMN 1.1 に対してランタイムのみサポートしますが、Business Central にインポートした DMN 1.1 はすべて、DMN デザイナーで開かれ、保存時に DMN 1.2 モデルに変換されます。

手順

  1. Business Central で、MenuDesignProjects に移動して、プロジェクト名をクリックします。
  2. Business Central プロジェクトで DMN ファイルを作成するか、インポートします。

    DMN ファイルを作成するには、Add AssetDMN をクリックし、わかりやすい DMN モデル名を入力して、適切な Package を選択してから、Ok をクリックします。

    既存の DMN ファイルをインポートするには、Import Asset をクリックし、DMN モデル名を入力して、適切な Package を選択し、アップロードする DMN ファイルを選択してから Ok をクリックします。

    新しい DMN ファイルが Project ExplorerDMN パネルに表示され、DMN 意思決定要件ダイアグラム (DRD) のキャンバスが表示されます。

    注記

    レイアウトの情報が含まれていない DMN ファイルをインポートした場合は、インポートした意思決定要件ダイアグラム (DRD) は DMN デザイナーで自動的にフォーマットされます。DMN デザイナーで Save をクリックして、DRD レイアウトを保存します。

  3. 左側のツールバーから DMN ノードの 1 つをクリックしてドラッグし、新規またはインポートした DMN 意思決定要件ダイアグラム (DRD) にコンポーネントを追加しはじめてください。

    dmn drag decision node

    以下の DRD コンポーネントを利用できます。

    • デシジョン: DMN ディジョンにこのノードを使用します。1 つ以上の要素が定義したデシジョンロジックをもとに出力を決定するノード。
    • ビジネスナレッジモデル: 1 つまたは複数のデシジョン要素が含まれる再利用可能な関数には、このノードを使用します。同じロジックですが、サブの入力または決定が異なるため、ビジネスナレッジモデルを使用してどの手順に従うかを決定します。
    • ナレッジソース: デシジョンまたはビジネスナレッジモデルを規定する外部の機関、ドキュメント、委員会またはポリシーにはこのノードを使用します。ナレッジソースは、実行可能なビジネスルールではなく、実際の要因への参照となります。
    • 入力データ: デシジョンノードまたはビジネスナレッジモデルで使用する情報にはこのノードを使用します。入力データには通常、融資戦略で使用するローン申請データなど、ビジネスに関連するビジネスレベルのコンセプトまたはオブジェクトが含まれます。
    • テキストの注釈: 入力データノード、デシジョンノード、ビジネスナレッジモデル、またはナレッジソースに関連する注釈にはこのノードを使用します。
    • デシジョンサービス: 呼び出し用にデシジョンサービスとして実装される再利用可能なデシジョンセットを含めるにはこのノードを使用します。デシジョンサービスは、他の DMN モデルで使用し、外部アプリケーションまたは BPMN ビジネスプロセスから呼び出しできます。
  4. DMN デザイナーキャバスで、新規の DRD ノードをダブルクリックして情報ノード名を入力します。
  5. ノードがデシジョンまたはビジネスナレッジモデルの場合は、ノードオプションを表示するノードを選択して Edit アイコンをクリックし、DMN ボックス式を開き、ノードのデシジョンロジックを定義します。

    図3.1 新規デシジョンノードのボックス式の表示

    dmn decision edit

    図3.2 新規ビジネスナレッジモデルのボックス式の表示

    dmn bkm edit

    デフォルトでは、ビジネスナレッジモデルはすべて、リテラル FEEL 式、外部の JAVA または PMML 関数のネスト化されたコンテキスト式、またはあらゆる型のネスト化されたボックス式を含む、ボックス関数式として定義されます。

    デシジョンノードの場合は、定義されていないテーブルをクリックし、ボックスリテラル式、ボックスコンテキスト式、デシジョンテーブル、またはその他の DMN ボックスコンテキスト式など、使用するボックス式のタイプを選択します。

    dmn decision boxed expression options

    ビジネスナレッジモデルの場合は、左上の関数セルをクリックして関数型を選択するか、関数値のセルを右クリックし、Clear を選択して、別の型のボックス式を選択します。

    dmn bkm define
  6. デザインノード (任意の式タイプ) またはビジネスナレッジモデル (関数式) のいずれかに対して選択したボックス式デザイナーで、該当するテーブルセルをクリックして、デシジョンロジックに含めるテーブル名、変数データ型、変数名、値、関数パラメーター、バインディング、FEEL 式を定義します。

    セルを右クリックして、テーブルの行および列の挿入または削除、テーブルのコンテンツの消去など、随時、追加のアクションを実行します。

    以下は、ローン申請者のクレジットスコアの定義範囲をもとに、クレジットスコアの評価を決定するデシジョンノードのデシジョンテーブルの一例です。

    図3.3 クレジットスコア評価のデシジョンノードのデシジョンテーブル

    dmn decision table example1a

    以下は、元金、利子、税金、保険 (PITI) をもとに、リテラル式として住宅ローンの支払額を計算するビジネスナレッジモデルのボックス関数式の一例です。

    図3.4 PITI 計算のビジネスナレッジモデルの関数

    dmn function expression example4
  7. 選択したノードのデシジョンロジックを定義した後に、Back to "<NODE_NAME>" をクリックして DRD ビューに戻ります。
  8. 選択した DRD ノードについては、利用可能な接続オプションを使用して、DRD の次のノードを作成して接続するか、左のツールバーから DRD キャンバスに新規ノードをクリックしてドラッグします。

    ノードタイプで、どの接続オプションがサポートされているかが決まります。たとえば、入力データ ノードは、アプリケーションの接続タイプを使用してデシジョンオード、ナレッジソース、またはテキストの注釈を接続できますが、ナレッジソース ノードは、どの DRD 要素にでも接続できます。デシジョン ノードは、別のデシジョンまたはテキスト注釈にだけ接続できます。

    以下の接続タイプは、ノードの種類に応じて利用できます。

    • 情報要件: 入力データノードまたはデシジョンノードから、情報を必要とする別のデシジョンノードに移動するにはこの接続を使用します。
    • ナレッジ要件: ビジネスナレッジモデルからデシジョンロジックを呼び出す別のビジネスナレッジモデルまたはデシジョンノードに移動するにはこの接続を使用します。
    • 認証局の要件: 入力データノードまたはデシジョンノードから従属するナレッジソース、またはナレッジソースからデシジョンノード、ビジネスナレッジモデルまたは別のナレッジソースに移動するにはこの接続を使用します。
    • 関連付け: 入力データノード、デシジョンノード、ビジネスナレッジモデル、またはナレッジソースからテキストアノテーションに移動するにはこの接続を使用します。

    図3.5 クレジットスコアの入力からクレジットスコア評価のデシジョンへの接続

    dmn input connection example
    dmn input connection example2
  9. 継続して、デシジョンモデルの残りの DRD コンポーネントを追加し、定義します。DMN デザイナーで定期的に Save をクリックして作業を保存します。
  10. DRD の全コンポーネントを追加して定義した後に、Save をクリックし、完了した DRD を保存して検証します。

    以下は、ローンの事前審査デシジョンモデルの DRD の一例です。

    図3.6 ローンの事前審査の完全な DRD

    dmn example drd

    以下は、再利用可能なデシジョンサービスを使用した電話対応デシジョンモデルの DRD 例です。

    図3.7 デシジョンサービスを使用した電話対応の完全な DRD

    dmn example drd3

    DMN デシジョンサービスノードでは、一番下のセグメントデシジョンノードはデシジョンサービス外からの入力データを組み込んで、デシジョンサービスノードにある一番上のセグメントの最終地点に行き着きます。デシジョンサービスから返される上位のデシジョンは、後続のデシジョンまたは DMN モデルのビジネスナレッジ要件に実装されます。他の DMN モデル内の DMN デシジョンサービスを再利用し、異なる入力データや外向け接続で、同じデシジョンロジックを適用します。

3.1. Business Central でボックス式を使用した DMN デシジョンロジックの定義

DMN のボックス式は、意思決定要件ダイアグラム (DRD) または意思決定要件グラフ (DRG) でデシジョンノードの基盤ロジックを定義するのに使用するテーブルです。ボックス式には他のボックス式が含まれる場合がありますが、トップレベルのボックス式は単一の DRD アーティファクトのデシジョンロジックに対応します。1 つまたは複数の DRG が含まれる DRD は、DMN デシジョンモデルのフローを表現し、反対にボックス式は個別ノードの実際のデシジョンロジックを定義します。DRD とボックス式は、完全で機能的な DMN デシジョンモデルを形成します。

Business Central で DMN デザイナーを使用して、同梱のボックス式で DRD コンポーネントのデシジョンロジックを定義できます。

前提条件

  • Business Central で DMN ファイルを作成しているか、インポートしている。

手順

  1. Business Central で MenuDesignProjects に移動して、プロジェクト名をクリックし、変更する DMN ファイルを選択します。
  2. DMN デザイナーのキャンバスで、定義するデシジョンノードまたはビジネスナレッジモデルを選択し、Edit アイコンをクリックして DMN ボックス式デザイナーを開きます。

    図3.8 新規デシジョンノードのボックス式の表示

    dmn decision edit

    図3.9 新規ビジネスナレッジモデルのボックス式の表示

    dmn bkm edit

    デフォルトでは、ビジネスナレッジモデルはすべて、リテラル FEEL 式、外部の JAVA または PMML 関数のネスト化されたコンテキスト式、またはあらゆる型のネスト化されたボックス式を含む、ボックス関数式として定義されます。

    デシジョンノードの場合は、定義されていないテーブルをクリックし、ボックスリテラル式、ボックスコンテキスト式、デシジョンテーブル、またはその他の DMN ボックスコンテキスト式など、使用するボックス式のタイプを選択します。

    dmn decision boxed expression options

    ビジネスナレッジモデルの場合は、左上の関数セルをクリックして関数型を選択するか、関数値のセルを右クリックし、Clear を選択して、別の型のボックス式を選択します。

    dmn bkm define
  3. この例では、デシジョンノードを使用して、ボックス式タイプとして デシジョンテーブル を使用します。

    DMN のデシジョンテーブルは、1 つ以上のルールをテーブル形式で視覚的に表します。テーブルの各行はルール 1 つで設定されており、その特定行に対する条件 (入力) と結果 (出力) を定義する列が含まれます。

  4. 入力列のヘッダーをクリックして、入力条件の名前とデータ型を定義します。たとえば、入力列に Credit Score.FICO という名前で、number のデータ型を指定します。この列は、数字のクレジットスコア値または、各種ローン申請者を指定します。
  5. 出力列ヘッダーをクリックして、出力値の名前とデータ型を定義します。たとえば、出力列に Credit Score Rating という名前を指定して、Data Type オプションの横で Manage をクリックし、Data Types ページに移動して、スコア評価を制約として、カスタムのデータ型を作成します。

    dmn manage data types
  6. Data Types ページで、Add をクリックして、string として Credit_Score_Rating のデータ型を作成します。

    dmn custom data type add
  7. Constraints をクリックして、ドロップダウンオプションから Enumeration を選択し、以下の制約を追加します。

    • "Excellent"
    • "Good"
    • "Fair"
    • "Poor"
    • "Bad"
    dmn custom data type constraints

    指定のデータ型の制約タイプと構文要件に関する情報は、Decision Model and Notation specification を参照してください。

  8. Ok をクリックして制約を保存し、Save をクリックしてデータ型を保存します。
  9. Credit Score Rating デシジョンテーブルに戻り、Credit Score Rating 列ヘッダーをクリックして、保存したデータ型をこの新規カスタムデータ型に設定します。
  10. Credit Score.FICO の入力列を使用して、クレジットスコアの値またはクレジットの範囲を定義し、Credit Score Rating 列を使用して、Credit_Score_Rating のデータ型で定義した対応する評価の 1 つを指定します。

    値のセルを右クリックして、行 (ルール) および列 (句) を挿入または削除します。

    図3.10 クレジットスコア評価のデシジョンノードのデシジョンテーブル

    dmn decision table example1a
  11. 全ルールを定義した後に、デシジョンテーブルの左上隅をクリックして、ヒットポリシー組み込みアグリゲーター (COLLECT ヒットポリシーのみ) のルールを定義します。

    ヒットポリシーは、デシジョンテーブルにある複数のルールが指定の入力値とマッチした場合にどのように結果に到達するのかを決定します。組み込みアグリゲーターは、COLLECT ヒットポリシーを使用する場合にどのようにルール値を累積するかを決定します。

    dmn hit policies

    以下のデシジョンテーブルは、より複雑なデシジョンテーブルで、ローン事前審査のデシジョンモデルで終端デシジョンノードとして、申請者のローン適正を決定します。

    図3.11 ローン事前審査のデシジョンテーブル

    dmn decision table example3

デシジョンテーブル以外のボックス式タイプの場合は、ボックス式のテーブルを移動して、デシジョンロジックの変数とパラメーターを定義するのと同様にこれらのガイドラインに従いますが、ボックス式のタイプの要件に従うようにしてください。ボックスリテラル式など、ボックス式の一部では列が 1 つのテーブルの場合や、関数、テキスト、呼び出し式などのボックス式は、他のタイプのボックス式がネスト化された、列が複数あるテーブルの場合もあります。

たとえば、以下のボックスコンテキスト式では、サブコンテキスト式が含まれるフロントエンドの割合計算として表現されている PITI (元金 (Principal)、利子 (Interest)、税金 (Tax)、保険 (Insurance)) をもとに、ローンの申請者が最小限必要とされるローンの支払いをしているかを決定するパラメーターを定義します。

図3.12 フロントエンドクライアント PITI 割合のボックスコンテキスト式

dmn context expression example2

以下のボックス関数式では、ネスト化されたコンテキスト式として定義された関数値を使用し、融資のデシジョンのビジネスナレッジモデルとして、住宅ローンの月額を決定します。

図3.13 ビジネスナレッジモデルのローン計算で使用するボックス関数式

dmn function expression example3

各ボックス式のタイプの例および詳細は、「ボックス式の DMN デシジョンロジック」 を参照してください。