operational decision manager v8.8 -...

140
1/140 Operational Decision Manager V8.8.0 開発ガイド ~前編~

Upload: others

Post on 23-Sep-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

1/140

Operational Decision Manager V8.8.0

開発ガイド

~前編~

Page 2: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

2/140

目次

目次 .................................................................................................................................................................. 2

1. はじめに.................................................................................................................................................... 5

1.1. 当資料の目的と前提 .......................................................................................................................... 5

1.2. ODM におけるルール開発ツール ...................................................................................................... 7

1.3. ルール・アプリケーション開発を始めるにあたって ........................................................................ 9

1.3.1. ルール・アプリケーションの設計要素 ...................................................................................... 9

1.3.2. ルール・アプリケーション開発の前提成果物 ......................................................................... 10

2. Rule Designer ........................................................................................................................................ 12

2.1. Rule Designer を使用するタイミング ............................................................................................ 12

2.2. ODM で提供するパースペクティブ ................................................................................................ 13

2.2.1. ルール・パースペクティブ ...................................................................................................... 13

ルール・エクスプローラー ビュー ................................................................................................... 15

語彙 ビュー ....................................................................................................................................... 15

ルール・プロジェクト・マップ ビュー ............................................................................................ 16

BOM の更新 ビュー .......................................................................................................................... 17

2.2.2. デバッグ・パースペクティブ .................................................................................................. 18

2.2.3. Java パースペクティブ ........................................................................................................... 19

2.2.4. チーム同期化パースペクティブ ............................................................................................... 20

3. ルール・アプリケーション開発 .............................................................................................................. 21

3.1. 準備 ................................................................................................................................................. 22

3.1.1. XOM の作成............................................................................................................................. 22

3.2. 意思決定サービスのセットアップ ................................................................................................... 23

3.2.1. メイン・ルール・プロジェクトの作成 .................................................................................... 23

3.2.2. ルール・エンジンの選択.......................................................................................................... 26

3.2.3. XOM のインポート .................................................................................................................. 27

3.2.4. BOM の作成 ............................................................................................................................ 29

XOM から BOM エントリーを作成する .............................................................................................. 29

BOM の更新 ........................................................................................................................................ 33

語彙を定義する .................................................................................................................................... 35

用語を編集する .................................................................................................................................... 36

語句を編集する .................................................................................................................................... 37

語句の主語を編集する ......................................................................................................................... 39

BOM のリファクタリング ................................................................................................................... 41

BOM の使用箇所の検索 ...................................................................................................................... 42

3.3. 意思決定操作の定義 ........................................................................................................................ 43

3.3.1. 意思決定操作の追加 ................................................................................................................. 43

3.3.2. 操作マップに移動する ............................................................................................................. 44

Page 3: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

3/140

3.4. シグニチャーの設計 ........................................................................................................................ 46

3.4.1. 変数セットの追加 .................................................................................................................... 46

3.4.2. 変数のバインド ........................................................................................................................ 48

3.5. 調整 ................................................................................................................................................. 50

3.5.1. ルール・パッケージの追加 ...................................................................................................... 50

3.5.2. ルール・フローの追加 ............................................................................................................. 52

ルール・フローの作成 ......................................................................................................................... 52

開始/終了ノードの作成 ..................................................................................................................... 54

ルール・タスクの作成 ......................................................................................................................... 55

アクション・タスクの作成 .................................................................................................................. 58

遷移の作成 ........................................................................................................................................... 59

ルール・フローのレイアウトの修正 ................................................................................................... 61

3.5.3. ルール・フローのバインド ...................................................................................................... 61

3.6. 編成 ................................................................................................................................................. 64

3.6.1. アクション・ルールの追加 ...................................................................................................... 64

アクション・ルールの作成 .................................................................................................................. 64

Intellirule エディターを使用してルールを作成する場合 ................................................................... 65

アクション・ルール・ガイド・エディターを使用してルールを作成する場合 ................................... 68

補足 ..................................................................................................................................................... 69

3.6.2. 意思決定表の追加 .................................................................................................................... 70

意思決定表の作成 ................................................................................................................................ 70

列の定義 .............................................................................................................................................. 71

値の指定 .............................................................................................................................................. 73

行の追加 .............................................................................................................................................. 74

条件列ステートメントの定義 .............................................................................................................. 75

前提条件の定義 .................................................................................................................................... 77

アクション・セルの無効化 .................................................................................................................. 78

3.7. 実行 ................................................................................................................................................. 80

3.7.1. ビルドと実行 ........................................................................................................................... 80

ルール・プロジェクトのビルド ........................................................................................................... 80

ルール・プロジェクトの実行 .............................................................................................................. 81

3.7.2. デバッグ................................................................................................................................... 85

ブレーク・ポイントの設定(アクション・ルール)およびデバッグの実行 ....................................... 85

ブレーク・ポイントの設定(意思決定表)およびデバッグの実行 ..................................................... 89

ブレーク・ポイントの設定(ルール・フロー)およびデバッグの実行 .............................................. 92

3.8. テスト .............................................................................................................................................. 96

3.8.1. プロジェクトのチェック.......................................................................................................... 97

3.8.2. ルール・プロジェクトの同期 .................................................................................................. 99

3.8.3. Decision Center の設定 ......................................................................................................... 101

3.8.4. シナリオ・ファイルの作成 .................................................................................................... 103

Page 4: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

4/140

シナリオ・ファイルの作成 ................................................................................................................ 103

シナリオ・ファイルの編集 ................................................................................................................ 104

3.8.5. テストの実行 ......................................................................................................................... 105

3.9. 配布と統合 .................................................................................................................................... 109

3.9.1. 配布構成の作成 ...................................................................................................................... 109

配布構成の作成 .................................................................................................................................. 109

構成タイプの設定 .............................................................................................................................. 111

意思決定操作の設定 .......................................................................................................................... 111

ルール・セット・バージョン・ポリシーの設定 ................................................................................ 113

ターゲット・サーバーの設定 ............................................................................................................ 113

RuleApp の配布 ................................................................................................................................. 116

3.10. その他 ........................................................................................................................................ 118

3.10.1. プロジェクトのエクスポート ................................................................................................ 118

プロジェクトのエクスポート ............................................................................................................ 118

配布義のエクスポート ....................................................................................................................... 120

3.10.2. プロジェクトのインポート .................................................................................................... 121

プロジェクトのインポート ................................................................................................................ 121

配布サーバーの定義のインポート ..................................................................................................... 123

3.11. ルールの設計・実装上のポイント ............................................................................................. 126

3.11.1. ルールの実装方法の選択肢 .................................................................................................... 126

アクション・ルール .......................................................................................................................... 126

意思決定表 ......................................................................................................................................... 127

意思決定ツリー .................................................................................................................................. 130

3.11.2. ルールの繰り返し実行 ........................................................................................................... 131

3.11.3. XOM の設計・実装上の基本方針 .......................................................................................... 132

3.11.4. XOM で実装したほうがよいロジック ................................................................................... 134

3.11.5. ルール・セット・パラメーターの型定義............................................................................... 136

3.11.6. ルール・フローに関する注意点 ............................................................................................. 137

3.11.7. 例外処理の設計 ...................................................................................................................... 138

4. 参考資料................................................................................................................................................ 140

[1] 製品ページ ................................................................................................................................... 140

[2] IBM Knowledge Center(製品オンライン・マニュアル) ......................................................... 140

[3] 製品の制限や問題について .......................................................................................................... 140

[4] developerWorks ........................................................................................................................... 140

[5] Agile Business Rule Development .............................................................................................. 140

Page 5: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

5/140

1. はじめに

1.1. 当資料の目的と前提

当資料の目的は、IBM Operational Decision Manager V8.8.0(以降 ODM)を利用したルール・

アプリケーション開発を行うために必要な手順、知識をガイドすることです。基本構成として、

開発環境である Rule Designer の機能の紹介、一連のルール・アプリケーションの開発の流れ、

開発したルール・アプリケーションの実行の仕方という 3 つのポイントから説明していきます。

また、各所に実際のルール・アプリケーション開発で躓きがちなポイントを Tips として紹介し

ていきます。

当資料で対象とする読者は以下の通りです。

・ Rule Designer を利用してルール開発を行う方

・ ルール・アプリケーションの呼び出しアプリケーションを設計・開発する方

当資料で前提とするスキルは、以下の通りです。

・ Rule Designer に付属の Getting Started にて ODM や Rule Designer に関する基本的な

用語や操作を学習していること。(4 章の[2] IBM Knowledge Center(製品オンライン・

マニュアル)参照)

・ Eclipse の基本的な知識

・ Java SE および Java EE、Web サービスに関する基本的な知識(開発ガイド後編の前提)

ルール・プロジェクトの形式としては、クラシック・ルール・プロジェクトと意思決定サービ

スがありますが、V8.8.0からは、クラシック・ルール・プロジェクトが非推奨となっているため、

当ガイドでは、意思決定サービスを前提とします。

また、ルールの実行を最適化するため、クラシック・ルール・エンジンまたは意思決定エンジ

ンのいずれかが選択できますが、当ガイドでは、意思決定エンジンを前提とします。

「IBM Knowledge Center - V8.8.0 の新機能」

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.distrib.overview/

shared_whatsnew_topics/con_whats_new.html?lang=ja

「IBM Knowledge Center - 意思決定エンジン」

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.dserver.rules.des

igner.run/executing_decision_topics/con_decision_engine.html?lang=ja

Page 6: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

6/140

クラシック・ルール・プロジェクトと意思決定サービス、クラシック・エンジンと意思決定エ

ンジンとでは、ルール・アプリケーション開発における手順や項目が一部異なります。

