<< 目次を表示 >> ページ位置: その他の記法のモデリング > DMN > DMNとBPSimの連携シミュレーション |
DMNの強みは、意思決定要求図を介してビジネス要求を記述し、複雑なロジックをデシジョンテーブル、変数と式などの多目的な表現にカプセル化できることです。
一方、BPMNの強みは、タスクとイベントのシーケンスフローを使ってビジネスプロセスを記述したり、メッセージフローを使ってプロセス間のコラボレーションを記述したりできることです。
意思決定要求図は、ビジネスプロセスモデルと意思決定ロジックモデルの間の橋渡しをします。
DMNは、プロセスタスクで実行される意思決定の詳細を指定することによって、ビジネスプロセスモデルを補完する完全な意思決定モデルを提供します。
ここで紹介されている2つの例は、以下から利用可能です。
BPSim表現でDMNモデルを使用できるようにする方法は、以下の2つです。
DMNモデルをBPSimモデルに連携させるプロセスには以下が含まれます。
Javaなどのコンパイル言語のDMNモデル評価
DMNモデルを作成してEnterprise Architectでシミュレーションを行うと、シミュレーションの実行に使用されるコードはJavaScriptになります。この場合には、変数を明示的に入力する必要はありません。変数の型はそれに割り当てられた値から推測されます。
ただし、C++ / C#/ Javaなどの言語の場合、「変数に型がない」というエラーが発生します。
このように型の明示が必要な言語でモジュールを生成するには、モデルで「評価」を実行し、型の明示が必要な変数を見つける必要があります。型の指定方法は次のとおりです。
JavaでDMNコードを作成する
評価機能を使用して変数の型指定の問題を修正した後、DMNシミュレーションサブウィンドウのGenerate Moduleタブを開きます。
ツールバーの「コードの生成」ボタン(言語コンボボックスの横 )をクリックします。この例ではJavaを使用しますが、C++やC#でも同じです。次のアクションが実行されます。
モデルが有効な場合、次のメッセージが返されます。。
コンパイルエラーがある場合は、ツールバーの「コードの生成」ボタンの横にある「ソースコードを表示」ボタンをクリックして、生成されたJavaファイルを開き、問題を手動で修正します。エラーがなくなるまで修正とコンパイルを繰り返します。
コンパイルが失敗する一般的な理由の1つは、ある表現に対して言語によって異なる文法が存在することです。デフォルト値を上書きし、言語特有の値を指定しなければならない場合があります。(式表現のコンテキストメニュー | 表現の編集)
外部使用の前にDMNモジュールをテストする
モデルをJavaコードで生成し、正常にコンパイルしたら、次のことを行います。
- モジュールの正当性をテストする
- 入力を提供する
- デシジョンからの出力値を取得する
「選択した入力をBPMNデータオブジェクトとして出力」を実行すると、入力データはBPMNデータオブジェクトのノートフィールドに生成されます。
実行時の結果は、デバッグウィンドウに表示されます。また、テストモジュールファイルを開き、行にブレークポイントを設定し、DMNモジュールに対して行レベルのデバッグを実行できます。
このウィンドウでDMNモジュールをテストして、DMNモジュールが指定の入力(BPMNデータオブジェクトから)で機能し、出力結果を正しく計算できることを確認することを強くお勧めします。
なお、DMNモジュールパスは、DMNシミュレーション設定の成果物のファイルパスプロパティに保存されます。
ここで、DMNモジュールをBPSimモデルに統合します。
最初のステップは、BPSim成果物とDMN成果物間の使用依存関係を設定することです。
注意: |
BPSim成果物は、必要に応じて複数のDMNモジュールを使用できます。複数のDMNモジュールを使う場合は、このダイアグラムにすべてのDMN成果物を配置し、BPSim成果物から各DMN成果物への依存の接続を描画します。 |
次のヘルプトピックでは、上述の方法を使用した例を2つ紹介しています。
参考: