3.2. Business Central での DMN ボックス式のカスタムデータ型の作成
Business Central の DMN のボックス式では、データ型により、ボックス式の関連のテーブル、列、またはフィールド内で使用するデータの構造を決定します。デフォルトの DMN データ型 (文字列、数字、ブール値など) を使用するか、独自のデータ型を作成して、ボックス式の値に実装する新たなフィールドや制限を指定することもできます。
ボックス式のカスタムのデータ型として、単純なデータ型または構造化されたデータ型のいずれかを作成できます。
-
単純な データ型では、名前とタイプの割当のみを指定できます。例:
Age (number) -
構造化された データ型には、親データ型に関連する複数のフィールドが含まれます。例:
Name (string)、Age (number)、Email (string)のフィールドが含まれる単一の型Person
前提条件
- Business Central で DMN ファイルを作成しているか、インポートしている。
手順
-
Business Central で Menu
Design Projects に移動して、プロジェクト名をクリックし、変更する DMN ファイルを選択します。 - DMN デザイナーのキャンバスで、データ型を定義するデシジョンノードまたはビジネスナレッジモデルを選択し、Edit アイコンをクリックして DMN ボックス式デザイナーを開きます。
ボックス式が定義されていないデシジョンノードの場合は、定義されていないテーブルをクリックし、ボックスリテラル式、ボックスコンテキスト式、デシジョンテーブル、またはその他の DMN ボックスコンテキスト式など、使用するボックス式のタイプを選択します。
テーブルヘッダのセルまたは、(ボックス式のタイプに合わせて) データ型を定義するパラメーターフィールドをクリックし、Manage をクリックして、カスタムのデータ型を作成する Data Types ページに移動します。
DMN デザイナーの右上隅の Diagram properties アイコンを選択して、指定のデシジョンノードまたはビジネスナレッジモデルノードのカスタムデータ型を設定して管理することも可能です。
ボックス式で指定のセルに定義するデータ型により、ボックス式の関連のテーブル、列、フィールド内で使用するデータの構造を決定します。
この例では、DMN デシジョンテーブルの出力列 クレジットスコア評価 は、申請者のクレジットスコアをもとにカスタムのクレジットスコア評価を定義します。
Data Types ページで、Add をクリックして、
stringとして Credit_Score_Rating のデータ型を作成します。
データ型がアイテムの一覧を必要とする場合は、List 設定を有効にします。
Constraints をクリックして、ドロップダウンオプションから Enumeration を選択し、以下の制約を追加します。
-
"Excellent" -
"Good" -
"Fair" -
"Poor" -
"Bad"
指定のデータ型の制約タイプと構文要件に関する情報は、Decision Model and Notation specification を参照してください。
-
- Ok をクリックして制約を保存し、Save をクリックしてデータ型を保存します。
Credit Score Rating デシジョンテーブルに戻り、Credit Score Rating 列ヘッダーをクリックして、保存したデータ型をこの新規カスタムデータ型に設定し、指定した評価制約で、対象の列のルール値を定義します。
図3.14 クレジットスコア評価のデシジョンテーブル
シナリオの DMN デシジョンモデルで、Credit Score Rating デシジョンが、以下の Loan Prequalification デシジョンに流れ、このデシジョンではカスタムのデータ型が必要です。
-
この例をそのまま使用し、Data Types ウィンドウに戻り、Add をクリックして、Loan_Qualification データ型を制約なしの
Structureとして作成します。 Loan_Qualification のデータ型の横にある、設定アイコン (3 つの点) を選び、Insert nested field を選択して、この親データ型のサブフィールドを挿入します。
デシジョンテーブル内にネスト化された列ヘッダー、コンテキストまたは関数式でネスト化されたパラメーターなど、ボックス式の構造化された親データ型と関連するこれらのサブフィールドを使用できます。
この例では、構造化された Loan_Qualification データ型に、
"Qualified"と"Not Qualified"の列挙制約がある Qualification フィールドと、制約のない Reason フィールドを追加します。また、"Sufficient"と"Insufficient"の列挙制約がある、単純なデータ型 Back_End_Ratio と Front_End_Ratio を追加します。データ型を作成するたびに、Save をクリックします。
デシジョンテーブルに戻り、列ごとに、列ヘッダーセルをクリックし、対応する新規のカスタムデータ型に、このデータ型を設定して、(該当する場合には) 指定した制約で必要に応じて列のルール値を定義します。
図3.15 ローン事前審査のデシジョンテーブル
デシジョンテーブル以外のボックス式タイプの場合は、ボックス式のテーブルを移動して、必要に応じてカスタムのデータ型を定義するのと同様に、これらのガイドラインに従うようにしてください。
たとえば、以下のボックス関数式はカスタムの tCandidate と tProfile の構造化データ型を使用して、データを関連付けてオンライン出会い系でのデート相手としての適合性を判断します。
図3.16 オンライン出会い系でデート相手としての適合性に使用するボックス関数式
図3.17 オンライン出会い系でデート相手としての適合性に使用するカスタムデータ型の定義
図3.18 オンライン出会い系でデート相手としての適合性に使用するカスタムデータ型を含むパラメーター定義