クラシック・ルール・プロジェクトとクラシック・ルール・エンジンを前提とした開発につい

ては、以下を参照して下さい。

「developerWorks - ODM アプリケーション開発ガイド: 前編」

http://www.ibm.com/developerworks/jp/websphere/library/decman/odm85_appdev_1/

意思決定サービスとクラシック・ルール・エンジンを前提とした開発を行う場合は、当ガイド

を参照してください。当ガイドの「3.8 テスト」では Decision Center でのテストを前提にして

いますが、クラシック・エンジンの場合は Rule Designer での DVS テストも可能です。

製品について、正式名称と当資料での呼称は、以下の通りです。

正式名称 呼称

IBM Decision Server Decision Server

[同梱] Rule Designer Rule Designer

[同梱] Rule Execution Server Rule Execution Server, RES

IBM Decision Center Decision Center

IBM ODM Decision Validation Service Decision Validation Services, DVS

IBM WebSphere Application Server WAS

IBM Runtime Environment, Java Technology

Edition

JDK

Rule Solutions for Office Rule Solutions for Office, RSO

製品について、当資料で前提とするバージョンは以下の通りです。

製品 バージョン

ODM V8.8.0

Decision Center V8.8.0

WAS V8.5.5

JDK V7.0

Microsoft Office

※Rule Solutions for Office の前提

2013 (Professional, or Enterprise Edition) SP1

Page 7: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

7/140

1.2. ODMにおけるルール開発ツール

ODM は、以下のコンポーネントで構成されます。

・ ルールの開発・メンテナンス環境

Rule Designer

Decision Center

Rule Solutions for Office

・ ルールの実行環境

Rule Execution Server

・ ルールの継続的テスト実行・管理機能

Decision Validation Services

ルール開発・メンテナンス用ツールとして提供している 3 種類の製品・ツールは、それぞれ

想定するユーザーが異なります。各製品・ツールの想定ユーザーは、以下の通りです。

・ ビジネス・ユーザー向け:

Decision Center

Rule Solutions for Office

・ IT ユーザー向け:

Rule Designer

本書では、IT ユーザー向けの Rule Designer を特に取り上げて説明します。

Page 8: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

8/140

Rule Designer を利用して、ルー ル・ベース・アプリケーションのモデリングからコーディ

ング、デバッグ、導入にいたるまでを一つのプラットフォームで行うことができます。

・ アプリケーションのコードとルールの開発を一つの統合開発環境で実施可能

・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

・ ソース・コード管理システムとの連携可能

・ Decision Center との同期が可能

・ ビジネス・オブジェクト・モデル(以下 BOM)開発、シミュレーションやテスト・シナ

リオの作成、プロジェクト・テンプレート、ウィザードを活用し、ルー ル・ベースのア

プリケーション開発を短期間で習得することが可能

Page 9: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

9/140

1.3. ルール・アプリケーション開発を始めるにあたって

ここではルール・アプリケーションを開発する前に必要となる設計要素とそれらがどのような

前提成果物から設計されるかについて簡単に解説します。

1.3.1. ルール・アプリケーションの設計要素

ルール・アプリケーションを開発するに当たって必要となる設計要素について記述します。後

続の 3 章でこれらを実際に作成していきます。

・ ルール・プロジェクト

ルール・アプリケーションを作成する上で基本となる単位で Eclipse のプロジェクトの一

種です。各種ルール成果物、ビジネス・オブジェクト・モデル(BOM)、語彙、実行オブ

ジェクト・モデル(XOM)への参照などを含みます。外部アプリケーションから呼び出

される単位にもなります。(参照:3.2)

・ 実行オブジェクト・モデル(XOM)

ルールが実行される際のオブジェクト・モデルで、アプリケーションのオブジェクトやデ

ータを参照します。Java クラス(Java 実行オブジェクト・モデル)か XML Schema(動

的実行オブジェクト・モデル)で構築されます。(参照:3.1)

・ ビジネス・オブジェクト・モデル(BOM)

ビジネス・ルールのオブジェクト・モデルで、ルール内で使用する用語や振る舞いを定義

します。XOM で定義したフィールドやメソッドと語彙を結びつけることで自然言語的な

語彙を使用してシステム的に実行可能なルールを記述することができます。(参照:3.2)

・ ルール・フロー

ルール実行を制御する方法で、実行するルールとルール間の順序を定義します。ルール間

に呼び出しの依存関係などがある場合はこのフローによって実行順序を制御することが

できます。(参照:3.5)

・ ルール成果物

ビジネス・ルールを記述するもので、アクション・ルール、意思決定表、意思決定ツリー

の 3 種類の実装方法があります。記述するルールは基本単位に洗練しておくことで、ルー

ル間の重複を排除、ビジネス・ルールの一貫性を確保、ルール間のギャップを埋めること

ができます。(参照:3.6)

Page 10: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

10/140

テクニカル・ルール

ルール成果物は広義にはビジネス・ルール以外に、テクニカル・ルールも含まれま

す。テクニカル・ルールは IRL(ILOG ルール言語)という Java に似たルール記述

言語を用いて、プログラム的にルールを記述する方法です。

1.3.2. ルール・アプリケーション開発の前提成果物

上述した設計要素を設計する上で必要となる前提成果物について記述します。すべて充足する

必要はありませんが、作成しない場合には代替する成果物などを準備する必要があります。

・ ユースケースモデル、ユースケース仕様

システム化対象範囲の特定や要件の整理、テスト・シナリオの作成など様々な用途で利用

します。

アクターとシステムとの関係からルール・プロジェクトの作成単位の候補にもなりえます。

・ 論理データモデル

クラス図や ER 図など。XOM や BOM を作成するために利用します。ここでは、振る舞

いを定義することができ、Java 実装の XOM を作りやすいという点からクラス図を利用

します。用語集で整理される語彙との関連の整理も行います。

・ 用語集

ビジネス上の語彙を整理することで、BOM の言語化を体系的に行うことができるように

なります。名詞(データ項目)だけでなく、動詞(振る舞い)についても整理することが

必要です。

・ ルール記述文書

ビジネス・プロセス・モデルやユースケース、業務規定集や既存システムなどから抽出さ

れたビジネス・ルールをまとめたもの。ルール間の依存関係などを整理し、ルール・フロ

ーやルール・パッケージの設計も行う必要があります。

・ アーキテクチャー上の決定

ルール・アプリケーションをどのように呼び出すかを決定します。

・ テスト・シナリオとテストデータ

作成するルール・セットをテストするシナリオとそのシナリオを実現するデータです。繰

り返しテストを行うことで品質を向上させるとともに、ルール開発に先立ってテスト・シ

ナリオを整理することで、ルール仕様の妥当性の確認にもつながります。ここで用意した

Page 11: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

11/140

テストデータなどを実際に使って、作成したルールのテスト実行やデバッグを行う方法は

3.7 章、Decision Validation Service を利用するテストケースの作成方法については 3.8

章を参照してください。

Page 12: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

12/140

2. Rule Designer

2.1. Rule Designerを使用するタイミング

IBM 寄贈の元 Eclipse Foundation から ABRD(Agile Business Rule Development)という

ビジネス・ルールの開発プロセスが発表されています。ABRD の詳細については、参考資料で

紹介の「Agile Business Rule Development」を参照してください。

ABRD の中でビジネス・ルール開発は、以下6つのタスクから構成されると解説されています。

・ Rule Discovery(ルール抽出)

ワークショップなどを通して、ルールを発見します

・ Rule Analysis(ルール分析)

実装にむけ、ルールを分析します

・ Rule Design(ルール設計)

ルール・セット、BOM、プロジェクト構成を定義します

プロトタイプを作成します

・ Rule Authoring(ルール開発)

ルールの開発と単体テストを行います

・ Rule Validation(ルール評価・テスト)

業務エキスパートのフィードバックを得ながら機能テストを行います

・ Rule Deployment(ルールの配置)

本番登録用ルール実行サーバーに配備します

Rule Designer は、ABRD の Rule Design(ルール設計)から使用しはじめ、主に Rule

Authoring(ルール開発)で使用します。

Page 13: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

13/140

2.2. ODMで提供するパースペクティブ

本節では、Rule Designer で提供するパースペクティブを取りあげ、それぞれのパースペクテ

ィブで提供する主なビューを紹介します。

2.2.1. ルール・パースペクティブ

Rule Designer 固有で提供されるパースペクティブです。

このパースペクティブで実施する主な作業は、以下の通りです。

・ ルール・プロジェクトの作成

・ XOM のインポート

・ BOM の作成

・ 意思決定操作の追加

・ 変数セットの作成

・ ルール・フローの作成

・ アクション・ルール、意思決定表、意思決定ツリーの作成

・ クエリーの作成

・ 関数の作成

・ 配布構成の作成

Page 14: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

14/140

ルール・パースペクティブで提供されるビューは以下の通りです。Rule Designer で追加提供

されるビューと、Eclipse で提供されるビューからなります。

以降、Rule Designer で追加提供されるビューについて説明します。

・ ルール・エクスプローラー ビュー

・ 語彙 ビュー

・ ルール・プロジェクト・マップ ビュー

・ Rule Execution Server 接続 ビュー

・ BOM の更新 ビュー

・ DVS プロジェクトの検証 ビュー

・ アウトライン ビュー(Eclipse で提供されるビュー)

・ 問題 ビュー(Eclipse で提供されるビュー)

・ タスク ビュー(Eclipse で提供されるビュー)

・ プロパティ ビュー(Eclipse で提供されるビュー)

ルール・パースペクティブへの表示切り替え

他のパースペクティブが開かれている場合、以下の方法でルール・パースペクティ

