デシジョンサービス

<< 目次を表示 >>

ページ位置:  その他の記法のモデリング > DMN > DMNでのモデリング >

デシジョンサービス

このトピックの一部は、DMN仕様をそのまま、もしくは変更して使用しています。DMN仕様はこちらから参照できます。

https://www.omg.org/spec/DMN
このサイトには、DMNとその機能について詳しく説明しています。

 

デシジョンサービスは、デシジョンモデルから1つ以上のデシジョンを再利用可能な要素として公開します。公開された要素は、デシジョンモデル内の別のデシジョンによって内部的に呼び出されることもあれば、BPMNプロセスモデルのタスクによって外部的に呼び出されることもあります。

 

必要な入力データと入力デシジョンと共にデシジョンサービスが呼び出されると、公開されたデシジョンの出力を返します。

 

 

デシジョンサービスのインタフェース

 

デシジョンサービスへのインタフェースは以下で構成されます:

 

必要な入力データと入力デシジョンと共にデシジョンサービスが呼び出されると、公開されたデシジョンの出力を返します。

 

 

上の図は、6つのデシジョンと3つの入力データを含むデシジョンモデルを示しています。

 

DecisionService1の場合:

 

Decision1にはDecision2が必要ですが、Decision2はデシジョンサービスの入力ではないため、サービスはDecision2もカプセル化する必要があります。したがって、カプセル化されているデシジョンは{Decision1、Decision2}です。

 

図を見るとDecision6、Decision3、Decision4、InputData3がDecisionService1内のデシジョンに必要ないことは一目瞭然です。InputData2はどうでしょうか。InputData2はDecisionService1に必要なDecision5には必要ですが、実際のところ、DecisionService1には必要ありません。これは、Decision5が入力デシジョンとして定義されているためです。デシジョンサービスの観点では、入力デシジョンに必要なデシジョンまたは入力データは無視されます。

 

DecisionService2の場合:

 

Decision3にはDecision4が必要ですが、Decision4はデシジョンサービスの入力ではないため、サービスはDecision4もカプセル化する必要があります。したがって、カプセル化されているデシジョンは{Decision3、Decision4}です。

 

デシジョンサービスごとに別の図を作成することをお勧めします。このようにして、ダイアグラムには、デシジョンサービスのインタフェース要素とカプセル化されたデシジョンのみが含まれます。関連のない要素は図に表示されません。

 

 

デシジョンサービスのモデリング

デシジョンサービス要素は、ダイアグラムのDMNのツールボックスから作成できます。コンテキストメニューから[Output]と[encapsulated]のパーティション表示を切り替えられます。

 

 

[encapsulated]パーティションは、[Output]パーティションが表示されている場合にのみ表示できます。

 

 

デシジョンと入力データを適切なパーティションに配置したら、コンテキストメニューから「DecisionServiceインタフェースの更新」を実行してモデルを更新する必要があります。

 

 

重要:

DMNシミュレーションを正しく機能させるため、以下の場合は必ずデシジョンサービスのインタフェースを更新してください。

  • デシジョンサービスのパーティションの表示/非表示の切り替え
  • デシジョンサービスにデシジョンを追加
  • デシジョンサービスからデシジョンを削除
  • パーティション間でデシジョンを移動
  • デシジョンサービスへの入力の追加/削除:入力データまたは入力デシジョン

 

 

参考: