ヘッダーをスキップ
Oracle® Fusion Middleware Oracle Business Process Management Business Process Composerユーザーズ・ガイド
11g リリース1 (11.1.1.7)
B61410-08
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次

前
 
次
 

13 Oracle Business Rulesの使用

この章では、Business Process Composerを使用してビジネス・ルールを作成および編集する方法について説明します。この章には、Oracle Business Rulesの全般的な概要および使用するためのタスクを示します。

この章の内容は次のとおりです。

13.1 Oracle Business Rulesの概要

この項では、Oracle Business Rulesの概要について説明します。

ビジネス・ルールは、ビジネス・ポリシーを表す文または重要なビジネスの意思決定を表す文です。たとえば、ビジネス・ルールには次のものが含まれます。

たとえば、レンタカー会社では次のようなビジネス・ルールを使用する場合があります。

IF
Rental_application.driver age < 21
THEN
modify Rental_application(status: "Declined")

航空会社では次のようなビジネス・ルールを使用することがあります。

IF
Frequent_Flyer.total_miles > 10000
THEN
modify Frequent_Flyer (status : "GOLD")

金融機関では次のようなビジネス・ルールを使用することがあります。

IF
Application_loan.income < 10000
THEN
modify Application_loan (deny: true)

これらの例は、個別のビジネス・ルールを表します。実際には、Oracle Business Rulesを使用すると、複数のビジネス・ルールを組み合せたり、より複雑なテストを使用できます。

Oracle Business Rulesを使用すると、プロセス・アナリストはルールとして表されているビジネス・ポリシーを変更でき、プロセス開発者の手助けはほとんどまたはまったく不要です。Oracle Business Rulesを使用するアプリケーションは継続的な変化をサポートします。これにより、これらのアプリケーションは、行政の新しい規制、社内プロセスの改善、または顧客とサプライヤの関係の変化に対して適応できます。

ビジネス・ルールはif-then構造に従い、次の2つの部分で構成されます。

または、デシジョン表と呼ばれるスプレッドシート状の形式でルールを表すこともできます。

13.1.1 ルール条件の概要

ルールのIF部分は、ファクトを参照する条件式、つまりルール条件で構成されます。例:

IF Rental_application.driver age < 21

条件式では、「次より小さい」比較を使用してビジネス条件(Rental_application.driver age)を数字の21と比較します。

ルール条件は、ファクトの組合せで条件式がtrueになるたびにルールをアクティブにします。ルール条件はRules Engine内の使用可能なファクト全体に対する問合せのようなものであり、問合せから戻される行のそれぞれに対してルールがアクティブになります。

13.1.2 ルール・アクションの概要

ルールのTHEN部分には、ルールが起動された場合に実行されるアクションが含まれます。ルールは、アクティブ化され、優先度などの競合解消メカニズムを使用してその他のルール・アクティブ化の中で選択されると、起動されます。ルールはいくつかの種類のアクションを実行することがあります。ファクトを追加、変更または削除するアクションがあります。Javaメソッドを実行したり、ファクトのステータスの変更やファクトの生成を行う場合がある関数を実行するアクションもあります。

ルールは同時にではなく順番に起動されます。ルール・アクションにより一連のルールのアクティブ化が変更されることがよくあり、このため次に起動されるルールが変更されることがあります。

13.1.3 デシジョン表の概要

デシジョン表は、数多くのルールで数多くのプロパティ値の組合せを分析する必要がある場合に、よりコンパクトかつ直観的に使用できる代替のビジネス・ルール形式です。デシジョン表を使用すると、すべての組合せを網羅する、または競合する2つの組合せが存在しないルールのセットを作成できます。

13.1.4 ファクトおよびバケットセットの概要

Oracle Business Rulesでは、ファクトはルールの基礎となるオブジェクトです。各ファクトは1つのファクト・タイプのインスタンスです。ルールを作成する前に、1つ以上のファクト・タイプをインポートまたは作成する必要があります。