ブへの表示切り替えができます。ルール・パースペクティブから他のパースペクテ

ィブへの表意切り換えも同じです。

Rule Designer 右上部の のアイコンをクリックします。

下画面が表示されるので、その中から[ルール]を選択し、[OK]ボタンをクリッ

クします。

Page 15: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

15/140

ルール・エクスプローラー ビュー

ルール・プロジェクトとそれに含まれるルール・アーティファクト(プロジェクト、XOM、

BOM、ルール・パッケージ、ルール・フロー、BAL、意思決定表、意思決定ツリーなど)、Rule

クライアント・プロジェクト、RES 構成プロジェクト、DVS プロジェクトを一覧にて確認する

ことができるビューです。

語彙 ビュー

BOM の定義のクラスの言語化で指定した用語、およびメンバーの言語化で指定したアクショ

ン句、ナビゲーション句を一覧表示にて確認することができます。

語彙の定義、用語や語句の編集などについては「3.2.44 BOM の作成」を参照してください。

Page 16: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

16/140

以下は、BOM として“Borrower”クラスの言語化として用語“借主”を指定した例です。

語彙ビューで“借主”を確認することができます。

ルール・プロジェクト・マップ ビュー

ルール・アプリケーションの設計・開発に関わる一連の作業のナビゲーションを行うビューで

す。意思決定サービスでは、意思決定サービス・マップと操作マップが存在します。意思決定サ

ービスのセットアップ、意思決定操作の定義、シグニチャーの設計・・・と指定されたステップ

を順に追って作業を進めていくことで、ルール・アプリケーションの開発を進めることができま

す。ルール・プロジェクト・マップは、ルール・プロジェクト単位に使用されます。ルール・プ

ロジェクトの作成については、「3.2.1 メイン・ルール・プロジェクトの作成」を参照してくださ

い。「3.2 意思決定サービスのセットアップ」から「3.9 配布と統合」は、このルール・プロジ

ェクト・マップの流れに従い解説します。

<意思決定サービス・マップ>

Page 17: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

17/140

<操作マップ>

BOM の更新 ビュー

マッピング済みの BOM と XOM の間で差異を確認するためのビューです。詳細については、

「3.2.4 BOM の作成」の「BOM の更新」を参照してください。

Page 18: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

18/140

2.2.2. デバッグ・パースペクティブ

Eclipse で提供しているデバッグ機能を、Rule Designer で使用することができます。ルール・

フローや BAL、意思決定表などの処理途中での経過を確認することができます。

下図は、ルール・フローのルール・タスクでの確認の例です。

下図は、BAL での確認の例です。

Page 19: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

19/140

下図は、意思決定表での確認の例です。

2.2.3. Javaパースペクティブ

Eclipse で提供している Java パースペクティブを、Rule Designer で使用することができま

す。Java XOM の開発、RuleApp のクライアント・コードの開発で使用します。

下図は、JavaXOM の開発の画面です。JavaXOM の開発については、「3.1.1 XOM の作成」

を参照してください。

Page 20: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

20/140

2.2.4. チーム同期化パースペクティブ

Eclipse で提供しているチーム同期化パースペクティブを、Rule Designer で使用します。

IT ユーザーで作成した Rule App をビジネス・ユーザーと共有するために Decision Center

に公開することができます。

Page 21: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

21/140

3. ルール・アプリケーション開発

本章では、ルール・プロジェクト・マップの流れ(「意思決定サービスのセットアップ」→「意

思決定操作の定義」→「シグニチャーの設計」→「調整」→「編成」→「配布および統合」)に

沿って、ルール・アプリケーション開発の流れを説明します。また、ルール・プロジェクト・マ

ップで不足している点についても、適宜追加しています。最後に、設計・実装上のポイントを説

明します。

3.1 準備

3.2 意思決定サービスのセットアップ

3.3 意思決定操作の定義

3.4 シグニチャーの設計

3.5 調整

3.6 編成

3.7 実行

3.8 テスト

3.9 配布と統合

3.10 その他

3.11 ルールの設計・実装上のポイント

※ルール・プロジェクト・マップは、ルール・エクスプローラーでルール・プロジェクトを選択

すると表示されます。

<意思決定サービス・マップ>

<操作マップ>

Page 22: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

22/140

3.1. 準備

ルール・プロジェクト・マップには現れていない、事前に行うタスクを説明します。

3.1.1 XOM の作成

3.1.1. XOMの作成

BOM (Business Object Model) の実装となる XOM (eXecution Object Model)を Java で作成

します。

Java プロジェクトを新規作成し、以下のような Java クラスを作成します。

Page 23: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

23/140

3.2. 意思決定サービスのセットアップ

ルール・プロジェクト・マップ「意思決定サービス・マップ」の「意思決定サービスのセット

アップ」におけるタスクを中心に説明します。

3.2.1 メイン・ルール・プロジェクトの作成

3.2.2 ルール・エンジンの選択

3.2.3 XOM のインポート

3.2.4 BOM の作成

3.2.1. メイン・ルール・プロジェクトの作成

ルール・アーティファクト(ルール・フロー、アクション・ルール、意思決定表など)を管理

するため、Eclipse プロジェクトの一種であるルール・プロジェクトを作成します。

ルール・プロジェクト・マップ「意思決定サービス・マップ」で、[意思決定サービスのセッ

トアップ]>[メイン・ルール・プロジェクトの作成]をクリックします。この時点で、[意思

決定サービスのセットアップ]>[XOM のインポート]は有効ではありません。

ルール・プロジェクト・マップ以外からの設定方法

[ファイル]>[新規]>[ルール・プロジェクト]をクリックすると、同じ設定

画面が開きます。

Page 24: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

24/140

[意思決定サービス・ルール・プロジェクト]>[メイン・ルール・プロジェクト]を選択し、

「次へ」をクリックします。

[プロジェクト名]を入力し、[次へ]をクリックします。

Page 25: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

25/140

[終了]をクリックします。

※既存のルール・プロジェクトを参照する場合は、ここで依存関係を設定します。

ルール・エクスプローラーで、ルール・プロジェクトが作成されたことを確認します。

ルール・プロジェクト・マップ「意思決定サービス・マップ」において、[意思決定サービス

のセットアップ]>[XOM のインポート]が有効になります。

Page 26: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

26/140

3.2.2. ルール・エンジンの選択

ルール・プロジェクト・マップには現れていない、「ルール・エンジンの選択」におけるタス

クを説明します。

デフォルトはクラシック・ルール・エンジンのため、意思決定エンジンに変更します。

ルール・プロジェクトを右クリック>[プロパティー]をクリックします。

意思決定サービスにおいてルール・エンジンを設定するルール・プロジェクト

ルール・プロジェクトのルール・エンジンプロパティーを変更すると、そのルール・

プロジェクトが参照するプロジェクトにも適用されます。したがって、意思決定サ

ービスについては、意思決定サービスのメイン・プロジェクトのプロパティーでル

ール・エンジンを選択します。

Page 27: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

27/140

メニューで[ルール・エンジン]を選択し、[意思決定エンジン]にチェックを付けて[OK]

ボタンをクリックします。

3.2.3. XOMのインポート

ルール・プロジェクト(3.2.1 メイン・ルール・プロジェクトの作成)から XOM(3.1.1 XOM

の作成)を参照できるように、XOM をインポートします。

ルール・プロジェクト・マップ「意思決定サービス・マップ」で、[意思決定サービスのセッ

トアップ]>[XOM のインポート]をクリックします。この時点で、[意思決定サービスのセ

ットアップ]>[BOM の作成]は有効ではありません。

Page 28: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

28/140

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[プロパティー]をクリックして、メニュ

ーで[Java 実行オブジェクト・モデル]を選択すると、同じ設定画面が開きます。

XOM として「Java 実行オブジェクト・モデル」を選択し、[OK]をクリックします。

先ほど作成した XOM をチェックし、[OK]をクリックします。

Page 29: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

29/140

ルール・プロジェクト・マップ「意思決定サービス・マップ」において、[意思決定サービス

のセットアップ]>[XOM のインポート]に「(1)」(※この数値は、XOM の数を表します)

が付き、[意思決定サービスのセットアップ]>[BOM の作成]が有効になります。

3.2.4. BOMの作成

XOM から BOM エントリーを作成する

既存の XOM から新規の BOM エントリーを作成します。この手順により、BOM から XOM

へのマッピングが自動的に行われます。

ルール・プロジェクト・マップ「意思決定サービス・マップ」で、[意思決定サービスのセッ

トアップ]>[BOM の作成]をクリックします。

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[新規]>[BOM エントリー]をクリッ

クすると、同じ設定画面が開きます。

Page 30: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

30/140

デフォルトのまま[次へ]をクリックします。必要であれば[名前]を編集します。

XOM エントリーを選択するため、[XOM の参照]をクリックします。

Page 31: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

31/140

「platform:/“XOM プロジェクト名”」を選択して、[OK]をクリックします。

作成する BOM クラスをチェックして、[次へ]をクリックします。

Page 32: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

32/140

言語化の必要なエレメントをチェックして、[終了]をクリックします。

言語化の必要性

言語化しない BOM エレメントは、ビジネス・ルール・アーティファクトでは利用

できません。テクニカル・ルール・アーティファクトでは利用可能です。

また、この時点での定義を、後ほど再定義することもできます。

言語化の変換ルール

言語化された BOM の語彙エレメントは 4 種類あり、XOM との対応は以下の通りで

す。

1.ビジネス用語…XOM のクラス

2.ナビゲーション語句…属性の Getter、戻りの型が non void のメソッド

3.アクション語句…属性の Setter、戻りの型が void のメソッド

4.定数…public final の静的参照

Page 33: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

