Oracle® Fusion Middleware Oracle Business Process Composerによるビジネス・プロセスの開発 12c (12.2.1) E69963-01 |
|
前 |
次 |
この章では、Oracle Business Process Composerを使用してビジネス・ルールを作成および編集する方法について説明します。この章には、Oracle Business Rulesの全般的な概要および使用するためのタスクを示します。
この章の内容は次のとおりです。
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では、ルールの作成に複数の方法が用意されています。
IF/THENルール - IF/THEN文で示されます。
IF/THENルールには2つのモデル化方法があります。一般的なルールでは、擬似コード言語を使用して、ルール・ロジックを表します。動詞ルールでは、自然言語文を使用してルール・ロジックを表します。
デシジョン表では、複数の関連するルールがスプレッドシート形式の単一ビューに表示されます。
ビジネス・フレーズは、動詞ルールのテストおよびアクションの構成のための自然言語のボキャブラリの提供に使用されます。一般ルールでは使用されません。
一般ルール、動詞ルール、デシジョン表は、ルールセットと呼ばれるOracle Business Rulesオブジェクトにグループとしてまとめられます。(「ルールセットの使用」を参照。)
1つ以上のルールセット、そのファクトおよび値セットは、ディクショナリと呼ばれるOracle Business Rulesオブジェクトでグループ化します。
一般ルールと動詞ルール、デシジョン表、ビジネス・フレーズの概念に関する完全な詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計の「ルールセットおよびルールの使用」の章を参照してください。
ルール
ルールは、IF-THEN
構造に従い、次の2つの部分で構成されます。
IF
部分: 条件またはパターン一致。
ルールのIF
部分は、条件式およびファクトを参照するルール条件で構成されます。次に例を示します。
IF Rental_application.driver age < 21
条件式では、より小さい比較を使用してビジネス条件(Rental_application.driver age)が数値21と比較されます。
ルール条件は、ファクトの組合せで条件式がtrueになるたびにルールをアクティブにします。ルール条件はRules Engine内の使用可能なファクト全体に対する問合せのようなものであり、問合せから戻される行のそれぞれに対してルールがアクティブになります。
THEN
部分: アクションのリスト。
ルールのTHEN
部分には、ルールが起動されたときに実行されるアクションが記載されます。ルールはアクティブ化され、優先度など競合解決メカニズムを使用して他のルールのアクティブ化の中から選択された後、起動されます。ルールはいくつかの種類のアクションを実行することがあります。ファクトを追加、変更または削除するアクションがあります。Javaメソッドを実行したり、ファクトのステータスの変更やファクトの生成を行う場合がある関数を実行するアクションもあります。
ルールは、同時ではなく順番に起動します。多くの場合、ルール・アクションによって一連のルール・アクティブ化のセットが変更されることにより、次に起動されるルールも変更されます。
デシジョン表
デシジョン表は、数多くのルールで数多くのプロパティ値の組合せを分析する必要がある場合に、よりコンパクトかつ直観的に使用できる代替のビジネス・ルール形式です。デシジョン表を使用すると、すべての組合せをカバーし、また競合する組合せが2つとしてない、一連のルールを作成できます。
デシジョン表の詳細は、「デシジョン表の使用」および『Oracle Business Process Managementによるビジネス・ルールの設計』の「ルールセットおよびルールの使用」を参照してください
ビジネス・ルール・エディタでは、ビジネス・ルール・ディクショナリ内のファクト、関数、グローバル、値セット、リンク、デシジョン関数およびビジネス・フレーズを作成、表示および編集できます。
プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。開くディクショナリの名前をクリックします。
ビジネス・ルール・ディクショナリを開くと、図17-1のようにOracle Business Process Composerに「ルールセット」ページが表示されます。
ルールセットは、Oracle Business Rulesにおけるルールおよびデシジョン表のコンテナです。ルールセットは、ルールおよびデシジョン表に対してJavaパッケージに似たネームスペースを提供します。またルールセットを使用して、ルールの起動を部分的に順序付けることも可能です。
ビジネス・ルール・エディタのページには、次のようなルールセットやデータ・モデルを追加、編集および表示するためのツールが用意されています。
値セット
グローバル
ビジネス・フレーズ
エクスプローラ
ファクト
デシジョン関数
リンク
変換
オープン済のビジネス・ルール・ディクショナリに含まれる値セットやグローバルなどの要素を編集するには、プロジェクトを編集モードにする必要があります。
ビジネス・ルール・エディタ・ページには、次のアクションの実行に使用できるツールもあります。
図17-2に示すように、これらの機能には「アクション」メニューからアクセスします。
ビジネス・ルール・ディクショナリは、ファクト、関数、グローバル、値セット、リンク、デシジョン関数およびルールセットに使用されるOracle Business Rulesコンテナです。ビジネス・ルール・ディクショナリは、アプリケーションのルールセットおよびデータ・モデルが格納されるXMLファイルです。
ディクショナリは他のディクショナリにリンクできます。Oracle Business Process Composerを使用すると、ディクショナリを必要な数だけ作成できます。1つのディクショナリに多数のルールセットを含めることができます。
Oracle Business Process Composerを使用すると、ビジネス・ルール・ディクショナリを必要な数だけ作成できます。
新規ビジネス・ルール・ディクショナリを作成する手順は、次のとおりです。
プロジェクトの「ようこそページ」から、「コンポーネント」ペインに移動して、「ルール」を選択します。
「新規」アイコンをクリックすると、図17-3に示すように「新規ビジネス・ルール」ダイアログが表示されます。
ビジネス・ルール・ディクショナリの名前とパッケージを入力します。
これらのフィールドは必須フィールドです。
必要に応じて、「コンポジット・サービスの公開」チェック・ボックスを選択します。
入力データ・オブジェクトと出力データ・オブジェクトを定義します。
「データ・オブジェクトの追加」ボタンをクリックします。
ウィンドウの右側にあるドロップダウン・リストから「入力」を選択します。
データ・オブジェクトの名前を入力します。
ドロップダウン・リストからデータ型を選択します。
データ型を単純型にはできません。ビジネス・オブジェクトとして定義された型にする必要があります。
「追加」をクリックします。
データ・オブジェクトが、「入力と出力データ・オブジェクト」表に表示されます。
「データ・オブジェクトの追加」ボタンをクリックして、ドロップダウン・リストから「出力」を選択します。
データ・オブジェクトの名前を入力します。
ドロップダウン・リストからデータ型を選択します。
データ型を単純型にはできません。ビジネス・オブジェクトとして定義された型にする必要があります。
「追加」をクリックします。
データ・オブジェクトが、「入力と出力データ・オブジェクト」表に表示されます。
「OK」をクリックします。
ディクショナリの設定は、「ディクショナリ設定」ダイアログを使用して表示および編集できます。「設定」ダイアログには、図17-4に示されるように、「実行」、「選択肢」および「データ・モデル」の3つの領域があります。
「実行」領域を使用して、実行アルゴリズムを選択します。RETEまたはNon-RETEを選択します。
Oracle Business Rulesでは、ルールとファクトのパターン一致プロセスを最適化するため、このReteアルゴリズムを使用しています。Reteアルゴリズムは、部分一致の結果を、作業メモリーにあるノードの単一ネットワークに格納します。
Reteアルゴリズムの使用によって、ファクトの削除、追加または修正時にOracle Business Rulesで不要な再チェックを回避できます。ファクトとルールを処理するために、Reteアルゴリズムは、各ファクト定義に入力ノードを、各ルールに出力ノードを作成し、使用します。
Reteアルゴリズムの利点は、次のとおりです。
ルールの順序に非依存: ルールは他のルールに影響を与えずに、追加および削除できます。
複数のルール間での最適化: 共通条件のルールはReteネットワークのノードを共有します。
高いパフォーマンスの推論サイクル: 通常、各ルールの起動によって変更されるのは少数のファクトのみで、Reteネットワークの更新コストは、ファクトまたはルールの総数ではなく、変更されたファクトの数に比例します。
Non-Reteアルゴリズム(NRE)は、Reteアルゴリズムの代替で、Reteアルゴリズムと比較して消費メモリーが少なくなります。ビジネス・ルールのユース・ケースの多くでは、パフォーマンスも向上します。NREアルゴリズムの中核は、新しいルール条件評価アプローチにあります。
「選択肢」領域は、動詞ルールの使用時に表示されるフレーズ提案の指定に使用されます。自動提案のみの表示、ビジネス・フレーズのみの表示または両方の表示を選択できます。
「データ・モデル」領域は、グローバル修飾子パターンの指定および動詞ルールに使用されます。パターンには、{member}, {fact}の2つのフラグメントを含める必要があります。たとえば、{fact}の{member}のようにします。
ディクショナリ設定を表示または編集する手順は、次のとおりです。
データ・モデルを共有する場合、ディクショナリを別のディクショナリへのリンクとともに使用すると便利です。
データモデルの共有: プロジェクト内のデータ・モデル部分を共有します。別のプロジェクトのディクショナリにリンクすると、それがローカル・プロジェクトにコピーされます。
たとえば、Oracle Business Rules関数をいくつか共有したいプロジェクトについて考えてみます。その関数を格納するディクショナリを作成し、DictCommonという名前を付けることができます。次に、DictApp1とDictApp2という2つのディクショナリを作成し、これらを両方ともDictCommonにリンクします。いずれも同じOracle Business Rules関数を使用でき、いずれかの関数の変更が必要になった場合は、DictCommon内のバージョンを変更するだけで済みます。次回、DictApp1またはDictApp2からRL言語が生成されるときに、両方のディクショナリで更新されたバージョンが使用されます。
Oracle Business Rulesでは、完全修飾されたディクショナリ名はDictionaryFQN
と呼ばれ、次の2つの要素で構成されています。
ディクショナリ・パッケージ: パッケージ名
ディクショナリ名: ディクショナリ名
ディクショナリは、DictionaryFQN
と別名を使用して、リンク先のディクショナリを参照します。Oracle Business Rulesでは、DictionaryFQN
を使用してリンク先ディクショナリが検索されます。
結合ディクショナリに関する次のネーミング制約は次のとおりです。
パッケージとディクショナリ名を含む個別の完全ディクショナリ名を使用する必要があります。
また、ディクショナリ別名も個別にする必要があります。
たとえば、関数、Oracle RLクラス、値セットなど、特定の種類のデータ・モデル定義の別名は、ディクショナリ内で一意である必要があります。
直接含んでいるディクショナリの別名で定義を修飾できます。
最上位および組込みディクショナリ内の定義を修飾する必要はありません。別のディクショナリ内の定義は修飾する必要があり、この修飾はディクショナリ・リンクの「接頭辞リンク名」プロパティによって制御されます。
ルールセット名はディクショナリ内で一意にする必要があります。
ルールセットのRL Languageを生成する場合、ディクショナリの別名は生成名の一部にはなりません。たとえば、DictApp1という名前のディクショナリがDictApp2にリンクして結合ディクショナリを作成し、DictApp1にrule_1
を含むruleset_1
が存在し、DictApp2にもrule_2
を含むruleset_1
が存在する場合、結合ディクショナリでは、これらのrule_1
とrule_2
の両方が同じルールセット(ruleset_1
)に存在することになります。
すべてのルールおよびデシジョン表には、ルールセット内で一意の名前が必要です。
たとえば、ディクショナリDictApp2にリンクするディクショナリDictApp1を含む結合ディクショナリ内では、ディクショナリDictApp1にrule_1
を含むRuleset_1
という名前のルールセットが存在する場合があります。ディクショナリDictApp2にもrule_2
を含むRuleset_1
という名前のルールセットが存在する場合、Oracle Business Rulesが結合されたリンク先ディクショナリからRL言語を生成すると、ルールrule_1
とrule_2
の両方が、Ruleset_1
という1つのルールセットに存在することになります。この命名規則に違反し、結合ディクショナリ内のルールセット内で個別名を使用しない場合は、次のような検証警告がレポートされます。
RUL-05920
: ルールセットRuleset_1
に名前がrule_1
のルールが2つあります
リンク先のディクショナリを表示する手順は、次のとおりです。
ディクショナリ・リンクを表示するビジネス・ルール・ディクショナリを開きます。
ツールバーに移動し、図17-5に示すように「リンク」をクリックします。
Oracle Business Process Composerを使用すると、ルールセットの編集、追加、削除ができます。
新規ビジネス・ルール・ディクショナリの作成時は、デフォルトのルールセットが自動的に作成されることに注意します。
ビジネス・ルール・エディタを使用して、ルールセット内のルールを追加、編集および削除します。
一般ルール、動詞ルールおよびビジネス・フレーズは、Oracle Business Process Management Studioの場合と同様の方法でBusiness Process Composerで作成します。ビジネス・フレーズの作成時のキーボードの使用方法など、GUIとの相互作用方法に少し違いがあります。
一般ルールおよび動詞ルールの構成の背景となる概念の詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計のルールの使用に関する項を参照してください。
ルールセットにルールを追加するには:
デシジョン表では、スプレッドシート形式の単一ビューに複数の関連するルールが表示されます。ビジネス・ルール・エディタのデシジョン表には、関連するビジネス・ルールのコレクションが条件行、ルールおよびアクションとともにわかりやすい表形式で表示されます。ビジネス・ユーザーは、各セルおよびそれぞれの値をすばやく比較でき、また、ビジネス・ルール・エディタでアイコンをクリックして値を選択することで、デシジョン表のルール分析機能を使用し、競合するケースや欠落しているケースを特定して修正できます。
デシジョン表の概念をわかりやすくするため、ローン申請の承認または拒否を決定するIF/THEN
ルールを例にして考えてみましょう。
IF/THEN
ルールは、次に従って処理されます。
if loanAmount < 10,000 and creditRating = poor then loanApprovalStatus = manual_approval if loanAmount < 10,000 and creditRating = good then loanApprovalStatus = auto_approved if loanAmount [100,000..500,000] and creditRating = poor then loanApprovalStatus = auto_rejected
図17-8は、これらのルールを含むデシジョン表を示し、デシジョン表の条件とアクションの領域を表示しています。
ルールセットにはデシジョン表が含まれており、これによりデシジョン表をIF/THEN
ルールとともにグループ化できます。ルールセットでルールとデシジョン表をグループ化すると、IF/THEN
ルールとデシジョン表のルールのすべてが相互に関連付けられた1セットのルールとして実行されます。
デシジョン表内のルールには名前がありません。ビジネス・ルール・エディタではデシジョン表内のルールがR1、R2およびR3のようなラベル付きで表示されますが、これらのルール・ラベルは個別ルールの名前ではなく、デシジョン表内のルールの現行の順序付けから導出されたラベルです。したがって、ラベルR1が付いているルールを位置3に移動すると、ビジネス・ルール・エディタにより、このルールのラベルがR3に変更されます。
デシジョン表の条件
デシジョン表の「条件」領域には、1行以上の条件行が含まれています。各条件行には条件式が含まれ、ルールごとに条件セルがあります。条件式とは、ビジネス・ルール・エディタで構築する式です。条件式はファクト・プロパティまたは関数結果であることが多いのですが、値セットに関連付けられる型の式の場合もあります。指定された条件セルの値または範囲は、関連付けられたLOVまたは範囲の値セットの1つ以上の値または範囲から取得されます。
デシジョン表にはルールが値の順序で表示され、ルールの順序を変更するには値セット内の値の順序を変更する必要があります。したがって、条件行に関連付けられている値セット内の値の順序によって条件セルの順序が決まり、さらにルールの順序も決まります。デシジョン表でのルールの順序付けは、条件行に関連付けられているLOV値セット内の値の相対位置を変更することで制御できますが、範囲値の順序は変更できません。
デフォルトでは、条件行の作成時にビジネス・ルール・エディタにより条件セルが1つ作成され、そのセルに「?」値が割り当てられます。条件セルの値が「?」である場合は、そのセルの値が値セットでは未定義であることを示します。
デシジョン表のアクション
デシジョン表では、アクションはルールに関連付けられています。実行時には、条件セルについてファクトが一致すると、Rules Engineにより、そのルールに関連付けられているアクションの実行が準備されます。
表17-1は、「アクション」領域で選択可能なアクションのタイプを示しています。したがって、アクションでは、関数の呼出し、新規ファクトのアサート、ファクトのリトラクト、ファクトの変更などを実行できます。「アクション」領域では、ルールの個別アクションに対応するセルがアクション・セルと呼ばれます。
表17-1 デシジョン表のアクション
アクション | 説明 |
---|---|
新規アサート |
新規ファクトのアサート |
割当て |
- |
コール |
関数のコール |
変更 |
一致したファクトに関連付けられているデータ値の変更 |
リトラクト |
ファクトのリトラクト |
アサート |
- |
ツリーのアサート |
- |
新規割当て |
- |
式 |
- |
戻る |
- |
スロー |
- |
複数のアクションを追加する場合、「アクション」領域で追加したアクションは順序付けされます。上位の行に表示されるアクションが実行されてから、下位の行のアクションが実行されます。
デシジョン表のアクション(modifyなど)では、条件セル内で一致したファクトを参照できます。「アクション」領域の一部のタイプのアクションには、パラメータ化されたチェック・ボックスが含まれています。このチェック・ボックスでは、そのアクションのプロパティとして、デシジョン表内のルールに関連付けられたアクション・セル内の値セットを設定できることが指定されます。パラメータ化されたチェック・ボックスが選択されると、アクション・セルに値が入力されていない場合に、「アクション」領域で、アクション内の式の値に入力した値がプロパティのデフォルト値になります。たとえば、図17-9を見ると、値GOODがアクション・プロパティloanApprovalStatus
のデフォルト値として割り当てられています。
デシジョン表の「アクション」領域では、特定のアクション・セルが何も実行しないように指定できます。この場合は、そのアクション・セルの選択を解除します。アクション・セルのチェック・ボックスの選択が解除されている場合は、パターンがデシジョン表内で指定された条件値に一致しても、このアクションが実行されないことを意味します。したがって、アクション・セルごとに、関連付けられているルールでアクションをアクティブにする必要があるかまたはアクションを実行しないかを指定できます。
デシジョン表を追加するには、複数のステップを実行します。次の手順が含まれます。
デシジョン表の作成
デシジョン表への条件の追加
デシジョン表へのアクションの追加
デシジョン表操作を使用した、デシジョン表の検証、修正および変更
デシジョン表を追加する手順は、次のとおりです。
デシジョン表では、スプレッドシート形式の単一ビューに複数の関連するルールが表示されます。
デシジョン表の作成方法および使用可能なツールの詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計のデシジョン表の使用に関する項を参照してください。
Oracle Business Rulesでは、ファクトはルールの基礎となるオブジェクトです。各ファクトはファクト・タイプのインスタンスです。ルールを作成する前に、ファクト・タイプを1つ以上インポートまたは作成する必要があります。ファクトの作成と編集は、BPM Studioで行います。コンポーザでファクトを表示できます。
Oracle Business Rulesの場合、ファクトはクラスのアサートされたインスタンスです。Oracle Business RulesランタイムまたはOracle Rules Language (RL)で記述する開発者は、RL言語のアサート関数を使用してファクトのインスタンスをOracle Business Rules Engineに追加します。
注意:
Oracle Rule Language (RL)は、Oracle Business Rulesのネイティブ言語です。
図17-11に示すように、ビジネス・ルール・エディタを使用して、ファクトを表示できます。
ファクト・タイプは次をベースとします。
XMLファクト: XMLファクトは、XMLスキーマを指定して既存のソースからインポートされます。
BPM Studioでは、ビジネス要件に応じて、インポートしたXMLファクトに別名を追加するか、XMLファクトをRLファクトと併用してデータ・モデルを変更できます。
Javaファクト: Javaファクトは既存のソースからインポートされます。
BPM Studioでは、Javaファクトに別名を追加するか、RLファクトと併用し、データ・モデルの目標をビジネス要件に合せることができます。また、Javaファクトは、作成するルールまたはデシジョン表で使用する関連Javaクラスのインポートにも使用されます。
RLファクト: RLファクトは、ユーザーが直接作成でき、外部ソースが存在しないタイプの唯一のファクトです。
他のすべてのタイプのOracle Business Rulesファクトはインポートされます。RLファクトは、リレーショナル・データベースの行またはプロパティを持つJavaBean
と似ています。RLファクトには、名前付きの型指定プロパティのセットが含まれます。プロパティ値には、文字列のようなプリミティブ、別の構造化ファクトまたはリストを使用できます。RLファクトは、迅速で独立的な開発およびデシジョン・ロジックのテストに役立ちます。インポートされたスキーマを使用可能にするか安定させるため、事前にRLファクトを使用して最終的にインポートされたファクト・タイプに由来する入力データ(XMLスキーマなど)を、モデル化できます。中間デシジョンはアプリケーションに返されません(顧客を優良または不良に分類するサブデシジョンなど)。通常は、デシジョンの入力および出力データに使用されるファクト・タイプをインポートすることが最適な方法です。RLファクトを使用すると、動的な仮想型を提供することでJavaアプリケーションのオブジェクト・モデルを拡張できます。
ADFビジネス・コンポーネント・ファクト: ADFビジネス・コンポーネント・ファクトを使用すると、ルールおよびデシジョン表でADFビジネス・コンポーネントをファクトとして使用できます。
ADFビジネス・コンポーネントのファクトを使用することで、ルールのベースとして必要なビジネス・オブジェクトを表すビュー・オブジェクトのグラフをアサートし、Oracle Business Rulesにビュー・オブジェクトのグラフ内で各種の関連ビュー・オブジェクト間の関係管理に伴う複雑な処理を実行させることができます。
Oracle Business Rulesランタイムでは、このようなファクト・タイプ・インスタンスはファクトと呼ばれます。
値セットを作成すると、指定したタイプの値のリストまたは値の範囲を定義できます。値セットを作成すると、値セットを一致するタイプのファクト・プロパティに関連付けることができます。Oracle Business Rulesでは定義した値セットを使用して、ルールまたはデシジョン表のファクト・プロパティに関連付けられた値に対する制限を指定します。
値セットを使用して、可変初期値および関数の戻り値または関数の引数値に対する制限を指定することもできます。
ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリの値セットの追加、編集、削除を実行できます。
ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリに含まれる値セットの編集、追加または削除を実行できます。
新規値セットを追加する手順は、次のとおりです。
ビジネス・ルール・エディタで「値セット」を選択すると、ディクショナリ内の値セットをリストする表が表示されます。値セットを編集するには、適切な行を選択して、「編集」アイコンをクリックします。これで、値セットのタイプ、つまり範囲、列挙またはLOVに応じた適切な「値セットの編集」ページが表示されます。
メニュー・バーの「追加」をクリックしてタイプを選択すると、範囲値セットを作成できます。これで、値セット表に新しい行が追加されます。値を追加すると、範囲値のエンド・ポイントおよびLOV値の値がデータ型に基づいて自動的に追加されます。新たに追加された値のエンド・ポイントや値は変更できます。エンド・ポイントまたは値を変更した場合、エイリアスが変更されることに注意してください。
値セットを削除するには、行を選択して「削除」をクリックします。
値セットを編集する手順は、次のとおりです。
ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリのグローバル変数の追加、編集、削除を実行できます。グローバルの定義を使用すると、複数のルールと関数で情報を共有できます。
たとえば、複数のルールで10%割引を使用する場合は、グローバルGold Discountを作成し、このグローバルを使用してすべてのルールに適切な割引を適用できます。
ビジネス・ルール・エディタを使用して、ビジネス・ルール・ディクショナリに含まれるグローバル変数の編集、追加または削除を実行できます。
新規グローバルを追加する手順は、次のとおりです。
グローバル変数には、選択可能な定数およびfinalオプションが含まれています。グローバル変数の使用時は、次について考慮します。
「final」の選択を解除すると、アクションの割当てなどでグローバルが変更可能であると指定することになります。
「final」を選択すると、ルールのテストでそのグローバルの使用が可能であると指定することになります(finalでないグローバルはルールのテストで使用できません)。
「final」を選択することは、グローバルが実行時に一度初期化され、変更できないことを示します。
「定数」オプションを選択すると、グローバルを定数として指定することになります。Oracle Business Rulesの定数とは、文字列や数値リテラル、値が定数であるfinalグローバルまたは定数と+、-、*および/が含まれる単純な式です。
グローバルに対して「定数」オプションを選択すると、次の3つの影響があります。
文字列リテラルを二重引用符で囲む必要がありません。
式の値の選択リストに定数のみが表示されます。
式の値が有効な定数である必要があります。
「定数」オプションは必要に応じて選択します。値、値範囲エンドポイント、ルールセット・フィルタ値は常に定数であることに注意してください。
動詞ルールはビジネス・フレーズと連携して機能することで、ルールの柔軟なオーサリングを可能にし、自然言語文を使用して、会話言語と同様のドメイン固有文でルール・ロジックを表現できるようにします。ビジネス・フレーズは、動詞ルールの文構成で使用される条件の背景となるロジックを提供します。
動詞ルールのテストおよびアクションは、導出されたビジネス・フレーズおよびユーザー定義のビジネス・フレーズを使用して作成できます。導出されるビジネス・フレーズは、ファクト、グローバルおよびディクショナリのその他の情報を使用して自動的に作成されますが、ユーザー定義のフレーズは、明示的に作成して導出されたフレーズを補うことができます。さらに、ユーザー定義のフレーズは、事前作成することも、動詞ルールの構成時に必要に応じて作成することもできます。
動詞ルールの作成時は、提案されたビジネス・フレーズを使用したり、その場で独自にインスタンス化して後で実装詳細を指定することもできます。また、最初に動詞ルールで必要なビジネス・フレーズを作成してから、動詞ルールを完成する方法もあります。
ビジネス・フレーズ、動詞ルールとの連携およびサンプル・シナリオでの使用方法の詳細は、Oracle Business Process Managementを使用したビジネス・ルールの設計の「ルールセットおよびルールの使用」の章を参照してください。
ビジネス・ルール・エディタで「グローバル」タブを選択すると、ディクショナリ内のグローバルをリストする表が表示されます。
グローバル変数を編集するには、適切な行および変数を選択します。「名前」、「説明」および「値」の各フィールドを編集できます。「値」フィールドでは、式ビルダーを使用して値を設定できます。
ビジネス・フレーズを作成する手順は、次のとおりです。
ビジネス・フレーズは、ドラフト・ステータスとしてマークできます。
ビジネス・フレーズのドラフト・ステータスは、「ドラフトの作成」または「ドラフトのクリア」をクリックすることで、設定またはオーバーライドできます。
動詞ルールのドラフト・ステータスは参照するビジネス・フレーズから導出され、直接は操作できません。動詞ルールにドラフトとマークされたビジネス・フレーズが含まれる場合、このルールもドラフトとしてマークされます。動詞ルールの説明パネルに、その動詞ルールがドラフト・モードであることが示されます。動詞ルールで参照しているすべてのビジネス・フレーズからドラフトのマークがなくなった場合、動詞ルールのドラフト・モードは解除されます。
ドラフトのビジネス・フレーズおよび動詞ルールは、検証されず、実行用のディクショナリにも含まれません。これにより、ビジネス・フレーズおよび動詞ルールの改良時にも、ディクショナリの使用またはテストの続行が可能になります。
動詞ルールの作成時には、ディクショナリにまだ存在していないビジネス・フレーズを構成できます。これらは、ビジネス・フレーズのリストに自動的に追加され、ドラフトのマークが付けられ、さらに動詞ルールもドラフトとしてマークされます。
動詞ルールは、ビジネス・フレーズを使用してIFおよびTHENテストおよびアクションを指定します。
動詞ルールでテストまたはアクションを定義するときに、選択肢のドロップダウン・リストをトリガーするテキストを入力します。このリストから、ディクショナリに既存のビジネス・フレーズの選択、ビジネス・フレーズの自動生成、入力内容に基づく新規ビジネス・フレーズのインスタンス化を実行し、後から「ビジネス・フレーズ」タブで実装詳細を指定できます。
新規動詞ルールの作成時に、ビジネス・フレーズをドロップダウン・リストから選択するのではなく、テストまたはアクションに入力して「新規ビジネス・フレーズの追加」をクリックすることによって、新規ビジネス・フレーズをインスタンス化できます。これらのビジネス・フレーズはドラフトとマークされ、このフレーズを使用する動詞ルールもドラフトとマークされます。
「フレーズに移動」をクリックして、「ビジネス・フレーズ」タブでビジネス・フレーズにアクセスします。
デシジョン関数は、ルールおよびルールセットを、複数のビジネス・プロセスから起動できる再利用可能なサービスとして公開するメカニズムです。ビジネス・ルールもルールセットも外部からはアクセスできないため、これは、ビジネス・ルールに保持されるビジネス・ロジックへのゲートウェイにすぎません。
デシジョン関数は、宣言的に構成される関数です。デシジョン関数では、次の操作が実行されます。
Oracle Business Rules Engineの作業メモリーに入力をルール・ファクトとしてアサートします。
現在のデシジョン関数およびネストしたデシジョン関数で構成されたルールセットを順番に実行します。
Oracle Business Rules Engineの作業メモリーから出力ファクトを返します。
デシジョン関数は、Javaまたはサービス指向アーキテクチャ(SOA)から(SOAコンポジット・アプリケーションまたはBPELプロセスから)ルールを起動するための規定を提供します。規定には、入力ファクト・タイプ、実行するルールセットおよび出力ファクト・タイプが含まれます。
デシジョン関数を表示および変更する手順は、次のとおりです。
「変換」タブには、選択したディクショナリに含まれるフレーズおよび変換された文字列が表示されます。
プロジェクトで追加言語を機能させるには、プロジェクトにその言語を追加する必要があります。
プロジェクトへの言語の追加方法の詳細は、「「プロジェクト情報」パネルの概要」を参照してください。
フレーズを翻訳する手順は次のとおりです。
ビジネス・ルール・タスクは、プロセス・モデル内にOracle Business Rulesを取り込むことができるOracle BPMN要素です。
ビジネス・カタログにビジネス・ルールを含むプロジェクト・テンプレートに基づいてプロジェクトを編集する場合、ビジネス・ルール・タスクにビジネス・ルールを割り当てることができます。
ビジネス・ルール・タスクにビジネス・ルールを割り当てるには:
Business Process Composerを使用して、デプロイ済のOracle BPMプロジェクトを開くことができます。デプロイ済のプロジェクトを開くと、プロジェクトに含まれているOracle Business Rulesを編集し、Oracle BPMランタイムに変更を再度デプロイできます。
注意:
デプロイ済のプロジェクトを編集する場合、そのプロジェクトのOracle Business Rulesのみを編集できます。他のプロジェクト・リソースは表示できますが、編集できません。
デプロイ済のプロジェクトを開くには: