6.2. Business Central での DMN ボックス式のカスタムデータ型の作成

Business Central の DMN のボックス式では、データ型により、ボックス式の関連のテーブル、列、またはフィールド内で使用するデータの構造を決定します。デフォルトの DMN データ型 (文字列、数字、ブール値など) を使用するか、独自のデータ型を作成して、ボックス式の値に実装する新たなフィールドや制限を指定することもできます。

ボックス式のカスタムのデータ型として、単純なデータ型または構造化されたデータ型のいずれかを作成できます。

  • 単純な データ型では、名前とタイプの割当のみを指定できます。例: Age (number)
  • 構造化された データ型には、親データ型に関連する複数のフィールドが含まれます。例: Name (string)Age (number)Email (string) のフィールドが含まれる単一の型 Person

前提条件

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

手順

  1. Business Central で MenuDesignProjects に移動して、プロジェクト名をクリックし、変更する DMN ファイルを選択します。
  2. DMN デザイナーのキャンバスで、データ型を定義するデシジョンノードまたはビジネスナレッジモデルを選択し、Edit アイコンをクリックして DMN ボックス式デザイナーを開きます。
  3. ボックス式が定義されていないデシジョンノードの場合は、定義されていないテーブルをクリックし、ボックスリテラル式、ボックスコンテキスト式、デシジョンテーブル、またはその他の DMN ボックスコンテキスト式など、使用するボックス式のタイプを選択します。

    図6.24 デシジョンノードの論理タイプの選択

    dmn decision boxed expression options
  4. テーブルヘッダのセルまたは、(ボックス式のタイプに合わせて) データ型を定義するパラメーターフィールドをクリックし、Manage をクリックして、カスタムのデータ型を作成する Data Types ページに移動します。

    図6.25 列のヘッダー値のデータ型管理

    dmn manage data types

    DMN デザイナーの右上隅の Properties アイコンを選択して、指定のデシジョンノードまたはビジネスナレッジモデルノードのカスタムデータ型を設定して管理することも可能です。

    図6.26 意思決定要件 (DRD) プロパティーでのデータ型の管理

    dmn manage data types1a

    ボックス式で指定のセルに定義するデータ型により、ボックス式の関連のテーブル、列、フィールド内で使用するデータの構造を決定します。

    この例では、DMN デシジョンテーブルの出力列 クレジットスコア評価 は、申請者のクレジットスコアをもとにカスタムのクレジットスコア評価を定義します。

  5. Data Types ページで、New Data Type をクリックして新規データ型を追加するか、Import Data Object をクリックして、使用するプロジェクトから既存のデータオブジェクトを DMN データ型としてインポートします。

    プロジェクトから DMN データ型としてデータオブジェクトをインポートしてから、そのオブジェクトを更新した場合は、DMN データ型としてデータオブジェクトを再インポートして DMN モデルに変更を適用する必要があります。

    この例では、New Data Type をクリックし、Credit_Score_Rating のデータ型を string で作成します。

    図6.27 新しいデータ型の追加

    dmn custom data type add

    データ型がアイテムの一覧を必要とする場合は、List 設定を有効にします。

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

    • "Excellent"
    • "Good"
    • "Fair"
    • "Poor"
    • "Bad"

    図6.28 新しいデータ型への制約の追加

    dmn custom data type constraints

    データ型の制約の順序を変更するには、必要に応じて、制約の行の左端をクリックしてその行をドラッグします。

    図6.29 制約をドラッグして制約順序を変更

    dmn custom data type constraints drag

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

  7. OK をクリックして制約を保存し、データ型の右側のチェックマークをクリックしてデータ型を保存します。
  8. Credit Score Rating デシジョンテーブルに戻り、Credit Score Rating 列ヘッダーをクリックして、保存したデータ型をこの新規カスタムデータ型に設定し、指定した評価制約で、対象の列のルール値を定義します。

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

    dmn decision table example1a

    シナリオの DMN デシジョンモデルで、Credit Score Rating デシジョンが、以下の Loan Prequalification デシジョンに流れ、このデシジョンではカスタムのデータ型が必要です。

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

    dmn manage data types blank
  9. この例をそのまま使用し、Data Types ウィンドウに戻り、New Data Type をクリックして、Loan_Qualification データ型を制約なしの Structure として作成します。

    新しい構造化データ型を保存すると、最初のサブフィールドが表示され、この親データ型で、ネスト化されたデータフィールドの定義を開始できます。デシジョンテーブル内にネスト化された列ヘッダー、コンテキストまたは関数式でネスト化されたパラメーターなど、ボックス式の構造化された親データ型と関連するこれらのサブフィールドを使用できます。

    追加のサブフィールドについては Loan_Qualification のデータ型の横にある追加のアイコンをクリックします。

    図6.32 新しい構造化データ型へのネスト化フィールドの追加

    dmn manage data types structured
  10. この例では、構造化された Loan_Qualification データ型に、"Qualified""Not Qualified" の列挙制約がある Qualification フィールドと、制約のない Reason フィールドを追加します。また、"Sufficient""Insufficient" の列挙制約がある、単純なデータ型 Back_End_RatioFront_End_Ratio を追加します。

    作成する各データ型の右側にあるチェックマークをクリックして変更を保存します。

    図6.33 ネスト化されたデータ型への制約の追加

    dmn manage data types structured2

    データ型の順序やネスト化を変更するには、必要に応じて、データ型の行の左端をクリックしてその行をドラッグします。

    図6.34 データ型をドラッグしてデータ型の順番やネスト化を変更

    dmn manage data types structured2 drag
  11. デシジョンテーブルに戻り、列ごとに、列ヘッダーセルをクリックし、対応する新規のカスタムデータ型に、このデータ型を設定して、(該当する場合には) 指定した制約で必要に応じて列のルール値を定義します。

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

    dmn decision table example3

デシジョンテーブル以外のボックス式タイプの場合は、ボックス式のテーブルを移動して、必要に応じてカスタムのデータ型を定義するのと同様に、これらのガイドラインに従うようにしてください。

たとえば、以下のボックス関数式はカスタムの tCandidatetProfile の構造化データ型を使用して、データを関連付けてオンライン出会い系でのデート相手としての適合性を判断します。

図6.36 オンライン出会い系でデート相手としての適合性に使用するボックス関数式

dmn manage data types structured3

図6.37 オンライン出会い系でデート相手としての適合性に使用するカスタムデータ型の定義

dmn manage data types structured3a

図6.38 オンライン出会い系でデート相手としての適合性に使用するカスタムデータ型を含むパラメーター定義

dmn manage data types structured3b