33/140

ルール・エクスプローラーで、BOM が作成されたことを確認します。

BOM の更新

BOM と XOM のマッピングがされている状態で XOM を変更した場合、XOM の変更を反映

するために BOM を更新します。

ルール・エクスプローラー上のルール・プロジェクトの BOM エントリーを選択、右クリック

すると表示されるメニューから、[BOM の更新]をクリックすることで BOM の更新ビューにマ

ッピング済みの BOM と XOM の間で検出された差異を表示することができます。

Page 34: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

34/140

下の例では、マッピング済みの BOM と XOM にて、XOM に変更を加えた際の画面です。

ビューの上部に差異が確認できた BOM モデルが表示され、ビュー下部に差異をなくするため

のアクションが表示されます。

表示されたアクションの中から、選択したいアクションを選び、[実行して保存]をクリックし

ます。

指定されたアクションが実施され、ビューが更新されます。今回の例では、BOM が更新され

たことを確認することができます。

Page 35: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

35/140

語彙を定義する

ビジネス・ルール・アーティファクトにおいて語彙エレメントを使用するために、BOM エレ

メントを言語化して語彙エレメントを定義します。

(※「XOM から BOM エントリーを作成する」において、言語化していない BOM エレメント

が対象です。)

ルール・エクスプローラーで bom フォルダーの下の BOM エントリーをダブルクリックして、

[この BOM エントリーのエレメントを言語化する]をクリックします。

言語化の必要なクラスをチェックして、[終了]をクリックします。

Page 36: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

36/140

用語を編集する

デフォルトの用語は BOM の名前になっているため、必要があれば用語を編集します。

アウトラインで、対象の BOM クラスを選択します。

[クラスの言語化]>[用語の編集]をクリックします。

「用語の編集」ダイアログで[ラベル]を編集して、[OK]をクリックします。

Page 37: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

37/140

用語が編集されたことを確認します。

[Ctrl]+[S]で変更を保存します。

語句を編集する

デフォルトの語句は以下のような定型文になっているため、必要があれば語句を編集します。

- ナビゲーション語句… {BOM クラス名} の {BOM メンバー名}

- アクション語句… {BOM クラス名} の ”BOM メンバー名” を {BOM メンバー名} とする

※編集の対象は、プレースホルダー{ } 以外の語句。

アウトラインで、対象の BOM メンバーを選択します。

Page 38: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

38/140

[メンバーの言語化]>[テンプレート]で、語句(ここでは loan to value)を直接編集し

ます。

語句が編集されたことを確認します。

[Ctrl]+[S]で変更を保存します。

Page 39: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

39/140

語句の主語を編集する

デフォルトの語句の主語は BOM メンバーの名前になっているため、必要があれば語句の主語

を編集します。

アウトラインで、対象の BOM メンバーを選択します。

語句の主語のプレースホルダー(ここでは{loan to value})を編集するために、[メンバーの

言語化]>[語句で使用されている主語を編集する]をクリックします。

プレースホルダーの直接編集はエラー

プレースホルダー{ } の中を直接編集するとエラーになるので、[語句で使用されて

いる主語を編集する]をクリックして編集してください。

Page 40: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

40/140

「用語の編集」ダイアログで[ラベル]を編集して、[OK]をクリックします。

語句の主語が編集されたことを確認します。

[Ctrl]+[S]で変更を保存します。

用語と語句

BOM クラスを言語化したものは「用語」、BOM メンバーを言語化したものは「語

句」、語句の中で使用されている主語は「用語」です。

XOM では、クラスと属性が「用語」に対応し、メソッドが「語句」に対応します。

Page 41: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

41/140

BOM のリファクタリング

後述するアクション・ルールや意思決定表を作成した後に BOM エレメントの言語化を修正す

ると、アクション・ルールや意思決定表への影響を反映するために、リファクタリングをします。

BOM エレメントの言語化を修正し、その BOM エレメントがアクション・ルールで使用され

ている場合は、「この言語化を変更すると、ビジネス・ルールに影響を与える可能性があります。」

が表示されます。

[Ctrl]+[S]で保存しようとすると、[語彙のリファクタリング]が表示されます。リファ

クタリング対象のアクション・ルールをチェックして、[はい]をクリックします。

Page 42: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

42/140

BOM の使用箇所の検索

語彙ビューで用語、アクション句、ナビゲーション句のいずれかを指定し、右クリックすると

[使用法の検索]が表示されます。

[使用法の検索]をクリックすると、“検索”ビューが表示され、指定した用語、アクション句、

ナビゲーション句が使用されている BAL、意思決定表、意思決定ツリーの一覧が表示されます。

Page 43: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

43/140

3.3. 意思決定操作の定義

意思決定サービスでは、ルール・セットの内容およびパラメーターを定義するために必要なす

べての設定を、意思決定操作に組み込みます。

ルール・プロジェクト・マップの「意思決定サービス・マップ」の「意思決定操作の定義」に

おけるタスクを中心に説明します。

3.3.1 意思決定操作の追加

3.3.2 操作マップに移動する

3.3.1. 意思決定操作の追加

ルール・プロジェクト・マップの「意思決定サービス・マップ」で、[意思決定操作の定義]

>[意思決定操作の追加]をクリックします。

[名前]を入力し、[次へ]をクリックします。

Page 44: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

44/140

ルール・プロジェクトを選択し、[終了]をクリックします。

ルール・エクスプローラーで、意思決定操作が作成されたことを確認します。

3.3.2. 操作マップに移動する

ルール・プロジェクト・マップの「意思決定サービス・マップ」で、[意思決定操作の定義]

>[操作マップに移動する]をクリックします。

Page 45: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

45/140

[<意思決定操作名>.dop]を選択し、[OK]をクリックします。

ルール・プロジェクト・マップに、意思決定操作の操作マップが開きます。

Page 46: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

46/140

3.4. シグニチャーの設計

ルール・プロジェクト・マップ「操作マップ」の「シグニチャーの設計」におけるタスクを中

心に説明します。

3.4.1 変数セットの追加

3.4.2 変数のバインド

3.4.1. 変数セットの追加

ルール・プロジェクト・マップ「操作マップ」で、[シグニチャーの設計]>[変数セットの

追加]をクリックします。

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[新規]>[変数セット]をクリックする

と、同じ設定画面が開きます。

[名前]を入力し、[終了]をクリックします。

Page 47: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

47/140

ルール・エクスプローラーで、変数セットが作成され、変数セット・エディターが開いたこと

を確認します。

変数セット・エディターで、[追加]をクリックします。

[名前]、[タイプ]、[言語化]を入力・選択します。

[Ctrl]+[S]で保存し、変数セット・エディターを閉じます。

Page 48: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

48/140

3.4.2. 変数のバインド

ルール・セットとその呼び出しアプリケーションの間でデータをやり取りするために、ルー

ル・セットのパラメーターを定義します。

ルール・プロジェクト・マップ「操作マップ」で、[シグニチャーの設計]>[変数のバイン

ド]をクリックします。

意思決定操作シグニチャー・エディターの「適格変数」部分で、変数セットを展開します。

Page 49: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

49/140

各ルール・セット変数を、パラメーターの方向に応じて、「入力パラメーター」、「入出力パラ

メーター」、「出力パラメーター」にドラッグします。

[Ctrl]+[S]で保存し、意思決定操作エディターを閉じます。

ルール・セット・パラメーターの名前

ルール・セット・パラメーターの名前は、ルール・セットの呼び出し時に利用され

ます。

ルール・セット・パラメーターの方向

IN…ルール・セットの入力パラメーター

OUT…ルール・セットの出力パラメーター

IN_OUT…ルール・セットの入力パラメーターかつ出力パラメーター

ルール・セット・パラメーターの言語化と BOMクラスの言語化の関係

ルール・セット・パラメーターの言語化…メッセージ・インスタンス名

BOM クラスの言語化…型名

後述するアクション・ルールでの表示例は以下の通りです。

Page 50: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

50/140

3.5. 調整

ルール・プロジェクト・マップ「操作マップ」の「調整」におけるタスクを中心に説明します。

3.5.1 ルール・パッケージの追加

3.5.2 ルール・フローの追加

3.5.3 ルール・フローのバインド

3.5.1. ルール・パッケージの追加

ルール・アーティファクトを論理的な構造でまとめるために、ルール・パッケージを追加しま

す。

ルール・パッケージと処理速度

Rule Designer は、通常、少数の大型パッケージの処理に比べて、小型または中型

のパッケージをより多く処理する方がより効率的です。これは、次のような理由に

よります。

・必要なパッケージのみがロードされるため、類似性の高く同時に起動される

ルールがパッケージにモジュラー化されていると、不要なパッケージがロード

されません。

・ルールの完全修飾名を解決するため、パッケージをナビゲートしてルールを見

つけます。パッケージのツリーがうまく分散されていると、ルールにより速くア

クセスできます。

ルール・プロジェクト・マップ「操作マップ」で、[調整]>[ルール・パッケージの追加]

をクリックします。

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[新規]>[ルール・パッケージ]をクリ

ックすると、同じ設定画面が開きます。

Page 51: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

51/140

[パッケージ]に名前を入力して、[終了]をクリックします。

パッケージを構造化する場合は、[パッケージ]に「親パッケージ名.子パッケージ名」のよう

に、ピリオドを入れます。

Page 52: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

52/140

ルール・エクスプローラーで、ルール・パッケージが作成されたことを確認します。

3.5.2. ルール・フローの追加

ルール・フローの作成

ルールの実行を制御するため、ルール・フローを作成します。ルール・フローは、実行するル

ールとその順序を指定するルール・タスク(後述)について、そのタスクがどのように、いつ、

