Oracle® Fusion Middleware Oracle Business Process Managementによるビジネス・ルールの設計 12c (12.2.1) E72523-01 |
|
前 |
次 |
この章では、Oracle SOAコンポーザ・アプリケーションを使用して、SOAコンポジット・アプリケーションの一部である、デプロイされたディクショナリおよびタスクを使用する方法について説明します。
この章の内容は以下のとおりです。
Oracle SOAコンポーザはWebベースのアプリケーションで、Oracle Business Rulesのディクショナリやタスクをデプロイされたアプリケーションで使用可能にします。Oracle SOAコンポーザは、MDSリポジトリ内のディクショナリまたはタスクにアクセスします。
Oracle SOAコンポーザは、DVMドキュメント、SOAコンポジット、Oracle Business Rulesディクショナリなど様々なタイプのメタデータ・アーティファクトの表示および編集をサポートします。図12-1 に示すように、「タイプ・ビュー」または「デプロイメント・ビュー」によって様々なタイプのメタデータを表示できます。
「デプロイメント・ビュー」がデフォルトです。「タイプ・ビュー」を選択して、タイプ(「ビジネス・ルール」、「ドメイン値マップ」、「ヒューマン・タスク」または「SOAコンポジット」)別にリストされたアーティファクトを表示します。
「デプロイメント・ビュー」には、SOA-InfraとSharedの2つのノードがあります。デフォルト・ノードは、Enterprise Managerで作成および管理されるSOAパーティションです。Sharedフォルダには、JDeveloperで作成されて共有アーティファクトとしてデプロイされるルールまたはDVMが表示されます。
どちらのビューでも、ナビゲーション・ツリーでアーティファクトをクリックすると、それらが別のタブで開きます。
SOAコンポーザでは、BPMをインストールしていない場合は「動詞ルール」および「ビジネス・フレーズ」機能は表示されません。
「表示」ドロップダウンの上にある検索フィールドを使用して、図12-2 に示すように、名前でタイプをすばやく検索し、フィルタリングします。このページからアーティファクトを開くにはクリックします。
アーティファクトをクリックして読取り専用モードで開きます。アーティファクトに変更を行う予定である場合は、「セッションの編集」ボタンをクリックします。大部分のセッション・ボタンは、セッション内である場合にのみアクティブになります。変更が完了したら、「パブリッシュ」をクリックします。セッション内のすべての変更はメイン・リポジトリにコミットされ、他の人が表示できるようになり、サーバーによって実行が開始されます。検証エラーがある場合はパブリッシュできませんが、検証エラーのあるルールを保存して別のセッションで再びそれらの作業を行えます。
「破棄」ボタンで、保存する必要がない変更を取り消すことができます。セッション内でいくつか変更を行った後に、開始したときの元の状態に戻す必要がある場合は、「セッションの終了」をクリックします。「セッションの編集」を再度クリックすると、最後に保存したセッション情報が表示されます。
次のアイコンおよびボタンで、追加の情報が表示されます。
表12-1 SOAコンポーザのボタン
ボタン | 説明 |
---|---|
セッション情報 |
このアイコンの上にカーソルを移動すると、「セッションの詳細」が表示されます。 |
最大化 |
クリックすると、タブ・セクションが最大化します。これにより、ルールを記述または編集する際に画面領域が広くなります。再度クリックすると、ビューが元のサイズに戻ります。 |
検証 |
クリックして、変更内容を検証します。保存するときにシステムによって検証され、検証エラーのあるルールを保存できますが、パブリッシュはできません。検証の詳細は、「Oracle Business Rulesディクショナリの検証と診断」を参照してください。 |
ブックマーク |
今後のセッションで検索/デプロイメント・ビューを回避する場合はブックマークをクリックします。詳細は、「ブックマークの作成」を参照してください。 |
「現在のタブでの変更を保存」または「すべてのタブでの変更を保存」 |
必要に応じてクリックして保存します。 |
状況依存ヘルプを開く |
クリックすると、オンライン・ヘルプ・ファイルが表示されます。 |
「すべて閉じる」、「その他を閉じる」 |
ドロップダウンをクリックして選択し、タブを閉じます。 |
「アクション」ドロップダウンによって、ディクショナリの比較およびマージ、Microsoft Excelでのデシジョン表の使用、およびディクショナリ設定の確認を行えます。 「差異のマージ」によって、「ファイルシステム」、「公開済のバージョン」、または「保存済バージョン」と現在選択されているディクショナリを比較できます。差異がある場合、ディクショナリのマージを選択できます。 ディクショナリの比較またはマージの詳細は、「Oracle Business Rulesディクショナリの比較およびマージ」を参照してください。 「Excelからインポート」によって、Excelからデシジョン表をインポートできます。 「Excelにエクスポート」によって、デシジョン表をエクスポートしExcelで編集できます。 Excelの使用方法の詳細は、「Microsoft Excelでのデシジョン表の編集」を参照してください。 「ディクショナリ設定」によって、ディクショナリ・プリファレンスを設定できます。 ディクショナリ設定の確認の詳細は、「ディクショナリ設定の確認」を参照してください。 |
|
「診断」、「履歴センター」、「ログの保存」、「検証ログ」 |
「SOAコンポーザ」ページの下部には、「診断」、「履歴センター」、「ログの保存」および「検証ログ」の4つのタブがあります。これらのタブを使用して、ルールに対する変更を検証し、アーティファクトに対する変更を実行および解決します。 これらのタブの詳細は、「Oracle Business Rulesディクショナリの検証と診断」を参照してください。 |
ディクショナリの変更を検証した後は、「パブリッシュ」をクリックして、MDSリポジトリに対してそれらの変更をコミットします。
Oracle Business Rulesディクショナリに変更をパブリッシュする手順は、次のとおりです。
注意:
検証エラーのあるディクショナリが保存される可能性がありますが、検証の問題の修正後でなければコミットされません。
「ディクショナリ設定」ボタンをクリックして、プリファレンスを設定します。
表12-2 ディクショナリ設定
ダイアログのセクション | 設定 |
---|---|
「実行」セクション |
ルール実行アルゴリズム: 「RETE」または「非RETE」を選択します。詳細は、第1.3項「Oracle Business Rules Engineのアーキテクチャ」を参照してください。「Reteアルゴリズム」および「非Reteアルゴリズム」 |
「選択肢」セクション |
フレーズ提案: 「ビジネス・フレーズ」、「自動提案」または「すべて」を選択します。 |
「データ・モデル」セクション |
グローバル修飾子パターン: {member} of {fact}を確認します。 変換: クリックして、{member} of {fact}を変換します。 検証: クリックして{member} of {fact}を検証します。 |
図12-5 に、Oracle SOAコンポーザのログイン・ページを示します。このページは、Oracle SOAコンポーザによる指定されたユーザーの認証を可能にします。
Oracle SOAコンポーザにログインする手順は次のとおりです。
ユーザーとグループの作成および管理の詳細は、Oracle WebLogic Server管理コンソール・オンライン・ヘルプを参照してください。
Oracle SOAコンポーザはユーザーとパスワードによるアクセス制御をサポートしており、認証されたユーザーのみがOracle SOAコンポーザを使用できます。ただし、Oracle SOAコンポーザでは、さらに粒度の高いアクセス制御は用意されていません。たとえば、Oracle SOAコンポーザでは個別のルールセットやディクショナリ内のルールに対するアクセス制御はサポートされていません。
Oracle SOAコンポーザでは、メタデータに対するアクセス制御はサポートされています。Oracle SOAコンポーザを使用する際は、SOADesignerアプリケーション・ロールを持つユーザーのみがOracle SOAコンポーザのメタデータにアクセスできます。デフォルトでは、WLS管理者権限を付与されたすべてのユーザーがこのロールを持っています。
SOADesignerロールを持たないユーザーがOracle SOAコンポーザにログインすると、ユーザーにはSOAメタデータを変更する権限がないことを示すメッセージが表示されます。
Oracle SOAコンポーザへのアクセスが必要な、非管理者ユーザーに対するSOADesignerロールの割当ての詳細は、『Oracle Fusion Middleware Oracle SOA SuiteおよびOracle Business Process Management Suite管理者ガイド』のOracle Enterprise Manager Fusion Middleware Controlコンソールでのアプリケーション・ロールの管理に関する項を参照してください。
アクセシビリティの設定は、アプリケーションのすべてのコンポーネントの読取りに役立ちます。
SOAコンポーザのアクセシビリティ・オプションは、現在のインスタンスまたはすべてのインスタンスに対して設定できます。
SOAコンポーザでは、ログイン・ページに「アクセシビリティ」メニューが用意されており、ログインする前にアクセシビリティを構成できます。この設定は、現在のセッションのみまたはすべてのセッションで保持できます。
現在のセッションにのみアクセシビリティ・オプションを設定する手順は次のとおりです。
Oracle SOAコンポーザを開くとMDSに接続し、ディクショナリが含まれている使用可能なコンポジット・アプリケーションが表示されます。その他に、共有ディクショナリがリストされますが、これらの共有ディクショナリも表示および編集が可能です。
図12-8 に示すように、Oracle SOAコンポーザでは、左側のパネルにメタデータ・アーティファクトのリストを示すナビゲーション・ツリーが表示されます。選択された項目の詳細は、右側に表示されます。Oracle SOAコンポーザには、次のタブが含まれます。
ルールセット
値セット
グローバル
ビジネス・フレーズ
テスト
エクスプローラ
ファクト
デシジョン関数
リンク
変換
注意:
SOAコンポーザでは、BPMをインストールしていない場合は「動詞ルール」および「ビジネス・フレーズ」機能は表示されません。
図12-9 に示すように、Oracle SOAコンポーザではディクショナリ内のルールセットが表示されます。ルールセットを選択して、ルールセットの詳細を表示できます。ルールセットおよびルールは追加および削除できます。
図12-9 Oracle SOAコンポーザのルール・ディクショナリの「ルールセット」タブを使用したルールの表示
ルールセット・タブを使用する手順は次のとおりです。
フィールドおよび他のUIコントロールの詳細なドキュメントは、SOAコンポーザ内から「ヘルプ」、「このページのヘルプ」をクリックしてください。
デシジョン表の詳細は、「Oracle Business Rulesディクショナリのデシジョン表の編集」を参照してください。
動詞および一般的なルールの詳細は、「Oracle Business Rulesディクショナリでのルールの編集」を参照してください。
ルールセットの詳細は、「ルールセットとルールの使用」を参照してください。
動詞ルールは、自然言語文を使用してルールを作成し、ドメイン固有の文でルール・ロジックを表す柔軟な方法を提供します。
SOAコンポーザで動詞ルールを追加する手順は次のとおりです。
Oracle SOAコンポーザで、ルール・ファイルを開きます。
「ルールセット」タブをクリックし、「セッションの作成」ボタンをクリックします。アクション・ボタンが有効化されます。
ドロップダウン・リストから、ルールセットを選択します。
「ルール」パネルをクリックし、デシジョン表、動詞ルール、または一般的なルールを追加します。
デシジョン表を追加するには、「デシジョン表の追加」を参照してください。
動詞ルールを追加する手順は次のとおりです。
「追加」アイコンをクリックし、リストから「動詞ルール」を選択します。
「動詞ルール」ウィンドウが表示されます。
「If」フィールドで、テストを追加します。完了したら、「Then」フィールドでアクションを追加します。
テストまたはアクションを追加したとき、そのテストまたはアクションは編集可能になることに注意してください。「If」フィールドにフィルタ(たとえば、customer numberなど)を入力すると、すべての関連オプションがドロップダウン・リストに表示されます。
上または下矢印キーを使用して選択し、選択したオプションに対して右矢印キーを使用して類似した選択肢を表示します。
リストにさらに選択肢を表示するには、ドロップダウン・リストの終わりまでスクロールし、キーボードまたはマウスを使用して「詳細」オプションを選択します。
リストから、既存のビジネス・フレーズを選択します。または、入力したものに基づいて新しいビジネス・フレーズをインスタンス化できます。
選択肢を設定すると、テキスト・フィールドは編集できなくなり、既存のパラメータがリンクになります。リンクは、クリックすると編集可能になります。値を設定するには、リンクをダブルクリックします。
注意:
動詞ルールのいくつかの重要なキーボードベースのインタフェースは、次のとおりです。
コピー: [Ctrl]+[C]
貼付け: [Ctrl]+[V]
切取り: [Ctrl]+[X]
行を上に移動: [Ctrl]+[↑]
選択項目を上に移動: 上矢印
行を下に移動: [Ctrl]+[↓]
選択項目を下に移動: 下矢印
行の削除: [Ctrl]+[Del]
新規行の追加: [Ctrl]+[Enter]
行の編集: [Enter]
パラメータ値を設定するための重要なキーボード・ジェスチャーは次のとおりです。
パラメータ値を指定する際は、行を選択したままにしないようにします。[Enter]によって、選択した行が編集可能になり、パラメータ値の設定を試みる可能性があるためです。
パラメータ・テキスト・フィールド内で[Esc]ボタンを使用すると、値が設定されずにリンクに戻ります。
タブを使用したり、キー値を入力しても。フォーカスがあるリンクは編集可能になりません。リンクをアクティブ化するには、マウスを使用するか[Enter]キーを使用する必要があります。
パラメータ値を設定するには、パラメータ・テキスト・フィールドから[Tab]を使用して移動するか、[Enter]を押します。
完了したら、「現在のタブでの変更を保存」をクリックします。実行時バージョンに変更を適用する準備が整ったら、「パブリッシュ」をクリックします。
一般的なルールを追加するには、「一般的なルールの追加方法」を参照してください。
ディクショナリを開いて「値セット」タブを選択すると、ディクショナリに値セットが含まれている場合、表にすべての使用可能な値セットが表示されます。リンク先ディクショナリの値セットも表示されます。リンク先の値セットを選択し、「編集」ボタンをクリックすると、値を表示できます。ただし、リンク先の値セットは、編集モードでも編集できません。
Oracle SOAコンポーザの編集モードの詳細は、「ディクショナリの編集のスタート・ガイド」を参照してください。
Oracle SOAコンポーザで値セットを表示する手順は次のとおりです。
フィールドおよび他のUIコントロールの詳細なドキュメントは、SOAコンポーザ内から「ヘルプ」、「このページのヘルプ」をクリックしてください。
ディクショナリを開くと、「グローバル」タブが表示されます。グローバルは最後にすることもしないこともでき、SOAコンポーザで編集できます。
「値」フィールドでは、式ビルダーを使用して値を設定できます。妥当性をチェックするには、「検証」ボタンをクリックします。
Oracle SOAコンポーザでグローバルを表示する手順は、次のとおりです。
「ビジネス・フレーズ」タブを使用して、ルール・プロジェクトのビジネス・フレーズを表示および管理できます。
注意:
SOAコンポーザでは、BPMをインストールしていない場合は「動詞ルール」および「ビジネス・フレーズ」機能は表示されません。
ビジネス・フレーズを編集する手順は次のとおりです。
Oracle SOAコンポーザで、ルール・ファイルを開きます。
「ビジネス・フレーズ」タブをクリックし、「セッションの作成」ボタンをクリックします。図12-13 に示すように、アクション・ボタンが有効化されます。
図12-13 Oracle SOAコンポーザのルール・ディクショナリの「ビジネス・フレーズ」タブの使用
アクション・ボタンをクリックし、追加、切り取り、コピーまたは貼り付けます。
ビジネス・フレーズを追加するには、次の詳細を入力します。
句: フレーズはテストまたはアクションにできます。たとえば、calculate premium as {threshold} of {percentage}などの英語のフレーズにすることができます。「ドラフトの作成」ボタンを選択することで、フレーズをドラフトとしてマークし、後で編集できます。
パラメータ: パラメータ表のパラメータを編集、追加または削除できます。パラメータを「句」フィールドにドラッグ・アンド・ドロップできます。「パラメータの挿入」リンクを使用して、パラメータを「句」にドロップすることもできます。
マッピング: 「マッピング」セクションを使用して、ビジネス・フレーズを内部テストまたはアクションにマッピングします。
変更が完了したら、「現在のタブでの変更を保存」をクリックします。実行時バージョンに変更を適用する準備が整ったら、「パブリッシュ」をクリックします。
ビジネス・フレーズの詳細は、「動詞ルールおよびビジネス・フレーズの概要」を参照してください。
ランタイムには、SOAコンポーザを使用してルールのリグレッション・テストを実行できます。これによって、ビジネス・ユーザーは、変更後のルールで既存の機能が変更されるかどうかをすばやくチェックできます。「テスト」タブは、デプロイ済コンポジットがあるか、SOAコンポーザ・セッション内である場合にのみ表示されます。
テストを表示して編集する手順は、次のとおりです。
Oracle SOAコンポーザでは、現在のディクショナリで使用可能なデシジョン関数を、「デシジョン関数」タブを使用して表示できます。現時点では、セッション内であっても、次のフィールドおよびオプションのみ変更できます。
説明
ルール起動制限
ルール・フローの確認
ステートレスにする
起動する使用可能なルールセット
デシジョン関数の作成、既存のデシジョン関数の名前の変更、入力または出力の追加または削除は一切できません。
Oracle SOAコンポーザでデシジョン関数名を表示する手順は、次のとおりです。
Oracle SOAコンポーザでは、現在のディクショナリのリンク先のディクショナリの名前を、図12-18 に示すように「リンク」タブを使用して表示できます。現時点では、セッション内であっても、リンク先のディクショナリ名は表示できますが、ディクショナリにリンクしたりディクショナリへの既存のリンクを削除することはできません。
Oracle SOAコンポーザでリンク先のディクショナリ名を表示する手順は、次のとおりです。
Oracle Business Rulesのディクショナリは、他のディクショナリにリンクできます。ディクショナリに定義された完全なデータ・モデルとそのリンク先のディクショナリを結合ディクショナリと呼びます。同一のディクショナリに対して複数のリンクを作成できます。ただし、この場合、最初のリンク以外のすべてのリンクが無視されます。
Oracle SOAコンポーザを使用してディクショナリをリンクすることはできません。ただし、デプロイされたコンポジットにリンクされたディクショナリがすでに存在する場合は、Oracle SOAコンポーザを使用してリンク先ディクショナリ名を表示し、リンク先ディクショナリのグローバル、値セットおよびルールセットをアプリケーション間で利用できます。たとえば、Dict1
というディクショナリを含むApp1
というアプリケーションがあるとします。Dict1
は、Dict2
という別のディクショナリにリンクされているとします。Dict1
がDict2
にリンクされているため、Dict2
のオブジェクトをApp1
で利用できます。
リンク先ディクショナリ名の表示の詳細は、「リンク先ディクショナリ名を表示する方法」を参照してください。
Oracle SOAコンポーザでは、リンク表の「接頭辞リンク名」チェック・ボックスを使用して、ディクショナリ内のすべての項目(グローバル、値セット、ルールセットなど)の前にリンク先のディクショナリ名を表示するか、または非表示にすることが可能です。チェック・ボックスを選択すると、リンク先ディクショナリのファクトの前にディクショナリ名が付加され、選択を解除するとリンク先ディクショナリのファクトの接頭辞が非表示になります。デフォルトでは、図12-19 に示すように、「接頭辞リンク名」チェック・ボックスは選択された状態になっています。
リンクされたディクショナリの詳細は、「ディクショナリ・リンクに関する必知事項」を参照してください。
ディクショナリを選択して開くと、Oracle SOAコンポーザによってそのディクショナリが読取り専用モードで表示されます。読取り専用モードの各タブで、「セッション」ボタンを使用して変更を行い、それらを作業領域に「保存」します。ディクショナリの実行時バージョンに変更を適用するには、「パブリッシュ」をクリックします。
SOAコンポーザの機能の使用方法の詳細は、「セッションの作成とパブリッシュ」を参照してください。
Oracle SOAコンポーザでは、ブラウザのロケールに基づき数値書式が変更されます。たとえば、英語(アメリカ)をブラウザ言語としてOracle SOAコンポーザを使用するとします。値として、34533223.2345などの浮動小数点データを入力します。フランス語など、その他の言語でデータを表示する場合は、次の手順を実行する必要があります。
ブラウザのロケールを、フランス語に対するインスタンスに合せて変更します。
ブラウザの「リフレッシュ」ボタンをクリックして、数値書式の変更を表示します。
フランス語では、この値は34533223,2345と表示されます。
注意:
Oracle SOAコンポーザでグルーピングおよび小数点セパレータを指定すると、ロケール固有の指定がオーバーライドされます。
あるディクショナリから、値セットまたはルールを切取りまたはコピーし、コンポーザで別のディクショナリを開いて貼り付けることができます。ただし、切取り/コピー/貼付けは、同一セッション内の異なるディクショナリ間で動作します。
切取り/コピーおよび貼付け機能により、最初から新規要素を作成しなくても、既存のルール要素に基づいて新規の要素をすばやく作成できます。
図12-21 に示すボタンは切取り、コピーおよび貼付けに便利です。
Oracle SOAコンポーザでは、次のルールの要素を切取り/コピーおよび貼付けできます。
ルール
パターン
条件
アクション
値セット
次に対しては、切取り/コピー/貼付けはサポートされていません。
グローバル
リンク
値
デシジョン関数
注意:
複数の条件またはアクションを選択した場合、「貼付け」ボタンは無効化されます。このボタンは、単独で選択されている条件またはアクションでのみ有効化されます。貼り付ける場合、コピーまたは切り取られたアイテムはリストの最後尾に追加されます。
図12-22 に示すように、Oracle SOAコンポーザで、「グローバル」タブを選択すると、ディクショナリ内のグローバルを一覧表示した表が表示されます。グローバルを編集するには、適切な行を選択すると、行全体が編集可能になります。必要に応じて変更を加えます。
グローバルを追加するには、最上位にある「グローバルの追加」ボタンをクリックします。新しい空の行が追加されます。「名前」、「説明」、「値」、「値セット」、「タイプ」、「最後」、コンセントに必要な変更を加えます。グローバルの追加の詳細は、「Oracle Business Rulesグローバルの使用」を参照してください。
グローバルを削除するには、行を選択し、「削除」ボタンをクリックします。
Oracle SOAコンポーザで、「値セット」タブを選択すると、左側に、ディクショナリ内の値セットを表示するマスター・リストと、値を表示する表が含まれた詳細セクションが表示されます。値セットを編集するには、マスター・リストで該当する値セットをクリックし、詳細セクション内で、変更する値をクリックします。
「追加」ボタンをクリックし、タイプを選択することで、範囲値セットを作成できます。これにより、マスター・リストに新しい値セットが追加されます。範囲値を追加すると、範囲のエンド・ポイントおよびLOVの値がデータ型に基づいて自動的に追加されます。新たに追加された値のエンド・ポイントや値は変更できます。エンド・ポイントまたは値を変更した場合、エイリアスが変更されることに注意してください。
値セットの追加の詳細は、「値セットの使用」および「値セットのビジネス条件との関連付け」を参照してください。
値セットを切り取りまたはコピーするには、行を選択し、「切取り」または「コピー」をクリックします。コピーした値セットを貼り付けるには、「貼付け」をクリックします。
値セットを削除するには、行を選択して「削除」をクリックします。
値セットを編集する手順は次のとおりです。
Oracle SOAコンポーザでは、「デシジョン関数」タブに、ディクショナリで使用可能なデシジョン関数(親と子の両方)をリストした表が表示されます。
次のフィールドおよびオプションのみ変更できます。
説明
ルール起動制限
ルール・フローの確認
ステートレスにする
初期アクション
ルールセットおよびデシジョン関数
デシジョン関数を編集する手順は、次のとおりです。
デシジョン関数の詳細は、「デシジョン関数の使用」を参照してください。
Oracle Business Rulesディクショナリ・エディタの宣言コンポーネントを使用して、あらゆるADFベースのWebアプリケーションでのルール・ディクショナリの編集機能を強化できます。Rules SDK2 APIを使用することで、グローバル、値セット、ルールセットなどのビジネス・ルール・メタデータ・アーティファクトを編集できます。
Oracle Business Rulesディクショナリ・エディタの詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のOracle Business Rulesディクショナリ・エディタの宣言コンポーネントの使用に関する項を参照してください。
ルール・ディクショナリ・エディタのタスク・フローは、ルール・ディクショナリ・エディタの宣言コンポーネントを囲むラッパーであり、宣言コンポーネントではなくタスク・フローを必要とするADFベースのWebアプリケーションで使用されます。
Oracle Business Rulesディクショナリ・エディタの詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のOracle Business Rulesディクショナリのタスク・フローの使用に関する項を参照してください。
SOAコンポーザでは、ディクショナリに対するインタフェースが用意されており、ほとんどのディクショナリのコンポーネントを編集できます。ただし、一部のディクショナリのコンポーネントは、設計時にOracle JDeveloperのルール・デザイナ拡張機能を使用する場合のみ作成および編集が可能です。
SOAコンポーザでは、BPMをインストールしていない場合は「動詞ルール」および「ビジネス・フレーズ」機能は表示されません。
図12-25 に示すように、「ルールセット」タブでは、現在選択されているビジネス・ルール・ディクショナリの、ルールセットおよび一般的なルール、これらに含まれている動詞ルールおよびデシジョン表を表示および編集できます。
表12-3 「ルールセット」タブ
ボタン | 説明 |
---|---|
「ルールセット」ドロップダウン |
リストからルールセットをクリックして選択します。 |
拡張プロパティ・エディタ |
クリックして、「拡張プロパティ・エディタ」ポップアップでプロパティを編集します。 |
ルールセットの追加 |
クリックしてルールセットを追加します。 |
ルールセットの削除 |
クリックしてルールセットを削除します。 |
「ルール」マスター・リストで、エイリアスを入力し、ルールを検索できます。「クリア」をクリックすると、「エイリアス別検索」フィールドがクリアされます。ルールもソートできます。「昇順ソート」または「降順ソート」矢印をクリックしてIF/THEN詳細パネルをソートします。
表12-4 ルール・マスター・リストのボタン
ボタン | 説明 |
---|---|
追加 |
クリックして、新しいデシジョン表、動詞ルール、または一般的なルールを追加します。 |
削除 |
クリックして削除します。 |
「切取り」、「コピー」、「貼付け」 |
クリックして、切り取り、コピーまたは貼り付けます。 |
「昇順ソート」または「降順ソート」矢印をクリックしてIF/THEN詳細パネルをソートします。「タイプ別」をクリックし、オプションを選択し、「タイプ」、「名前」、「アクティブ」、「有効期間開始日」、「有効期間終了日」、「優先度」のいずれかのオプションでソートします。 |
|
エイリアス別検索 |
エイリアス名を入力し、エイリアス名でルールを検索します。 |
クリア |
「クリア」をクリックし、検索結果をクリアします。 |
Oracle SOAコンポーザを使用すると、ディクショナリ内のルールを編集できます。
Oracle SOAコンポーザを使用してルールを編集する手順は、次のとおりです。
Oracle SOAコンポーザでは、ルールセットにルールを追加できます。
ルールセットにルールを追加する手順は、次のとおりです。
Oracle SOAコンポーザでは、ルールセット内のルールを削除できます。
ルールセット内のルールを削除する手順は、次のとおりです。
Oracle SOAコンポーザでは、ルールセット内のルールに対する詳細設定を編集できます。詳細設定の詳細は、「ルールおよびデシジョン表での詳細設定の使用」を参照してください。
ルールの詳細設定を表示および編集する手順は、次のとおりです。
Oracle SOAコンポーザでは、ルールセット内のルールに対する条件を追加できます。ルール内の条件では、ツリー表示が使用されます。条件ツリーの最上部にあるツールバーを使用して、追加、削除、切取り、コピーおよび貼付けを実行します。条件ツリー内で、親ノードを選択し、同様のアクションを実行できます。
条件の使用の詳細は、「ルールの使用」を参照してください。
ルール条件を追加する手順は、次のとおりです。
条件が選択されていない場合、その条件は最後尾に追加されます。条件が選択されている場合、選択されている条件の兄弟が追加されます。
条件の追加に使用可能なオプションのいくつかを次に示します。
簡易テスト: 簡易テストの条件を追加します。
変数: 変数の定義を追加します。変数およびその値は、インラインのビジネス条件定義と表現されることがあります。
(...): 新しい簡易テストをネストされた小カッコ内に追加します。
not(...): 新しい簡易テストをNOTでネストされた小カッコ内に追加します。
各ネスト・レベルで、前述のオプションのリストが用意されており、ネストされたブロックで動作するようになっています。
テストの詳細は、「拡張テストの使用方法」を参照してください。
Oracle SOAコンポーザを使用すると、ルール内の条件を編集できます。ネストに対してルール条件を選択することも、条件内の式の値を変更することもできます。条件の使用の詳細は、「ルールの使用」を参照してください。
ルール内の条件を変更する手順は、次のとおりです。
式ビルダー、条件ブラウザ、「日付」ブラウザおよび「右のオペランド」ブラウザを使用して、左右の側の式を編集できます。
値の変更のほか、条件のフォーム・タイプも変更できます。たとえば、簡易テストを変数定義などに変更できます。条件のフォーム・タイプを変更するには、すぐ横のチェック・ボックスを使用して条件を選択し、必要なフォーム・タイプを「選択したテスト」リストから選択します。
Oracle SOAコンポーザでは、ルール内のアクションを変更できます。ルール・アクションの使用の詳細は、「ルールの使用」を参照してください。
ルール・アクションを変更する手順は、次のとおりです。
ルールの数値書式の詳細は、「Oracle SOAコンポーザにおけるローカライズされた数値書式に関する必知事項」を参照してください。
Oracle SOAコンポーザでは、ルールセット内の拡張モードのルールを使用できます。
注意:
「拡張モード」機能は、下位互換性のためにのみ維持されています。簡易モードで拡張テストを使用し、必要な任意の種類の条件を作成することをお薦めします。
拡張モードで実行できることはすべて、簡易モードで実行できます。拡張モード・ルールは、単に「拡張モード」チェック・ボックスの選択を解除することで同等の簡易モードに変換できます。
詳細は、「拡張テストの使用方法」を参照してください。
拡張モードのルールを表示および変更する手順は、次のとおりです。
拡張モードのルール・オプションを使用すると、パターンに条件およびアクションを追加、変更、削除するだけでなく、パターンを作成、変更および削除できます。
拡張モードのルール・オプションを使用すると、次のことが可能です。
パターン変数の指定および変数のファクト・タイプの選択: 「変数」フィールドに、パターン変数の名前を直接入力できます。図12-30 に示すように、「ファクト・タイプ」リストを使用して、変数のファクト・タイプを指定できます。
図の例では、CustomerOrder
がCustomerOrder
ファクト・タイプのパターン変数です。
パターンの追加: 「パターンの追加」ボタンをクリックして、既存のルールに対するパターンを作成します。図12-31 は、追加済のパターンを示しています。新しく作成されたパターンは空です。
パターンの削除: 「パターンの削除」ボタンをクリックし、ルールからパターンを削除します。
連結詞の指定: 2つ以上のパターンを、連結詞and
またはor
で連結します。連結詞のリンクを使用して、連結詞間の切り替えを行うことができます。
ネスト・パターンの使用: ネスト・パターンには、その内側にパターンが存在します。これらは中カッコ({})で囲まれています。「パターン演算子」リストの後ろに開き中括弧が続きます。図12-32 に示すように、「パターンを括弧で囲む」ボタンをクリックして、ネスト・パターンを作成できます。また、ネストしているパターンを「パターンから括弧を削除する」ボタンをクリックして削除できます。
同じパターン・ブロックに別のパターンを追加するだけでなく、開き中括弧の中でパターンを指定してから「テストの追加」の下矢印をクリックして、ネスト・パターンに対して条件を追加できます。
ネスト・パターン・ブロックは、閉じ中括弧で終わります。ネスト・パターンは複数レベル持つことができます。つまり、あるネスト・パターンの内側に、別のネスト・パターンを持つことができます。「ネスト・パターン・ブロックの削除」ボタンをクリックすると、ネスト・パターン・ブロック全体を削除できます。
パターンをネストすると、演算子のリストには、デフォルトの演算子として「(次の各ケース)」が選択された状態で表示されます。その他の項目は「次のケースがある」、「次のケースがない」および「集計」などです。
演算子として「次のケースがある」または「次のケースがない」を選択した場合も、ユーザー・インタフェースは「(次の各ケース)」と同じままです。ただし、「集計」を選択した場合は、ユーザー・インタフェースが変更されます。集計演算子に対しては、必ず「使用可能」フィールドに変数を入力し、「関数」リストから関数を選択してください。「関数」リストには、次のものが表示されます。
count
average
maximum
minimum
sum
collection
count
関数を除いたすべての関数では、式が必要です。「選択可能」フィールドに式を指定するか、または「条件ブラウザ」ウィンドウを起動できます。
ルールの拡張モードの「THEN」の部分では、assert
、call
、modify
からif
、else
、elseif
、while
、for
、if
(advanced)
およびwhile
(advanced)
といった条件付きアクションにおよぶ、あらゆる必要なアクションを追加できます。
拡張テストは、複雑なルールを構築する場合に使用する必要があります。拡張テスト、つまり簡易モードは、拡張モード・ルールを置き換えます。
注意:
「拡張モード」機能は、下位互換性のためにのみ維持されています。
拡張モードで実行できることはすべて、簡易モードで実行できるようになりました。UIは、図12-33 に示すように、複雑なルールおよびテストをより簡単に作成できるように合理化され、向上しています。
拡張モード・ルールは、「拡張プロパティ・エディタ」の「拡張モード」チェック・ボックスの選択を解除することで同等の簡易モードに変換できます。
拡張テストは、一般的なルール、デシジョン表、およびビジネス・フレーズの定義中にのみ適用できます。それらは、動詞ルールでは表示されません。
元の12つのテスト(表4-5 の最初に示す)に加えて、次の新しいフォームがあります。
表12-5 拡張テスト
フォーム | 説明 |
---|---|
簡易テスト |
これは、条件のビルディング・ブロックです。値を、別の値、範囲またはセットと比較します。 例: Emp.salary > 1000 |
変数 |
変数を初期化します。 例: age = Duration.years between(Emp.birthdate,RL.date.get current()) |
ネストされたテスト |
包含ブロック内にテストをカプセル化します。 例: (age > 50 or Emp.salary > 50000) |
否定されたテスト |
テストを否定します。 例: not(age > 50 and Emp.salary > 50000) |
次のすべて |
次のすべてがtrueです。 例: (age > 50 and Emp.salary > 50000) |
次のいずれか... |
次のいくつかがtrueです。例: IF e is a Emp and there is no Emp where Emp.salary < e.salary <insert test> <insert test>THEN assign e.isLowestPaid = true |
は |
ファクトを定義します。 例: eはEmpです |
次のケースがある |
このテストにはANDで接続された1つ以上の子テストがあります。 これらの子テストは、少なくとも1つのケースに対してすべてtrueです。1つのケースは、含まれる「は」テストへのファクトのバインディングです。 「は」子孫を持つ必要があります。 例: There is a case where e is a Emp and d is a Dept and e.salary > 1000000 and d.name == "Marketing" and d.employees contains e |
次がある <factType1>,...<factTypeN> 条件#* このテストにはANDで接続されたN個以上の子テストがあります。 |
非表示の「<factType>は<factType>」が最初のN個の子としてテストします。 これらの子テストは、少なくとも1つのケースに対してすべてtrueです。 表示される子テストがないことも有効です。その場合、「条件」キーワードは抑止されます。 例: IF there is a Emp, Dept where Emp.salary > 1000000 and Dept.name == "Marketing" and Dept.employees contains Emp THEN call print "there is a highly paid marketer!" IF there is a Emp THEN call print "somebody works here!" |
次のケースがない |
このテストにはANDで接続された1つ以上の子テストがあります。 この子テストはどのケースに対してもtrueになりません(含まれている「は」テストへのファクトのバインディングは、他のどのテストも満たしません)。 「は」子孫を持つ必要があります。 |
次がない <factType1>,...,<factTypeN> 条件 |
最初のN個の子としての非表示の「<factType>は<factType>」 これらの子テストは、どのケースに対してtrueになりません。 |
集計 |
このテストにはANDで接続された0個以上の子テストがあります。 「は」子を持つ必要があります(非表示の可能性あり)。 v is the sum|average|minimum|maximum|count|collection of <expression> where 表示される子テストがない場合、「条件」句は省略されます。 IF number of employees is the count of Emp THEN call print "number of employees: " + number of employees IF number of male employees is the count of Emp where Emp.gender == "M" THEN call print "number of male employees: " + number of male employees 前述の両方のルールで、SDKによって、非表示のネストされた「は」テストがEmpに対して作成されることに注意してください。 明示的な「は」を使用することもできます。 IF number of male employees is the count of e where e is Emp and e.gender == "M" THEN call print "number of male employees: " + number of male employees |
ブール式 |
ブール式をキャプチャします。 例: isEligible(Emp) |
図12-34 は、「次のケースがある」フォームの例を示しています。
図12-35 は、「次のケースがない」フォームの例を示しています。
複雑なルールの構築方法の詳細は、「ルール条件の追加方法」を参照してください。
拡張モードの詳細は、「拡張モードのルールの使用方法」を参照してください。
Oracle SOAコンポーザでは、ルールセット内のツリー・モードのルールを使用できます。ツリー・モードのルールの使用の詳細は、「ツリー・モードのルールの使用」を参照してください。
ツリー・モードのルールを表示および変更する手順は、次のとおりです。
Oracle Business Rulesエディタのコンポジット宣言コンポーネントを使用して、あらゆるADFベースのWebアプリケーションでのビジネス・ルールの編集機能を強化できます。Rules SDK2 APIを使用することで、ルールセットで使用可能なビジネス・ルールを編集できます。
Oracle Business Rulesエディタの詳細は、『Oracle SOA SuiteでのSOAアプリケーションの開発』のOracle Business Rulesエディタの宣言コンポーネントの使用に関する項を参照してください。
Oracle Business Rulesディクショナリ・エディタは、ADFベースのWebアプリケーションに埋め込むことができるコンポジット宣言コンポーネントです。Rules SDK2 APIを使用することで、グローバル、値セット、ルールセットなどのビジネス・ルール・メタデータ・アーティファクトを編集できます。
Oracle Business Rulesディクショナリ・エディタの詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のOracle Business Rulesディクショナリ・エディタの宣言コンポーネントの使用に関する項を参照してください。
Oracleルール・ディクショナリ・エディタのタスク・フローは、基本的にはルール・ディクショナリ・エディタの宣言コンポーネントを囲むラッパーです。このタスク・フローは、タスク・フローが必要なADFベースのWebアプリケーションで、宣言コンポーネントのかわりに使用されます。
Oracle Business Rulesディクショナリ・エディタのタスク・フローの詳細は、Oracle SOA SuiteでのSOAアプリケーションの開発のOracle Business Rulesディクショナリ・エディタのタスク・フローの使用に関する項を参照してください。
Oracle SOAコンポーザでは、ブラウザ・ウィンドウが用意されており、ルール式、XPATH式、日付式など、様々なタイプの式での作業を支援します。
Oracle SOAコンポーザで用意されている、各タイプのブラウザは次のとおりです。
式ビルダーは、XPATH式、ルール式などといった、様々なタイプの式の作成に使用されます。
式ビルダーには、式を直接入力できるフィールドがあります。また、「変数」、「関数」、「演算子」および「定数」の4つのタブがあります。これらの各タブでは、データがツリー構造で表示されます。「変数」タブでは、ルール・メタデータ内のすべての変数が表示されます。「関数」タブでは、ルール・メタデータ内のすべての関数が表示されます。「演算子」タブでは、+、-、*などといった演算子が表示されます。「定数」タブでは、ルール・メタデータ内に存在するすべての定数が表示されます。タブ間を切り替えてツリー内の項目を選択し、「式に挿入」ボタンをクリックして、選択された項目を「式」フィールドのカーソルのある位置に挿入できます。ツリー内で項目が選択されると、「コンテンツのプレビュー」および「説明」領域に、選択された項目の詳細情報が表示されます。いったん式を作成して「OK」をクリックすると、「式ビルダー」ボタンの左にある使用可能なフィールドに、新しく作成された式が表示されます。
図12-37 に、「式ビルダー」ブラウザを示します。
条件ブラウザは、フィールドと階層ツリーを持ち、内側に式ビルダーが埋め込まれています。フィールドに式を直接入力するか、ツリーから項目を選択できます。条件ブラウザでは、フィルタ処理がサポートされています。たとえば、customer
と入力し始めると、customer
と付いた項目でツリーが絞り込まれます。
ツリー内で項目が選択されると、新たに選択されたものが、ただちにフィールドに表示されます。埋め込まれている式ビルダーを使用して、式を作成することもできます。
いったん式ビルダーが起動され、式が作成されると、「条件ブラウザ」フィールドに新しい式が表示されます。いったん式を作成して条件ブラウザの「OK」ボタンをクリックすると、「条件ブラウザ」ボタンの左にあるフィールドに、新しく作成された式が表示されます。
図12-38 に、条件ブラウザを示します。
「日付」ブラウザは、リテラル日付または日付式の選択に使用されます。「日付」ブラウザには、リテラル日付と日付式間を切り替える2つのオプションがあります。一方のオプションが選択されている場合、もう一方は使用不可になります。
次のオプションを選択します。
「カレンダ」ポップアップを使用して日付を入力する「リテラル日付」オプション。
「日付式」フィールドに直接式を入力するか、条件ブラウザを起動して日付式を選択する「日付式」オプション
図12-39 に「日付」ブラウザを示します。
「右のオペランド」ブラウザは、右の複数の式を選択するため使用されます。オペランドは各行に表示されます。「オペランド」フィールドに式を直接入力するか、「条件ブラウザ」を起動して、式を選択できます。「+」ボタンを使用すると、現在の行の後に行が追加されます。「-」ボタンを使用すると、現在の行が削除されます。これらのボタンは選択された演算子に基づき、使用可能または使用不可になります。たとえば、in演算子では、右の複数の式が使用できます。したがって、この場合、ボタンが有効化されます。
図12-40 に、「右のオペランド」ブラウザを示します。
注意:
「右のオペランド」ブラウザを使用すると、右側の式に複数の値を入力できます。ただし、「日付」ブラウザを「右のオペランド」ブラウザの外側に置くことはできますが、その場合、入力可能な式は1つのみになります。これらのどちらのブラウザでも、右側の「式」フィールドに値を直接入力することはできません。いったんブラウザを使用して値を入力後に「OK」をクリックすると、ルールのUIに値がカンマ区切りの値として追加されます。
Oracle SOAコンポーザがセッション内の場合、ルールセット内のデシジョン表の編集、追加、削除ができます。
セッションの使用方法の詳細は、「セッションの作成とパブリッシュ」を参照してください。
デシジョン表内のルール、条件またはアクションの説明を編集できます。条件の上にカーソルを移動すると、右矢印を使用して条件を選択します。条件値をクリックすると、ポップアップが表示され、そこで説明を編集できます。
Oracle SOAコンポーザでは、ルールセットにデシジョン表を追加できます。デシジョン表の使用の詳細は、「デシジョン表の使用の概要」を参照してください。
ルールセットにデシジョン表を追加する手順は、次のとおりです。
Oracle SOAコンポーザを使用すると、デシジョン表に条件行を追加できます。
デシジョン表に条件行を追加する手順は、次のとおりです。
条件行の追加の詳細は、「デシジョン表への条件行の追加方法」を参照してください。
Oracle SOAコンポーザでは、デシジョン表にアクションを追加できます。
デシジョン表にアクションを追加する手順は、次のとおりです。
デシジョン表へのアクションの追加の詳細は、「デシジョン表へのアクションの追加方法」を参照してください。
Oracle SOAコンポーザを使用すると、デシジョン表にルールを追加できます。
デシジョン表にルールを追加する手順は、次のとおりです。
注意:
列幅が足りないため、デシジョン表のセルの内容の全体が表示されない場合は、マウス・ポインタを移動してセルに重ねることで内容を表示できます。また、「タブ・セクションを最大化してください」ボタンをクリックすると、ビューが広くなります。
デシジョン表内の各ルールには、「条件」、「競合」および「アクション」の3つのセクションに属するセルが含まれます。
条件セルの使用
表示モードでは、"?"マークの付いた条件セルは、セルに条件値が格納されていないことを示します。セルに2つ以上の値が指定されている場合は、セミコロン区切りの値リストがセルに表示されます。
編集可能モードでは、条件セルに、複数選択リストで指定された条件値が表示されます。新しいルールを編集する場合や条件値が指定されていない場合は、条件セルは空になっています。
「すべて」を選択した場合は、次のように動作します。
特定の条件セルをクリックした場合は、セルに"All"と表示されます。
特定の条件セルが選択されていない場合は、セルに"-"記号が表示されます。
条件値のリストから、使用可能な任意の値を選択できます。
注意:
条件セルの編集の際に、「バケットによるルールの順序付け」が選択されている場合、デシジョン表がリフレッシュされ、編集されたルール列が選択された条件セルの値により左または右へ移動します。「ツール」ドロップダウンをクリックし、「バケットによるルールの順序付け」を選択します。
注意:
条件と関連付けられた値セットは、条件をクリックすると変更できます。これにより、値セット・リストおよび「値セットの編集」ボタンが有効化され、関連する値セットを編集できるようになります。
アクション・セルの使用
アクションを追加する際は、指定されたアクション・タイプのアクション行が作成されます。アクション・セルには、次の2つのタイプがあります。
「アクション・フォーム」セル。チェック・ボックスを含みます。ルールの起動の際に、選択されたアクションのみが実行されます。図12-45 で、R1およびR3アクション・チェック・ボックスが選択されており、その他のアクション・チェック・ボックスの選択は解除されています。この場合、「R1」が起動するとアクションが実行されますが、「R2」が起動してもアクションは実行されません。
注意:
「アクションの編集」ボタンは、「アクション・フォーム」セルの行が選択されている場合のみ、使用可能になります。「アクションの編集」ボタンを使用すると、「アクション・エディタ」ウィンドウが起動します。
「アクション・パラメータ」セル。「アクション・フォーム」のパラメータが含まれます。各フィールドにアクション・パラメータ値を直接入力するか、「条件ブラウザ」ウィンドウを起動して値を選択できます。
図12-45 に、「アクション・パラメータ」セルの値を選択できる、「アクション・エディタ」ウィンドウを示します。「常に選択」チェック・ボックスを選択した場合、その特定のアクション・フォームのすべてのチェック・ボックスが選択されます。指定されたアクションが常に選択のため、アクション・フォームに属するすべてのチェック・ボックスも使用不可になります。
注意:
デシジョン表のすべての条件セルおよびすべてのアクション・セルは一括で削除できます。「条件」または「アクション」の各ボックスをクリックすると、デシジョン表のすべての条件またはアクションがそれぞれ選択されます。
その後、デシジョン表のツールバーにある「削除」ボタンをクリックすると、条件またはアクションを削除できます。
デシジョン表の「バケットによるルールの順序付け」チェック・ボックスは、デフォルトで有効になっています。つまり、条件行に関連付けられている値セット内の値の順序によって条件セルの順序が決まり、それに従いルールの順序も決まります。「ツール」ドロップダウンをクリックし、「バケットによるルールの順序付け」を選択します。
デシジョン表のルールの順序を変更するには、値セット内の値の順序を変更する必要があります。たとえば、デシジョン表でのルールの順序付けは、条件行に関連付けられているLOV値セット内の値の相対位置を変更することで操作できます。ただし、範囲値セットは並べ替えできないことに注意してください。
デシジョン表で「バケットによるルールの順序付け」チェック・ボックスが選択されている状態でルールを追加すると、デフォルトで新しいルールが先頭のルール列として追加されます。つまり、その他のルール列は、値セット値の順序が定義どおりに保たれるように、必要に応じて移動します。「バケットによるルールの順序付け」チェック・ボックスが無効な状態でルールを追加すると、新しいルールが最後のルール列として追加されます。「バケットによるルールの順序付け」チェック・ボックスをこれから選択すると、新しく追加されたルールが最初の列に移動します。
Oracle SOAコンポーザでは、ファクトに条件を追加することでデシジョン表にテストを定義できます。テストの定義とルール条件の使用方法の詳細は、「ルールの使用」を参照してください。
注意:
ファクトに複雑な条件を追加するには、「拡張テストの使用方法」を参照してください。
デシジョン表にテストを追加する手順は、次のとおりです。
デシジョン表の内容を変更して、すべてのケースに関する完全なルールセットを含む表の作成、または複数のケースに関して最小数のルールを提供する表を作成できます。分割操作と圧縮操作によって、デシジョン表の内容を操作できます。
表分割操作では、条件間で値の組合せごとにルールが作成されます。たとえば、2つのブール条件を持つデシジョン表には、2 x 2 = 4 のルールが作成されます。20のブール条件を持つデシジョン表では、2**20から100万のルールが作成されます。したがって、作成されるルールの数が少なく、アクション・セルに十分に収まる場合は、表分割を使用するのが適切です。
Oracle SOAコンポーザを使用すると、デシジョン表全体に分割を適用できます。ただし、分割操作を個々の条件行または条件セルに対して実行することはできません。
デシジョン表を分割または圧縮する手順は、次のとおりです。
Oracle SOAコンポーザを使用すると、ルールの条件を同一アクションとマージすることでデシジョン表を圧縮できます。そのため、表を圧縮するとデシジョン表から条件を削除できます。ただし、Oracle SOAコンポーザを使用する場合、2つ以上の条件セルをマージすることはできません。
デシジョン表の分割および圧縮の詳細は、「デシジョン表の操作の概要」を参照してください。
デシジョン表では、欠落しているルールはギャップとも呼ばれます。デシジョン表にギャップが発生するのは、各条件からの1つの値の組合せの一部がルールの対象でない場合です。
Oracle SOAコンポーザを使用すると、デシジョン表の欠落しているルールをチェックできます。
欠落しているルールのチェック手順は、次のとおりです。
欠落しているルールのチェックの詳細は、「デシジョン表のギャップのチェック方法」を参照してください。
デシジョン表内のルールが重複し、かつ異なるアクションが存在する場合、ルールが競合する可能性があります。2つのルールが重複するのは、その条件セルの1つ以上に共通する値がある場合です。ただし、競合のない重複は一般的であり、問題はありません。デシジョン表での競合の詳細は、「デシジョン表の競合分析」を参照してください。
Oracle SOAコンポーザを使用すると、デシジョン表内の競合を検出および解決できます。
デシジョン表の競合解決を実行する手順は、次のとおりです。
Oracle SOAコンポーザでは、ルールセットで拡張モードのルールを使用できるのと同様、デシジョン表でも拡張モードのルールが使用できます。拡張モードのルール・オプションを使用すると、パターンに条件およびアクションを追加、変更、削除するだけでなく、パターンを作成、変更および削除できます。
注意:
「拡張モード」機能は、下位互換性のためにのみ維持されています。簡易モードで拡張テストを使用し、必要な任意の種類の条件を作成することをお薦めします。
拡張モードで実行できることはすべて、簡易モードで実行できます。拡張モード・ルールは、単に「拡張モード」チェック・ボックスの選択を解除することで同等の簡易モードに変換できます。
詳細は、「拡張テストの使用方法」を参照してください。
拡張モードのオプションを表示および使用する手順は、次のとおりです。
Oracle SOAコンポーザでは、ルールセット内のデシジョン表を削除できます。デシジョン表の使用の詳細は、「デシジョン表の使用の概要」を参照してください。
ルールセット内のデシジョン表を削除する手順は、次のとおりです。
ビジネス・ユーザーの場合は、Microsoft Excelを使用するとデシジョン表の編集が容易になることがあります。新機能を使用すると、開発者とビジネス・ユーザーのどちらも、デシジョン表をエクスポートしてExcelで編集してから、ディクショナリにデシジョン表をインポートして戻すことができます。
Microsoft Excelにデシジョン表をエクスポートすると、「新規アサート」、「変更」、「割当て」、「リトラクト」、「コール」など、基本のアクション・タイプしかサポートされません。
デシジョン表は、設計時にエクスポートして、Oracle JDeveloperまたはBusiness Process Composerで編集できます。実行時には、エクスポートしてSOAコンポーザで編集できます。ルール・ディクショナリから同じExcelワークブックに1つ以上のデシジョン表をエクスポートできます。
ディクショナリにインポートして戻すときに、新しいディクショナリを作成するか、既存のディクショナリを上書きするか、差異のマージを実行することができます。差異のマージにより、ディクショナリを比較できます。
ディクショナリの比較の詳細は、「Oracle Business Rulesディクショナリの比較およびマージ」を参照してください。
Excelワークブックの構造は、図12-50 に示すように複数のワークシートで構成されます。これらのシートは1枚のREADMEシート、1枚の値セットシートおよびエクスポートされた各デシジョン表に対応する1枚ずつのシートです。Excelで編集できるものはルールと値セットのみです。.xlsm (デフォルト)または.xlsにエクスポートできます。
スプレッドシートを開く際のデフォルトではマクロが無効化されています。マクロを有効にすると、「Oracle Business Rules」という新しいタブが表示されます。このタブで、ルールの追加または削除、セルのマージまたは分割、値セットの値の追加または削除を実行できます。また、強調表示の無効化または有効化、簡易モードまたは拡張モードの使用、READMEシートの非表示または表示も実行できます。
マクロを無効にした状態でも編集はできますが、次のことを実行できません。
制限付きセルでのドロップ・リストからの値の選択
フリー・フォーム・セルの編集
セル範囲のコピーおよび貼付けによるルールまたは値セットの追加
セル範囲の削除によるルールまたは値セットの削除
セルの分割またはマージ
値セットの自動作成
デシジョン表または値セットの構造の検証
事前定義済のマクロを使用すると、次の実行が可能になります。
ルールの追加と削除
セルの分割またはマージ
値セットの追加または削除
編集可能なセルには次が含まれます。
ルール、条件、アクションの説明。
条件およびアクション・ノード。
アクションの状態。
アクション・パラメータのパラメータ化オプション
編集不可のセルには次が含まれます。
条件式。
アクション式。
アクション・パラメータ。
これらのセルを編集しようとすると、図12-51 に示すようにエラー・メッセージが表示されます。
SDKには、複数のデシジョン表にわたる複数の条件と関連付けることができる共有値セットがあります。ただし、Excelでは、共有値セットは存在しません。各条件に独自の値セットがあるため、Excelで変更可能な場合にエクスポート可能な値セットは1つのみになります。変更不可の値セットには、次が含まれます。
リンク先のディクショナリ値セット。
列挙。
ブール値セットなどの内部値セット。
ワークシートでは、変更不可の値セットと関連付けられた条件のドロップダウンから値を選択することのみが可能です。強調表示メカニズムによって、変更不可の値セットに関連付けられている条件が示されます。
図12-52 に示すように、エクスポート機能は、ツールバー・オプションの「Excelにエクスポート」ボタンを使用して起動できます。
Excelフォーマットでエクスポートするには:
インポートできるExcelスプレッドシートは前にエクスポートしたもののみです。
編集済デシジョン表をディクショナリにインポートして戻す手順は、次のとおりです。
注意:
マージは注意深く実行してください。「Oracle Business Rulesディクショナリの比較およびマージ」を参照してください
Excelで、マクロを有効化して、「Oracle Business Rules」タブを表示します。これにより、ルールの作成、値セットの編集、およびプリファレンスの設定を行えるオプションが表示されます。
詳細は、「Microsoft Excelでのデシジョン表の編集」を参照してください。
Oracle SOAコンポーザを使用して、テスト関数を定義できます。これはルールおよびデシジョン表の条件およびアクションで発生する、非常に長い式を短縮する手段を提供するものです。変数およびその値は、インラインのビジネス条件定義と表現されることがあります。テスト変数は、インライン・エイリアスとも呼ばれます。
したがって、次のような記述ではなく
次のように記述できます。
続いてテスト条件で、foo
を式の一部として使用できます。簡単なものから複雑な式まで、あらゆる式にすることが可能です。
変数を定義するには、ルールの「IF」セクションで、「テストの追加」のすぐ横の下矢印をクリックし、リストから「変数」を選択する必要があります。
変数とは別に、簡易テスト、ネスト・テスト((...)
)およびNotネスト・テスト(not (...)
)などの、他のテスト・フォームのタイプを定義することもできます。
「差異のマージ」機能により、ディクショナリの最新バージョンと任意の旧バージョンとの差異を確認し、それ以降の変更を保存またはロールバックできます。実行時に、SOAコンポーザで、「差異のマージ」機能を使用して、「ファイルシステム」、「公開済のバージョン」、または「保存済バージョン」を、開いているディクショナリと比較できます。
SOAコンポーザは、編集済バージョンと以前に保存したバージョンとの比較、保存済バージョン以降に変更されたアイテムの選択、およびそれらをその保存されている値に戻すことのみをサポートしています。最新バージョンから見た差異が確認されます。
「マージ」機能を使用すると、2つのバージョン間との差異を確認し、それらの差異を解決またはマージできます。変更されたバージョンから見た差異が確認されます。
「差異ディクショナリ」オプションは、図12-53 に示すようにルール・デザイナ・ツールバーで使用できます。
警告:
ディクショナリは差異またはマージ・モードになっているときは読取り専用になるため、この機能の実行を決定する前に、すべての変更を解決する準備をする必要があります。
ディクショナリのマージは注意深く実行してください。
ディクショナリを比較する場合は、新しいディクショナリを開き、「差異のマージ」を使用して、比較するディクショナリを選択します。新しい方のディクショナリに存在しないものはすべて、新しいバージョンからの削除としてフラグが指定されます。
ディクショナリ間の差異を調べる手順は、次のとおりです。
「差異のマージ」機能は、JDeveloperルール・デザイナのほうが完全に機能します。詳細は、「2つ以上のディクショナリを比較またはマージする方法」を参照してください。
Oracle BPMを使用すると、一部のルール・コンポーネントの名前をローカライズできます。
これらのエイリアスの変換バージョンを提供することで、次のアプリケーションを使用する際に、ユーザーがこれらのエイリアスを自分のブラウザの地域の設定に基づいて表示できるようになります。
Oracle SOA Composer
Oracle Business Process Composer
Oracle Process Workspace
注意:
ロケールのディクショナリは、リソース・バンドルとして格納されています。Oracle JDeveloperを使用して、リソース・バンドルを作成する必要があります。これらはSOAコンポジット・アプリケーションの一部としてデプロイする必要があります。
Oracle SOAコンポーザを使用してリソース・バンドルを作成することはできません。ただし、Oracle SOAコンポーザを使用して、リソース・バンドル内のローカライズされた文字列を編集することは可能です。
Oracle SOAコンポーザを使用すると、次のルール・コンポーネントのエイリアスをローカライズできます。
値
値セット
デシジョン関数
デシジョン関数のファクト
グローバル
リンク
ルールセット
ルール
パターン
Oracle SOAコンポーザを使用して、セッション内で、ルール・コンポーネントの特定に使用される、エイリアスおよびその詳細の翻訳バージョンを追加できます。
ルール・コンポーネントのエイリアスをローカライズする手順は、次のとおりです。
注意:
ロケール・ファイルのオフラインでの編集はサポートされていません。ロケールの追加の際は、生成されたxmlファイルにすべてのキーがデフォルトで含まれているわけではありません。これらは値が追加される際に追加されます。
エディタからローカライズすることもできます。エディタからローカライズするには、「変換」ボタンをクリックします。
翻訳エディタで、ルール・コンポーネントの「エイリアス」を入力し、「OK」をクリックできます。
Oracle SOAコンポーザを使用すると、実行時にルール・ディクショナリの更新を行うことができます。ただし、Oracle SOAコンポーザを介してディクショナリに加えられた変更は、Oracle JDeveloperに自動的には反映されません。Oracle SOAコンポーザで行われたディクショナリの更新を、Oracle JDeveloperで使用可能なディクショナリに同期するには、Oracle Enterprise Manager Fusion Middleware Controlコンソールの「エクスポート」オプションを選択する必要があります。このユーティリティを使用すると、SOAコンポジット・アプリケーションをディクショナリとともにエクスポートできます。
Fusion Middleware Controlコンソールで「エクスポート」オプションを選択する手順は、次のとおりです。
Oracle SOAコンポーザで、セッション内で、下部のタブを使用して診断を確認し、エラーがないかディクショナリを検証します。セッションをパブリッシュした後、「診断」タブに移入されます。
セッションのパブリッシュ中に、別のユーザーが同じアーティファクト(ディクショナリなど)に変更を行った場合、それがこのセクションに一覧表示されます。競合を処理するために3つのオプションがあります。
「検証ログ」タブでは、すべてのディクショナリ・レベルの検証エラーが一覧表示されます。
検証ログは自動的に更新されません。検証は、「検証」をクリックした場合と、変更を保存したときにのみ実行されます。
たとえば、エラーがある新しいルールが追加された場合、「検証ログ」タブは自動的には更新されません。ツールバーの「検証」ボタンをクリックすると、検証ログが新しいエラー・エントリで更新されます。
図12-59 に示すように、「診断」タブを使用して、他のユーザーが同じアーティファクトを変更しているか調べ、それらの競合を解決します。
自身または他のユーザーが行った変更を解決する手順は次のとおりです。
「履歴センター」タブに、現在のアクティブなセッションで自身または他のユーザーが行った保留中の変更が表示されます。たとえば、自身が行ったすべての変更を一度にすばやく元に戻す場合など、ここから、変更を破棄できます。
Oracle SOAコンポーザを使用すると、Approval Management Extensions (AMX)のルールと関連付けされている、または関連付けされていないタスクを表示および編集できます。AMXを使用すると、作業アイテムの承認階層を決定するビジネス・ドキュメントおよび関連付けられたルールを考慮することによって、ヒューマン・ワークフローの複雑なタスク・ルーティング・スリップを定義できます。
さらに、AMXでは、スーパーバイザまたはポジション階層に基づいて関連付けられたリスト・ビルダーを使用して、複数ステージの承認を定義できます。設計時には、Oracle JDeveloperのヒューマン・タスク・エディタで承認タスクを定義し、そのタスクをBPELプロセスに関連付けることができます。Approval Managementおよびタスクの詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』のApproval Managementの使用に関する項を参照してください。
Oracle SOAにはタスク・エディタがタスク・フローとして埋め込まれているため、タスク・メタデータのライフサイクル全体の操作を表示および実行できます。
タスク・メタデータを表示する手順は、次のとおりです。
従来のルールとAMXのルールは、ネーミング規則により区別できます。
たとえば、コンポジットに次のアーティファクトがあるとします。
<AMXタスク名>.tsk
<AMXルール名>Rules.rules
タスク構成を使用すると、ビジネス・ユーザーと管理者は、ワークフロー・デザイナが自動的に構成したルールを参照できます。この事前定義済ルールは、特定の顧客向けに、適用可能な顧客企業ポリシーに基づいて変更できます。
Oracle SOAコンポーザでタスク構成を使用すると、承認フローに関連付けられた、イベント・ドリブン(タスクのみ)およびデータ・ドリブンの各ルール(関連付けられたAMXのルールが存在するタスク)を実行時に編集できます。
イベント・ドリブンの設定を構成する手順は、次のとおりです。
次のオプションおよび設定を構成できます。
タスク集計
エラー通知
割当ておよびルーティング・ポリシー
有効期限とエスカレーションのポリシー
通知設定
タスク・アクセスの設定
タスクでエラーが発生した場合、通知する必要があるユーザー名およびグループ名を指定できます。「エラー通知時」検索ボタンをクリックして、「エラー割当て先の構成」ダイアログ・ボックスを表示する必要があります。そこでユーザー名またはグループ名を指定できます。
割当ておよびルーティング・ポリシーは、Oracle SOAコンポーザで使用可能なオプションを使用して設定できます。クリックして、割当ておよびルーティング・ポリシーの設定で使用可能なオプションを選択します。
イベント・ドリブンの構成で使用可能な、割当ておよびルーティングのオプションの詳細は、『Oracle Fusion Middleware Oracle SOA Suite開発者ガイド』のルーティング・ポリシーの手法に関する項を参照してください。
タスクの有効期限とエスカレーションのポリシーは、「有効期限およびエスカレーション・ポリシー」リストにある使用可能な項目を使用して設定できます。使用可能なリスト項目は、次のとおりです。
期限切れなし
期限切れまでの時間
エスカレートまでの時間
期限更新までの時間
タスクの通知設定は、Oracle SOAコンポーザの「通知設定」セクションで使用可能なオプションを使用して構成できます。
GUID-C3B94CC7-AE29-48CE-AC7A-7312B25BB6BA.htm#ConfiguringNotificationSettings-24C943CE__BABFDIHHに、タスクの通知設定を構成するのに使用できる様々なオプションを示します。
アクセスルール設定は、ユーザーが実行できるアクションを制御するよう設定できます。コンテンツおよびアクションの権限も、作成者(イニシエータ)、所有者、割当て先、レビューアなどユーザーの論理上のロールに基づいて指定できます。
Oracle SOA Composerでは、GUID-C3B94CC7-AE29-48CE-AC7A-7312B25BB6BA.htm#ConfiguringTaskAccessSettings-24CA0656__BABFCAHFおよびGUID-C3B94CC7-AE29-48CE-AC7A-7312B25BB6BA.htm#ConfiguringTaskAccessSettings-24CA0656__BABIACHCに示すように、「タスク・アクセス」領域およびタブにある使用できるオプションを使用して、アクセス設定を設定できます。
タスク・アクセスの構成の詳細は、『Oracle Fusion Middleware Oracle Business Process Managementモデリングおよび実装ガイド』のセキュリティ・アクセス・ルールの定義方法に関する項を参照してください。