Oracle Business Rulesでは、ファクトはクラスのアサートされたインスタンスです。Oracle Business Rulesランタイム、またはRL言語で作成する開発者は、RL言語アサート関数を使用して、ファクトのインスタンスをOracle Business Rulesエンジンに追加します。

ルール・デザイナでは、XMLスキーマ、Javaクラス、Oracle RL定義およびADFビジネス・コンポーネント・ビュー・オブジェクトに基づいて様々なファクト・タイプを定義できます。Oracle Business Rulesランタイムでは、このようなファクト・タイプ・インスタンスはファクトと呼ばれます。

バケットセットを作成して、指定したタイプの値のリストまたは値の範囲を定義できます。バケットセットを作成した後、バケットセットを一致するタイプのファクト・プロパティに関連付けることができます。Oracle Business Rulesでは定義したバケットセットを使用して、ルールまたはデシジョン表のファクト・プロパティに関連付けられた値に対する制限を指定します。バケットセットを使用して、可変初期値および関数の戻り値または関数の引数値に対する制限を指定することもできます。

13.1.5 ルールセットの概要

ルールセットは、Oracle Business Rulesにおけるルールおよびデシジョン表のコンテナです。1つのルールセットには、ルールおよびデシジョン表用の、Javaパッケージに類似したネームスペースがあります。また、ルールセットを使用して、ルール起動を部分的に順序付けることもできます。

13.1.6 デシジョン関数の概要

デシジョン関数によって、JavaまたはSOAから(SOAコンポジット・アプリケーションからまたはBPELプロセスから)ルールを呼び出す規約が提供されます。規約には、入力ファクト・タイプ、実行するルールセットおよび出力ファクト・タイプが含まれます。

13.1.7 デシジョン・ポイントの概要

Oracle Business Rules SDK (Rules SDK)によってAPIが提供されます。このAPIを使用して、Oracle Business Rulesディクショナリ内のルール(およびディクショナリのすべてのコンテンツ)にアクセス、作成、変更および実行するアプリケーションを作成できます。Rules SDKは、Javaアプリケーションからルールまたはデシジョン表にアクセスおよび実行するデシジョン・ポイントAPIを提供します。

13.1.8 ディクショナリの概要

ディクショナリは、ファクト、関数、グローバル、バケットセット、リンク、デシジョン関数およびルールセットのOracle Business Rulesコンテナです。ディクショナリは、アプリケーションのルールセットおよびデータ・モデルが格納されるXMLファイルです。ディクショナリは他のディクショナリにリンクできます。Oracle JDeveloperでは、.rulesファイルにOracle Business Rulesディクショナリが作成されます。ディクショナリは必要な数だけ作成できます。ディクショナリには任意の数のルールセットを含めることができます。

13.2 Business Process Composerルール・エディタの概要

Business Process Composerルール・エディタを使用すると、ルール・ディクショナリを表示および編集できます。ルール・ディクショナリは、プロセス・エディタおよびデータ・アソシエーション・エディタに類似のタブを使用したウィンドウに表示されます。

このウィンドウは、次の2つの主な領域にわかれています。

図13-1は、営業見積サンプル・プロジェクトに含まれるグローバルの情報を表示する「グローバル」タブを示しています。


注意:

このタブには、ルール・ディクショナリが作成されたときに最後としてマークされたグローバルのみが表示されます。


図13-1 Oracle Business Rulesエディタの「グローバル」タブ

図13-1の説明が続きます
「図13-1 Oracle Business Rulesエディタの「グローバル」タブ」の説明

図13-2は、営業見積サンプル・プロジェクトに含まれるバケットセットの詳細を表示する「バケットセット」タブを示しています。

図13-2 Oracle Business Rulesエディタの「バケットセット」タブ

図13-2の説明が続きます
「図13-2 Oracle Business Rulesエディタの「バケットセット」タブ」の説明

図13-3は、営業見積サンプルに含まれるルールセットの詳細を表示する「ルールセット」タブを示しています。

図13-3 Oracle Business Rulesエディタの「ルールセット」タブ

図13-3の説明が続きます
「図13-3 Oracle Business Rulesエディタの「ルールセット」タブ」の説明

13.3 ビジネス・ルールの作成および編集

次の各項では、Business Process Composerを使用してOracle Business Rulesを表示および編集する特定の手順について説明します。

13.3.1 新しいビジネス・ルールの作成方法

Business Process Composerを使用して、新しいビジネス・ルールを作成できます。

新しいビジネス・オブジェクトを作成するには:

  1. プロジェクトのようこそページから、「ビジネス・ルール」タブを選択します。

  2. 「新規ビジネス・ルール」をクリックします。

  3. ビジネス・ルールの名前とパッケージを入力します。

  4. 入力データ・オブジェクトと出力データ・オブジェクトを定義します。

    1. 「データ・オブジェクトの追加」ボタンをクリックします。

    2. ウィンドウの右側のドロップダウン・リストから「入力」または「出力」を選択します。

    3. データ・オブジェクトの名前を入力します。

    4. ドロップダウン・リストからデータ型を選択します。

    5. 「追加」をクリックします。

      データ・オブジェクトが、「入力と出力データ・オブジェクト」表に表示されます。必要に応じて、入力オブジェクトまたは出力オブジェクトを追加します。

  5. 「OK」をクリックします。

13.3.2 ビジネス・ルールを開く方法

Oracle Business Rulesは再利用可能なビジネス・カタログの一部として含めることができ、これにより、プロジェクト・テンプレートから作成されたOracle BPMプロジェクトを編集するときにビジネス・ルールを使用できます。

プロジェクト・ナビゲータからビジネス・ルールを開くには:

  1. プロジェクトのようこそページから「ルール」を開き、開くルールの名前をクリックします。

ルール・エディタにビジネス・ルールが表示されます。ルールを編集する場合は、プロジェクトが編集モードになっていることを確認します。

13.3.3 バケットセットを追加する方法

Business Process Composerを使用して、ルール・ディクショナリに新規バケットセットを追加できます。

新規バケットセットを追加するには:

  1. バケットセットを編集するルール・ディクショナリを開きます。

  2. 「バケットセット」タブを選択します。これにより、図13-2に示すように、ディクショナリ内のバケットセットを一覧表示した表が表示されます。

  3. 「バケットセットの追加」ドロップダウン・リストをクリックし、作成するバケットセットのタイプを選択します。

    • 値リスト

    • 範囲リスト

  4. リストからバケットセットを選択し、「バケットセットの編集」をクリックします。

  5. 必要に応じてバケットセットを編集し、「OK」をクリックします。

13.3.4 既存のバケットセットを編集する方法

Business Process Composerで「バケットセット」タブを選択すると、ディクショナリ内のバケットセットを一覧表示した表が表示されます。バケットセットを編集するには、適切な行を選択して「編集」アイコンをクリックします。バケットセットのタイプ、範囲、列挙またはLOVに応じて、対応する「バケットセットの編集」ページが表示されます。

メニュー・バーで「追加」をクリックし、タイプを選択して、範囲バケットセットを作成できます。これにより、バケットセット表に新規行が追加されます。バケットを追加すると、範囲バケットのエンド・ポイントおよびLOVバケットの値がデータ型に基づいて自動的に追加されます。新たに追加されたバケットのエンド・ポイントや値は変更できます。エンド・ポイントまたは値を変更した場合、エイリアスが変更されることに注意してください。

バケットセットを削除するには、行を選択して「削除」をクリックします。

バケットセットを編集するには:

  1. バケットセットを編集するルール・ディクショナリを開きます。

  2. 「バケットセット」タブを選択します。これにより、図13-2に示すように、ディクショナリ内のバケットセットを一覧表示した表が表示されます。

  3. 適切なバケットセットの行を設定し、「バケットセットの編集」アイコンをクリックします。

  4. バケットセット・エディタを使用して、バケットセットの適切なフィールドを編集します。

  5. 「OK」をクリックして変更を確認します。

13.3.5 ルール・ディクショナリでグローバルを表示する方法

ルール・ディクショナリを開くと、Business Process Composerによって「グローバル」タブが表示されます。「グローバル」タブには、最後のグローバル変数(「最後」オプションが選択されたグローバル変数)のみが表示されます。