どの条件で実行されるかを指定します。

ルール・プロジェクト・マップ「操作マップ」で、[調整]>[ルール・フローの追加]をク

リックします。

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[新規]>[ルール・フロー]をクリック

すると、同じ設定画面が開きます。

Page 53: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

53/140

[名前]を入力し、[終了]をクリックします。

ルール・エクスプローラーで、ルール・フローが作成され、ルール・フロー・エディターが開

いたことを確認します。

Page 54: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

54/140

開始/終了ノードの作成

ルール・フローの実行と停止を定義するために、開始ノードと終了ノードを作成します。

左のメニュー・バーにある開始ノードのアイコン を選択し、ルール・フロー・エディター

で配置する場所をクリックします。同様に、と終了ノードのアイコン をそれぞれ選択し、ル

ール・フロー・エディターで配置する場所をそれぞれクリックします。

開始/終了ノードにおけるアクションの追加

開始/終了ノードで、アクションを追加することが出来ます。アクションは、BAL

または ILOG Rule Language(以下 IRL)を使用して記述することが出来ます。以

下は、IRL を使用した例です。

終了ノードのプロパティーで、[最終アクション]>[IRL]を選択し、最終アク

ションを入力します。

Page 55: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

55/140

ルール・タスクの作成

ルール・フローにおいて、実行されるルールやルール・パッケージを指定するノードとして、

ルール・タスクを作成します。

ルール・エクスプローラーのパッケージを選択し、ルール・フロー・エディターにドラック&

ドロップします。

ルール・パッケージ以外でのルール・タスクの作成

ルール・パッケージだけでなく、後ほど作成するアクション・ルールや意思決定表

でも、ルール・タスクを作成することができます。

ルール・エクスプローラーからドラック&ドロップする方法以外に、空のルール・タスクを作

成して、そこにルール・パッケージを追加する方法があります。

左のメニュー・バーにあるルール・タスクのアイコン を選択し、ルール・フロー・エディ

ターで配置する場所をクリックします。

Page 56: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

56/140

ルール・タスクのプロパティーで、[ルール・タスク]>[ID]にルール・タスク名を入力し

ます。

ルール・タスクのプロパティーで、[ルールの選択]>[編集]をクリックします。

ルール・パッケージを選択し、「>」をクリックします。

Page 57: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

57/140

選択したルール・パッケージが追加されたことを確認し、[OK]をクリックします。

ルール・タスクに、選択したルール・パッケージが追加されたことを確認します。

Page 58: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

58/140

アクション・タスクの作成

ルールではないが実行が必要なタスクとして、アクション・タスクを作成します。

左のメニュー・バーにあるアクション・タスクのアイコン を選択し、ルール・フロー・エ

ディターで配置する場所をクリックします。

アクション・タスクのプロパティーで、[アクション・タスク]>[ID]にアクション・タス

ク名を入力します。また、[IRL]を選択し、アクションを入力します。

ルール・セット・パラメーターのインスタンス化

ルール・セット・パラメーターの内、方向が IN と IN_OUT の BOM クラスは、ル

ール・セットの呼び出し側からオブジェクトが渡されるので、ルール・フローの中

でインスタンス化をする必要がありません。一方、方向が OUT の BOM クラスは、

ルール・セットの中で新規に生成するオブジェクトなので、上図のようにルール・

フローの中でインスタンス化する必要があります。

Page 59: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

59/140

遷移の作成

タスクからタスクへのシーケンスを定義するために、遷移を作成します。シーケンス・フロー

に分岐がある場合は、条件を追加します。

左のメニュー・バーにある遷移のアイコン を選択し、ソースとなるタスクをクリックし、

ターゲットとなるタスクをクリックして、タスクを遷移で繋げていきます。

条件が設定されておらずエラーとなっている遷移 を選択します。

Page 60: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

60/140

遷移のプロパティーで、[条件]>[ラベル]に遷移名を入力します。また、[遷移条件に BAL

を使用]を選択し、遷移条件を入力します。

設定した遷移名が表示され、また、もう一方の分岐した遷移名が「それ以外の場合」になって

いることを確認します。

ルール・フローの分岐にビジネス・ルールを含めないための考慮点

「3.11.6 ルール・フローに関する注意点」を参照してください。

Page 61: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

61/140

ルール・フローのレイアウトの修正

上のメニュー・バーにある、すべてのノードのレイアウトのアイコン をクリックすると、

すべてのノードが自動的に整列します。

[Ctrl]+[S]で保存し、ルール・フロー・エディターを閉じます。

3.5.3. ルール・フローのバインド

実行時にルール・フローを使用するために、そのルール・フローを意思決定操作にバインドし

ます。

ルール・プロジェクト・マップ「操作マップ」で、[調整]>[ルール・フローのバインド]

をクリックします。

Page 62: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

62/140

「ルール・フロー」部分で、[メイン・ルール・フローを使用する]を選択し、[ルール・フロ

ーの選択]をクリックします。

ルール・フローを選択し、[OK]をクリックします。

Page 63: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

63/140

メイン・フール・フローが設定されたことを確認します。

[Ctrl]+[S]で保存し、意思決定操作エディターを閉じます。

Page 64: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

64/140

3.6. 編成

ルール・プロジェクト・マップの「操作マップ」の「編成」におけるタスクを中心に説明しま

す。

3.6.1 アクション・ルールの追加

3.6.2 意思決定表の追加

3.6.1. アクション・ルールの追加

アクション・ルールの作成

BAL (Business Action Language)を使用してルールを記述するために、アクション・ルール

を作成します。

ルール・プロジェクト・マップの「操作マップ」で、[編成]>[アクション・ルールの追加]

をクリックします。

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[新規]>[アクション・ルール]をクリ

ックすると、同じ設定画面が開きます。

[パッケージ]と[名前]を入力して、[終了]をクリックします。

Page 65: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

65/140

ルール・エクスプローラーで、アクション・ルールが作成され、Intellirule エディターが開い

たことを確認します。

Intellirule エディターを使用してルールを作成する場合

フリー・フォーマットでアクション・ルールを記述するには、Intellirule エディターを使用し

ます。

ルールの各部(「定義」、「仮定条件」、「その場合」、「それ以外の場合」)を作成するために、「Ctrl」

+「Space」でコンテンツ・アシスト・ボックスを有効にします。ここでは、「仮定条件<条件>」

を選択します。

Page 66: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

66/140

用語または語句を挿入するため、「Ctrl」+「Space」でコンテンツ・アシスト・ボックスを

有効にします。ここでは、用語「’借主’」を選択します。

続いてコンテンツ・アシスト・ボックスが有効になります。ここでは、用語「@の姓」を選択

します。

Page 67: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

67/140

続いてコンテンツ・アシスト・ボックスが有効になります。ここでは、比較条件の語句「は空

である」を選択します。

同様に、コンテンツ・アシスト・ボックスを利用して、アクション・ルールを完成させます。

ルール・エディターのショートカット

Ctrl + Space…コンテンツ・アシスト・ボックス

Ctrl + Shift + Space…ツリー形式のコンテンツ・アシストで、文字検索も可能。

Ctrl + Shift + F…アクション・ルールのフォーマットの自動調整。

Ctrl…アクション・ルール上のリンクから BOM(用語・語句)へ移動。

[Ctrl]+[S]で保存し、アクション・ルールを閉じます。

Page 68: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

68/140

アクション・ルール・ガイド・エディターを使用してルールを作成する場合

定型フォーマットでアクション・ルールを記述するには、アクション・ルール・ガイド・エデ

ィターを使用します。

ルール・エクスプローラーのアクション・ルールを右クリックして、[次を使用して開く]>

[ガイドエディター]をクリックします。

アクション・ルール・ガイド・エディターが開きます。デフォルトで、ルールの各部(「定義」、

「仮定条件」、「その場合」、「それ以外の場合」)が用意されています。

Page 69: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

69/140

ガイドに沿って、アクション・ルールを完成させます。

[Ctrl]+[S]で保存し、アクション・ルールを閉じます。

補足

アクション・ルールを作成する上での補足事項を紹介します。

「IBM Knowledge Center - ルール変数」

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.dcenter.bu.econs

ole/shared_actionrules_topics/con_actionrules_variables_intro.html?lang=ja

「IBM Knowledge Center - 条件の組み合わせ」

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.rules.embedded.

overview/shared_actionrules_topics/con_actionrules_cond_combinations.html?lang=ja

Page 70: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

70/140

3.6.2. 意思決定表の追加

意思決定表の作成

表を使用してルールを記述するために、意思決定表を作成します。

ルール・プロジェクト・マップ「操作マップ」で、[編成]>[意思決定表の追加]をクリッ

クします。

ルール・プロジェクト・マップ以外からの設定方法

ルール・プロジェクトを右クリックして、[新規]>[意思決定表]をクリックする

と、同じ設定画面が開きます。

[パッケージ]と[名前]を入力して、[終了]をクリックします。

Page 71: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

71/140

列の定義

表に含まれる各行のルールに適用される、条件列とアクション列を定義します。条件列は影な

しで左側に表示され、アクション列は影付きで右側に表示されます。ルールが実行されると、特

定の行の条件が満たされる場合、行のアクションが実行されます。

条件列ヘッダーをダブルクリックします。

[テスト]と[タイトル]を入力して、[OK]をクリックします。[テスト]は、「Ctrl」+「Space」

でコンテンツ・アシスト・ボックスを利用します。

Page 72: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

72/140

使用しない条件列を右クリックして、[条件列の削除]をクリックします。

条件列と同様に、アクション列ヘッダーをダブルクリックします。

[アクション]と[タイトル]を入力して、[OK]をクリックします。[アクション]は、「Ctrl」

+「Space」でコンテンツ・アシスト・ボックスを利用します。

Page 73: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

73/140

条件列とアクション列が完成したことを確認します。条件列は影なしで左側に表示され、アク

ション列は影付きで右側に表示されます。

値の指定

各行のルールを完成するために、各行のセルに値を指定します。

セルをダブルクリックして、値を入力します。

Page 74: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

74/140

行の追加

ルールを追加する場合は、行を追加します。

セルを右クリックして、[追加]>[新しい行を前に挿入]をクリックします。

空白行が追加されたことを確認します。

Page 75: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

75/140

条件列ステートメントの定義

列の定義と異なる条件をセルに適用する場合は、条件列ステートメントを定義します。

セルを右クリックして、[演算子]>[<]をクリックします。

「は<数値>以上<数値>未満である」から「は<未満>である」に変わったことを確認します。

Page 76: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

76/140

セルをダブルクリックして、値を入力します。セルがマージされていることを確認します。

セルのマージの解除

マージされているセルを解除するには、セルを右クリック>[クリア]をクリック

します。

同様にして、意思決定表を完成させます。

[Ctrl]+[S]で保存し、意思決定表を閉じます。

Page 77: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

77/140

前提条件の定義

意思決定表で使用可能な変数を定義する場合や、意思決定表の全体に適用する条件を指定する

場合は、前提条件を定義します。

意思決定表の[全般]タブ>[前提条件]において、「定義」または「仮定条件」を作成する

ために、「Ctrl」+「Space」でコンテンツ・アシスト・ボックスを有効にします。

意思決定表の前提条件における仮定条件

意思決定表の前提条件における仮定条件には、意思決定表のルールを実行する前に

満たす必要のある条件を定義します。前提条件が満たされないと、意思決定表のル

ールは評価されません。

Page 78: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

78/140

前提条件を完成させます。

アクション・セルの無効化

特定の行のアクションを実行しないようにする場合は、アクション・セルを無効化します。

セルを右クリックして、[アクションの有効化/無効化]をクリックします。

Page 79: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

79/140

対象のセルに、アクション無効化のアイコン が付いたことを確認します。

無効化されたアクションと空のアクションの違い

無効化されたアクションと空のアクションは、挙動が異なります。

・無効化されたアクション…アクションが実行されません。

・空のアクション…空の変数でアクションが実行されます。

[Ctrl]+[S]で保存し、意思決定表を閉じます。

Page 80: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

80/140

3.7. 実行

ルール・プロジェクト・マップには現れていない、「実行」におけるタスクを説明します。

3.7.1 ビルドと実行

3.7.2 デバッグ

3.7.1. ビルドと実行

ルール・プロジェクトのビルド

ルール・プロジェクトに含まれる全てのルールをマージするために、ルール・プロジェクトを

ビルドします。ここでは自動ビルドの方法を説明します。

[プロジェクト]>[自動的にビルド]がチェックされていることを確認します。

手動ビルド

手動でビルドをする場合は、メニューの[プロジェクト]において、[自動的にビル

ド]のチェックがされていない状態で、[すべてビルド]や[プロジェクトのビルド]

をクリックします。

[ファイル]>[保存]をクリックして保存すると、自動的にビルドされます。

Page 81: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

81/140

ルール・プロジェクトの実行

ルール・プロジェクトを元にルール・セット・アーカイブを生成し、事前定義済みのルール・

エンジンで実行するために、実行構成を作成します。

[実行]>[実行の構成]をクリックします。

メニューで[意思決定操作]を選択し、新規ボタン をクリックします。

Page 82: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

82/140

[名前]と[意思決定操作]を入力・選択します。

[パラメーター&引数]タブで、パラメーターを選択し、[値の編集]をクリックします。

Page 83: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

83/140

パラメーター値を編集します。ここでは、[関数本体]を選択し、値を編集します。

式値と関数本体

単純な値を設定する場合は「式値」を選択し、複雑な値を設定する場合は「関数本

体」を選択します。上記の例では、クラスの中の複数のパラメーターに値を設定す

る必要があるため、「関数本体」を選択しています。

パラメーターの値の編集を完了させて、[値]列に表示されていることを確認します。

Page 84: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

84/140

[実行]をクリックします。

[コンソール]において、実行結果が出力されていることを確認します。

Page 85: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

85/140

3.7.2. デバッグ

ルール・セットのバグを修正するために、デバッグを実行します。

ブレーク・ポイントの設定(アクション・ルール)およびデバッグの実行

アクション・ルールにブレーク・ポイントを設定し、デバッグを実行する方法を説明します。

ルール・パースペクティブにて、ブレーク・ポイントを設定するアクション・ルールをダブル

クリックして Intellirule エディターを開きます。

アクション行の左のグレーの部分を右クリック>[ブレーク・ポイントの切り替え]をクリッ

クするか、左のグレーの部分をダブルクリックします。

Page 86: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

86/140

ブレーク・ポイント が追加されたことを確認します。

[実行]>[デバッグ構成]をクリックします。

Page 87: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

87/140

[デバッグ]をクリックして、デバッグを実行します。

パースペクティブ切り替えの確認のポップアップにおいて、[はい]をクリックします。

Page 88: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

88/140

設定したブレーク・ポイントで停止していることを確認します。

ブレーク・ポイントの追加

デバッグ実行の途中で、ブレーク・ポイントを追加することも可能です。

ブレーク・ポイントで停止している状態で、ルール・パースペクティブに切り替え、

ブレーク・ポイントを設定します。デバック・パースペクティブにて再開アイコン

をクリックすると、次のブレーク・ポイントで停止します。

Page 89: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

89/140

ブレーク・ポイントの設定(意思決定表)およびデバッグの実行

意思決定表にブレーク・ポイントを設定し、デバッグを実行する方法を説明します。

ルール・パースペクティブにて、ブレーク・ポイントを設定する意思決定表をダブルクリック

して意思決定表を開きます。

アクション列のセルを右クリック>[ブレーク・ポイントの切り替え]をクリックします。

Page 90: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

90/140

ブレーク・ポイント が追加されたことを確認します。

[実行]>[デバッグ構成]をクリックします。

Page 91: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

91/140

[デバッグ]をクリックして、デバッグを実行します。

パースペクティブ切り替えの確認のポップアップにおいて、[はい]をクリックします。

Page 92: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

92/140

設定したブレーク・ポイントで停止していることを確認します。

ブレーク・ポイントの設定(ルール・フロー)およびデバッグの実行

ルール・フローにブレーク・ポイントを設定し、デバッグを実行する方法を説明します。

ルール・パースペクティブにて、ブレーク・ポイントを設定するルール・フローをダブルクリ

ックしてルール・フロー・エディターを開きます。

Page 93: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

93/140

ルール・フローの対象のタスクを選択した状態で右クリックして、[ブレーク・ポイントの切

り替え]をクリックします。

ブレーク・ポイント が追加されたことを確認します。

Page 94: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

94/140

[実行]>[デバッグ構成]をクリックします。

[デバッグ]をクリックして、デバッグを実行します。

Page 95: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

95/140

パースペクティブ切り替えの確認のポップアップにおいて、[はい]をクリックします。

設定したブレーク・ポイントで停止していることを確認します。

Page 96: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

96/140

3.8. テスト

意思決定エンジンを利用したルール・プロジェクトでは、Decision Center 上でルールのテス

トを行います。

3.8.1 プロジェクトのチェック

3.8.2 ルール・プロジェクトの同期

3.8.3 Decision Center の設定

3.8.4 シナリオ・ファイルの作成

3.8.5 テストの実行

クラシック・ルール・エンジンを利用した場合のルールのテスト

クラシック・ルール・エンジンを利用する場合、ルールのテストは Rule Designer の DVS

テスト機能を利用して行うことも可能です。その場合は、下記ガイドの「3.6 テスト」

章を参照してください。

「developerWorks - ODM アプリケーション開発ガイド: 前編」

http://www.ibm.com/developerworks/jp/websphere/library/decman/odm85_appdev_1/

Page 97: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

97/140

3.8.1. プロジェクトのチェック

シナリオ・ファイルの作成に必要な BOM やルール・セット・パラメーターが正しく作成され

ているかどうか検証するために、プロジェクトをチェックします。

ルール・プロジェクトを右クリックして、[Decision Validation Services]>[プロジェクト

のチェック]をクリックします。

次に意思決定操作を選択し、[終了]ボタンをクリックします。

Page 98: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

98/140

検証の結果が下記のようなポップアップで表示されます。

DVS プロジェクトの検証でエラーやワーニングが見つかった場合は、下記のように詳細が表

示されます。ID を元に、エラーおよびワーニングに対する修正を行います。各 ID の内容と解

決方法は、以下のリンク先で確認します。

「IBM Knowledge Center - プロジェクトを検証する」

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.dserver.rules.designer.test

/topics/tsk_validateproject.html?lang=ja

Page 99: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

99/140

3.8.2. ルール・プロジェクトの同期

Decision Center 上でテストを実行するために、ルール・プロジェクトを同期します。

ルール・プロジェクトを右クリックして、[Decision Center]>[接続…]をクリックします。

Decision Center の URL と、ユーザー名、パスワードを入力し、[接続]ボタンをクリックし

ます。

Page 100: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

100/140

Rule Designer と Decision Center との接続に成功すると、[次へ]ボタンが有効になるので

クリックします。

[終了]ボタンをクリックします。

Page 101: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

101/140

3.8.3. Decision Centerの設定

rtsAdministrator 権限を持つユーザーで Decision Center にサインインします。

サインインしたら、[構成]タブに進みます。

[サーバーの管理]をクリックします。