グローバル変数を作成したり削除することはできません。「グローバル」タブから、編集モードで「名前」、「説明」および「値」の各フィールドを変更できます。「値」フィールドでは、式ビルダーを使用して値を設定できます。

グローバルを表示するには:

  1. グローバルを表示するルール・ディクショナリを開きます。

  2. 「グローバル」タブを選択します。これにより、図13-1に示すように、このルール・ディクショナリに定義されたグローバルを一覧表示した表が表示されます。

13.3.6 ルールセットにルールを追加する方法

Business Process Composerを使用して、ルールセットのルールを編集、追加および削除できます。

ルールセットにルールを追加するには:

  1. ルールを追加するルールセットを含むルール・ディクショナリを開きます。

  2. 編集するルールセットのタブをクリックします。これにより、図13-3に示すように、このディクショナリに定義されたルールセットを一覧表示した表が表示されます。

  3. 「新規ルール」アイコンをクリックします。

  4. 新規ルールの名前を入力します。

  5. 「詳細設定の表示」アイコンをクリックします。

  6. IF領域で、「左の値」式アイコン、演算子のドロップダウン・リスト、「右の値」式アイコンを含む、コントロール、アイコンおよび選択ボックスを使用して条件を変更します。

  7. ルールのTHEN領域でルール・アクションの横にある「アクションの追加」をクリックします。

  8. 「エディタ」ツールバーの「保存」をクリックして、ルール・ディクショナリに対する変更を保存します。

13.4 ビジネス・ルール・タスクへのルールの割当て

ビジネス・ルール・タスクは、プロセス・モデル内にOracle Business Rulesを取り込むことができるOracle BPMN要素です。

ビジネス・カタログにビジネス・ルールを含むプロジェクト・テンプレートに基づいてプロジェクトを編集する場合、ビジネス・ルール・タスクにビジネス・ルールを割り当てることができます。

ビジネス・ルール・タスクにビジネス・ルールを割り当てるには:

  1. 編集するビジネス・ルール・タスクを含むプロセスを開きます。

  2. ビジネス・ルール・タスクを右クリックし、「プロパティ」を選択します。

  3. 「実装」タブを選択します。

  4. 「変更」をクリックします。使用可能なビジネス・ルールの表を含むビジネス・ルール・ブラウザが表示されます。

  5. 表でルールをダブルクリックします。

  6. 「OK」をクリックします。

13.5 実行時のOracle Business Rulesの編集

Business Process Composerを使用して、デプロイ済のOracle BPMプロジェクトを開くことができます。デプロイ済のプロジェクトを開くと、プロジェクトに含まれているOracle Business Rulesを編集し、Oracle BPMランタイムに変更を再度デプロイできます。


注意:

デプロイ済のプロジェクトを編集する場合、そのプロジェクトのOracle Business Rulesのみを編集できます。他のプロジェクト・リソースは表示できますが、編集できません。


デプロイ済のプロジェクトを開くには:

  1. 「プロジェクト」メニューの「デプロイ済プロジェクトを開く」を選択します。

    現在プロジェクトを編集している場合は、変更内容が自動的に保存されます。

  2. 「デプロイ済プロジェクト」を選択し、次に、プロジェクト・リストから開くプロジェクトを選択します。

  3. 「リポジトリ」を開き、次に、開くデプロイ済プロジェクトを選択します。

  4. 「OK」をクリックします。

  5. プロジェクト・ナビゲータで、「ビジネス・ルール」を開き、次に、編集するOracle Business Rulesを含むルール・ディクショナリを開きます。

  6. ルール・エディタで「編集」をクリックします。

  7. 必要に応じてルールを編集し、「保存」をクリックします。

  8. ビジネス・プロセスに対して行った変更が有効であることを確認するには、「検証」をクリックします。

  9. 「コミット」をクリックして、変更をOracle BPMランタイムにコミットします。

  10. 「はい」をクリックします。

  11. 「プロジェクト」メニューの「プロジェクトを閉じる」を選択します。