[新規]ボタンをクリックします。

Page 102: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

102/140

URL、およびユーザーID、パスワードを入力し、[OK]ボタンをクリックします。

追加した定義にチェックを入れ、[テスト]ボタンをクリックします。

テストに成功して「サーバー ‘Decision Runner’のテストが成功しました」というメッセージ

が表示されることを確認します。

Page 103: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

103/140

3.8.4. シナリオ・ファイルの作成

シナリオ・ファイルの作成

シナリオに必要な入力データと予想される出力結果を設定するテンプレートを作成するため

に、シナリオ・ファイルを作成します。

Decision Center Business Console へ ロ グ イ ン し 、[ ラ イ ブ ラ リ ー ] タ ブ >

[loanvalidation-rules] >メインブランチ>[テスト]タブへ進みます。

[シナリオ・ファイルを生成]ボタン をクリックします。

Page 104: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

104/140

予想した結果として設定したい BOM クラスをフィールドの一覧から選択します。

画面右上の[ダウンロード]ボタンをクリックします。

シナリオ・ファイルのダウンロードが始まるので、ファイルを保管します。

シナリオ・ファイルの編集

シナリオに必要な入力データと予想される出力結果を設定するために、シナリオ・ファイルを

編集します。

「シナリオ」シートおよびタブ・シート(構造化クラスで生成されたもの)において、シナリ

オを追加します。シナリオ ID には、固有 ID を入力します。

Page 105: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

105/140

シナリオの追加

作成されたテンプレートはシナリオが1つだけ(1 行)です。シナリオを追加する

には、行ごとコピー&ペーストします。

「予想した結果」シートにおいて、各シナリオに対して予想される結果を追加します。シナリ

オ ID には、「シナリオ」シートに対応する ID を入力します。

3.8.5. テストの実行

シナリオ・ファイルを元にテストを実行するために、実行構成を作成して、テストを実行しま

す。

テスト・スイートの画面に戻り、[新規テスト・スイート]ボタン をクリックします。

Page 106: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

106/140

[使用するファイル]欄の[選択…]リンクをクリックし、設定したシナリオ・ファイルをア

ップロードします。

画面右上の[保存して実行]ボタンが有効になるのを確認し、クリックします。

Page 107: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

107/140

[新規バージョンの作成]のポップアップが表示されます。そのまま[新規バージョンの作成]

ボタンをクリックします。

テストが実行されると[テスト・スイートの表示]画面が表示されます。[OK]ボタンをクリ

ックします。

テスト・レポートの一覧が表示されます。レポートのリンクをクリックします。

Page 108: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

108/140

実行レポートが表示されます。テストの結果は、「成功」「失敗」「エラー」の 3 通りです。実

際の結果が予想した結果通りの場合は「成功」、実際の結果が予想した結果と異なる場合は「失

敗」、シナリオが実行できなかった場合は「エラー」となります。

以下のような表示になります。失敗があるシナリオは、メッセージの結果を分析し、ルールま

たはテスト・シナリオを修正します。

Page 109: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

109/140

3.9. 配布と統合

ルール・プロジェクト・マップ「意思決定サービス・マップ」の「配布および統合」における

タスクを中心に説明します。

3.9.1 配布構成の作成

3.9.1. 配布構成の作成

意思決定サービスを配布するための、配布構成を作成します。

配布構成には、以下の情報が含まれます。

・構成タイプ: 実稼働または非実稼働

・RuleApp 名

・配布されるルールを使用する意思決定操作

・ターゲット・サーバー

・ルール・セット・バージョン・ポリシー

配布構成の作成

配布構成を作成します。

ルール・プロジェクト・マップ「意思決定サービス・マップ」で、[配布および統合]>[配

布構成の作成]をクリックします。この時点で、[配布および統合]>[RuleApp の配布]は有

効ではありません。

ルール・プロジェクト・マップ以外からの設定方法

[ファイル]>[新規]>[その他]をクリックし、[RuleApp プロジェクト]を

選択して、[次へ]をクリックすると、同じ設定画面が開きます。

Page 110: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

110/140

[名前]を入力し、[終了]をクリックします。

ルール・エクスプローラーで、配布構成が作成され、配布構成エディターが開いていることを

確認します。

ルール・プロジェクト・マップの「意思決定サービス・マップ」において、[配布および統合]

>[RuleApp の配布]が有効になります。

※この時点では、配布構成にまだ意思決定操作を設定していないため、「配布構成は、アクテ

ィブな意思決定操作を参照していません。」のメッセージが表示されます。

Page 111: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

111/140

構成タイプの設定

配布構成が、非実稼働環境用か、実稼働環境用かを指定します。

[概説]タブにて、構成タイプを設定します。

意思決定操作の設定

配布構成が参照する意思決定操作を設定します。

[意思決定操作]タブを開き、「構成済み意思決定操作」部分で、プラス・ボタンをクリック

します。

Page 112: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

112/140

「既存の意思決定操作の選択」を選択し、意思決定操作にチェックを付けて[終了]をクリッ

クします。

構成済み意思決定操作に、意思決定操作が追加されたことを確認します。

Page 113: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

113/140

ルール・セット・バージョン・ポリシーの設定

配布時に適用されるバージョン・ポリシーを選択します。

[意思決定操作]タブにて、ルール・セット・バージョン・ポリシーを選択します。

ターゲット・サーバーの設定

意思決定サービスを配布する Rule Execution Server を設定します。

[ターゲット・サーバー]タブを開き、「配布ロケーション」部分で、プラス・ボタンをクリ

ックします。

Page 114: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

114/140

「Rule Execution Server 接続の作成」が選択されていることを確認し、[次へ]をクリック

します。

[名前]および Rule Execution Server の情報を入力し、[ログイン情報の保存]にチェック

を付け、[接続のテスト]をクリックします。

Page 115: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

115/140

「接続に成功しました」のメッセージが表示されたことを確認し、[終了]をクリックします。

ターゲットとして、Rule Execution Server 接続が追加されたことを確認します。

[Ctrl]+[S]で、配布構成を保存します。

Page 116: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

116/140

RuleApp の配布

Rule Designer から RuleExecutionServer に配布する手順を説明します。

配布構成の[概説]タブを開き、[RuleApp 配布に進む...]をクリックします。

配布の要約を確認し、[次へ]をクリックします。

Page 117: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

117/140

資格情報を確認し、[次へ]をクリックします。

配布レポートが開いて、配布の結果が表示されます。

Page 118: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

118/140

3.10. その他

ルール・プロジェクト・マップには現れていない、ルール開発における補足的なタスクを説明

します。

3.10.1 プロジェクトのエクスポート

3.10.2 プロジェクトのインポート

3.10.1. プロジェクトのエクスポート

プロジェクトのエクスポート

別のワークスペースにプロジェクトを取り込めるようにするために、プロジェクトをエクスポ

ートします。

[ファイル]>[エクスポート]をクリックします。

Page 119: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

119/140

[一般]>[アーカイブ・ファイル]を選択して、[次へ]をクリックします。

エクスポートするファイルを選択し、[宛先アーカイブ・ファイル]を入力し、[終了]をクリ

ックします。

Page 120: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

120/140

配布義のエクスポート

配布サバーの定義をエクスポートします。

[ファイル]>[エクスポート]をクリックします。

[Rule Designer]>[配布サーバーの定義]を選択して、[次へ]をクリックします。

Page 121: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

121/140

[ファイル]を入力し、[終了]をクリックします。

3.10.2. プロジェクトのインポート

プロジェクトのインポート

ワークスペースに既存プロジェクトを取り込むために、プロジェクトをインポートします。

[ファイル]>[インポート]をクリックします。

Page 122: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

122/140

[一般]>[既存のプロジェクトをワークスペースへ]を選択し、[次へ]をクリックします。

[アーカイブ・ファイルの選択]を選択し、エクスポートしたファイルを選択して、[終了]

をクリックします。

Page 123: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

123/140

ルール・エクスプローラーで、プロジェクトがインポートされたことを確認します。

※この時点では、配布サーバーの定義がインポートされていないため、プロジェクトに対して、

配布サーバーに関するエラーが表示されます。

配布サーバーの定義のインポート

エクスポートした配布サーバーの定義をインポートします。

[ファイル]>[インポート]をクリックします。

Page 124: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

124/140

[Rule Designer]>[配布サーバーの定義]を選択し、[次へ]をクリックします。

エクスポートした配布サーバーの定義ファイルを選択して、[終了]をクリックします。

Page 125: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

125/140

[プロジェクト]>[クリーン]をクリックします。

[以下で選択したプロジェクトをクリーン]を選択し、ルール・プロジェクトにチェックを付

けて[OK]をクリックします。

Page 126: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

126/140

3.11. ルールの設計・実装上のポイント

3.11.1. ルールの実装方法の選択肢

ルールの実装方法にはアクション・ルール、意思決定表、意思決定ツリーの 3 種類がありま

す。基本的な特徴は以下のようになります。

アクション・ルール

BAL(Business Action Language)を使用して記述します。構造としてルール内で使用する

変数を定義する「定義」、アクション・ルールの条件を記述する「仮定条件」、実行するアクショ

ンを記述する「その場合」、「それ以外の場合」という 4 つの部分を持ちます。

アクション・ルールの記述例

Page 127: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

127/140

初期値を設定するといった常に実行したいルールを記述する場合、「定義」や「仮定条件」が

ないルールは記述することができます。

意思決定表

スプレッド・シート形式でルールの集合をまとめて記述、管理することができる方法で、対称

性のあるルールをまとめて記述することに向いています。各行に1つのルールが対応し、ルール

の条件とアクションを列に定義します。特定の行の条件が満たされた場合に、その行に定義され

たアクションが実行されます。複数のルール間での重複(判断の閾値が重なっている)やギャッ

プ(判断の閾値で網羅されていない範囲がある)を検出しやすくなります。また、表に定義され

ているルール全体に対する前提条件も定義することが可能です。

条件列 アクション

1 行が 1 つのルールを表現している

Page 128: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

128/140

条件の重複の例:

「企業の信用度」の条件列に対し、1 行目の条件が「900 以上」となっており、2 行目の条件

が「600 以上 1000 未満」というように条件が重複している場合、このように検出されます。

ギャップの例:

「年間返済額」の条件列に対し、9,000 から 10,000 の間の条件が存在していないことを検知

しています。

Page 129: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

129/140

重複やギャップの検出の構成

意思決定表のプロパティーで、どの列に対して重複やギャップの検出を行うか、検

出された際の警告レベルを設定することができます。

Page 130: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

130/140

意思決定ツリー

フローチャートのような形式で記述するルールで、対称性がないルールの集合を扱う際に便利

な方法です。条件はひし形のノードで表現され、条件の値は分岐に記述します。アクションはそ

れぞれの分岐の終端に記述します。ツリーに定義されているルール全体に対する前提条件も定義

することが可能です。

意思決定表での非対称ルールの記述

意思決定ツリーではなく意思決定表を使用して非対称なルールの集合を管理する

こともできます。この意思決定ツリーを意思決定表で表現すると次のようになりま

す。

条件

条件の値 条件の値

アクション

Page 131: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

131/140

3.11.2. ルールの繰り返し実行

配列や List 型などのデータに対して条件判断を繰り返し実行する場合、たとえばアクショ

ン・ルールでは次のように記述します。

「定義」の中で「設定:」という記述をしています。”借り手リスト”という配列の要素を

”未成年の借り手”という変数に代入して、仮定条件の評価とアクションを実行しています。こ

のときに”借り手リスト”の配列がループで処理されるため、”借り手リスト”に含まれてい

る”借り手”のうち年齢が 18 未満であるものに対して、仮定条件と対応するアクションが実行

されます。

このルールを Java のコードで表現すると以下のようなイメージです。

Borrower[] borrowers;

for (Borrower underAgeBorrower: borrowers){

if(underAgeBorrower.getAge() < 18){

if(underAgeBorrower.getGrade().equals("A")){

underAgeBorrower.setCredit(10000);

}else{

underAgeBorrower.setCredit(0);

}

}

}

Page 132: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

132/140

3.11.3. XOMの設計・実装上の基本方針

XOM の Java メソッドには本来はルール記述上に現れていなくてはいけない計算処理や判断

ロジックなどを実装できてしまいます。XOM の内部実装はビジネス・ユーザーが編集すること

が難しいため、ルールのメンテナンスを困難にすると同時にルールの可視性を下げることにつな

がります。そのため、まずは XOM に定義するメソッドには極力ロジックが入り込まないよう

Getter/Setter によるフィールドへのアクセスに限定することが基本的な考え方になります。

ただし、単なるGetter/Setterだけではルールの記述が冗長や不自然になる可能性があります。

例えば、“企業の信用度”という整数型の項目に 20 加算したい場合に Getter/Setter だけで処理

しようとするとこのような記述になります。

このときに「企業の信用度に <数値> を加える」といった記述のほうがビジネス・ユーザー

にとって自然な書き方である場合があります。

Page 133: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

133/140

XOM のフィールドに対して addCorporateScore(int score)のようなメソッドを定義しておき

ます。

private int corporateScore;

public int getCorporateScore() {

return this.corporateScore;

}

public void setCorporateScore(int score) {

this.corporateScore = score;

}

public void addCorporateScore(int score) {

this.corporateScore += score;

}

そのメソッドを BOM では次のように言語化することで自然な記述となります。

また外部アプリケーションからのルール呼び出しに対応するために、ルール・セット・パラメ

ーターとなるJavaクラスには java.io.Serializableインターフェースを実装しておくことも推奨

です。

Page 134: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

134/140

3.11.4. XOMで実装したほうがよいロジック

逆に XOM で実装したほうがルールの記述がしやすくなるロジックもあります。プログラム言

語的な制約に対応する処理の実装や不変の公式のような長期間変化しないもののような、ビジネ

ス・ユーザーにとって可視化しメンテナンスを容易にしたい対象ではない処理です。これらをユ

ーティリティとして Static メソッドとして実装するクラスを用意することでルール記述が簡潔

に行えるようになります。

プログラム言語的な制約に対応する処理の例としては、入力された文字列に数値のみが含まれ

ているかを判定する処理や小数表記の数値を「%」をつけた百分率の文字列にする文字列編集処

理などが該当します。XOM での実装はこのようになります。

public static String formattedPercentage(double percent) {

NumberFormat formatter = NumberFormat.getInstance();

formatter.setMaximumFractionDigits(2);

return formatter.format(percent*100) + "%";

}

public static boolean containsOnlyDigits(String string) {

if (string == null) return false;

char[] array = string.toCharArray();

for (int i=0 ; i<array.length; i++) {

if (!Character.isDigit(array[i]))

return false;

}

return true;

}

Page 135: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

135/140

これを BOM で次のように言語化します。

ルールとしてメンテナンス対象とならない計算式の例として、複利計算の実装が考えられます。

融資金額と融資期間(ヶ月)、年利から一ヶ月複利での月々返済額を計算することは公式化可

能であり、この公式そのものはルールが変わったとしても変化しないものです。

public static double getMonthlyRepayment(double amount, int numberOfMonth,

double yearlyRate) {

double i = yearlyRate / 12;

double p = i * amount / (1 - Math.pow(1 + i, -numberOfMonth));

return p;

}

Page 136: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

136/140

BOM で次のように言語化します。

3.11.5. ルール・セット・パラメーターの型定義

バッチなどのように複数明細を一括で処理をするようなアプリケーションでは、ルール・セッ

ト・パラメーターをあらかじめ配列や Collection 型にしておくとで明細ごとにルールを呼び出

さずに処理ができるようになるため、システム全体のパフォーマンスがよくなる可能性がありま

す。ルールの記述方法が若干違うため、最初の設計時点で検討するべき要素になります。

Page 137: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

137/140

3.11.6. ルール・フローに関する注意点

ルール・フローによるルール実行制御では分岐も記述することができますが、分岐条件には注

意が必要です。ルール・フローは Decision Center から編集することができないコンポーネント

であるため、条件の記述次第で本来は可変の条件となりうるものをフローに含めてしまい、ビジ

ネス・ユーザーによるルールの編集を難しくする要因になりえます。

それを回避するための設計方法のひとつとして、BOM や変数として判定が成功したかどうか

を判定する boolean の変数を持たせることができます。

分岐内に記述した条件判定によって分岐させるのではなく、ルールで記述したアクションの結

果を設定する boolean の変数を用意して、この変数そのものを分岐条件に使います。そうする

と、フローの制御には手を入れることなく条件判定を変更することができます。

例えば、ルール・タスク「資格」からの「ローン承認」という分岐の条件はこのように記述さ

れています。

Page 138: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

138/140

「‘ローン申請’は承認されている」というのは Report クラスの boolean 型の approved 変数の

ナビゲーションで、この変数が true となっていれば次のルール・タスク「保険」を呼び出しま

す。

このローン申請を承認するかどうかはルール・パッケージ「資格」内のアクション・ルール「承

認」にて最終的に決定されているため、フローが遷移する条件はすべてルールの中で記述されて

います。

3.11.7. 例外処理の設計

ルール・アプリケーションでも Java の例外を使うことができますが、例外を Throw するこ

とがかえってよくないケースもあります。たとえば、入力値のチェックなどのルールでチェック

に失敗した場合のアクションで例外を Throw することも可能です。例外を Throw してしまうと

その時点でルールによる評価が中断されてしまうため、複数の項目にわたるルールのチェックの

すべてが行われない可能性があります。

入力値をチェックするすべてのルールを実行させた上で、ルールを呼び出したアプリケーショ

ンに判定結果を戻す設計にしておくほうが、次のアクションを促しやすくなります。

Page 139: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

139/140

例えば、申請内容の検証を行うルールで、それぞれのルールごとに何が問題であったかのメッ

セージを呼び出し側に返すことができるようにしています。

Page 140: Operational Decision Manager V8.8 - IBMpublic.dhe.ibm.com/software/dw/jp/websphere/decman/odm88_developer... · ・ テスト、デバッグ、リファクタリングまでを含む反復型開発を実施可能

140/140

4. 参考資料

[1] 製品ページ

IBM Operational Decision Management の製品紹介ページです。

http://www-03.ibm.com/software/products/ja/category/operational-decision-management

[2] IBM Knowledge Center(製品オンライン・マニュアル)

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.distrib/kc_welco

me_odm_distrib.html?lang=ja

ODM Tutorials and samples (IBM Knowledge Center 内)

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.distrib.samples/t

opics/odm_distrib_samples.html?lang=ja

Rule Designer チュートリアル(IBM Knowledge Center 内)

http://www.ibm.com/support/knowledgecenter/SSQP76_8.8.0/com.ibm.odm.dserver.rules.tut

orials/tut_designer_topics/tut_rule_designer_tutorials.html?lang=ja

[3] 製品の制限や問題について

http://www-01.ibm.com/support/docview.wss?uid=swg21691494

[4] developerWorks

http://www.ibm.com/developerworks/jp/websphere/category/decman/#03

[5] Agile Business Rule Development

http://epf.eclipse.org/wikis/epfpractices/practice.tech.abrd.base/guidances/practices/abrd_69

7B2958.html?nodeId=5d5447