![MyCo 01-01-01 ruleset requires MyCoInt:01-01-01 and Customer:01-01-03](https://demo5-academy.pega.com/sites/default/files/styles/1024/public/media/images/2022-03/ruleset-validation-application.png?itok=j7REOSeZ)
ルールセット検証
ルールセット検証は、ルールが保存されるたびに実行されます。 ルールセットがプロモートされたときに参照されるルールがターゲットシステムで確実に利用可能になるようにします。 ルールセット検証は、実行時のルールレゾリューションには影響せず、設計時にのみ適用されます。
選択した検証モードは、ルールセットのすべてのバージョンに適用されます。 検証モードには次の2つのオプションがあります。
- アプリケーション検証
- ルールセット検証
New Applicationウィザードでは、アプリケーション検証(AV)モードとルールセット検証(RV)モードの両方に設定されたルールセットが作成されます。 アプリケーションルールを含むルールセットは、設計時と実行時の差を縮めるためにAVモードに設定されています。
逆に、New Applicationウィザードで作成した組織のルールセットはRVモードに設定されています。 RVでは、移行時の前提条件となるルールセットが厳格に検証されます。
アプリケーション検証モード
AVモードが使用されている場合、ルールセットのルールから、次で定義されたルールセットのすべてのルールを参照できます。
- 同じアプリケーション
- 任意の組み込みアプリケーションに属するルールセット
ルールセット内のルールからは、現在のアプリケーションスタックの外、または定義するアプリケーションの上にあるルールを参照できません。 以下の例では、すべてのルールセットがAVモードになっています。 網掛けされているボックスと網掛けされていないボックスはアプリケーションを表しています。 ローンアプリケーションは、ローンのフレームワークに基づいて行われます。
次の図で「+」アイコンをクリックすると、各ルールセットに適用されるAVモードの詳細が表示されます。
AVでは、同じアプリケーション内で共依存ルールセットを使用できます。 つまり、LoanPricingのルールからはLoanUnderwritingのルールを参照でき、LoanUnderwritingのルールからはLoanPricingのルールを参照できるということになります。 アプリケーションの各ルールセットにはバージョンがあります。 AVモードを使用する場合、アプリケーションによって、特定のルールセットにアクセス可能なルールセットバージョンが決まります。
たとえば、ルールセットLoanPricing:01-01-03は、ルールセットLoanUnderwritingのルールセットバージョン01-01-01~01-01-03と、ルールセットLoanPricingFWとLoanUnderwritingFWのルールセットバージョン01-01-01~01-02-10にアクセスできます。
AVモードが選択されている場合、アプリケーションの定義を変更すると、ルールが無効になることがあります。 無効なルールは、実行時に重大なエラーを引き起こす可能性があります。 Dev StudioのValidationツール(「Configure」>「Application」>「Tools」>「Validation」)を使用すると、アプリケーション内の無効なルールを素早く特定できます。
ルールセット検証モード
RVモードを使用すると、各ルールセットバージョンは、そのルールセットバージョンが依存する1つ以上のルールセットバージョンを定義します。 たとえば、MyCoInt:01-01-01とCustomer:01-01-01のルールを使用するルールセットMyCo:01-01-01を作成した場合、MyCoInt:01-01-01とCustomer:01-01-01のルールセットバージョンを前提条件として指定する必要があります。 ルールセットから参照できるのは、前提条件として指定されているルールセットバージョンのルール(およびその前提条件)のみです。
たとえば、MyCo:01-01-01でCustomer:01-01-03が前提条件として指定されている場合、Customerルールセットのバージョン01-01-01~01-01-03のルールを参照できます。
ルールセットの前提条件
使用するルールセットのバージョンに前提条件となるルールセットバージョンがない場合は、ベースの製品のルールセットPega-ProcessCommanderを前提条件として指定する必要があります。
Pega-ProcessCommanderルールセットには、すべての製品のルールセットがリストされています。 Pega-ProcessCommanderより下の製品のルールセットをリストする必要はありません。 製品にはデフォルトでPega-ProcessCommanderルールセットの99パッチバージョンが用意されています。 そのルールセットバージョンを前提条件として使用することで、製品の更新後にルールセットを更新する必要がなくなります。
たとえば、製品が07-10-13から07-10-18に更新された場合、99バージョンでは自動的にルールセットバージョンの最高位のパッチが選択されるため、ルールの前提条件を更新する必要はありません。
補足: ルールセットの前提条件は循環させることはできません。 たとえば、Alpha:01-01-01がBeta:01-01-01を前提条件として定義している場合、Beta:01-01-01はAlpha:01-01-01を前提条件として定義することはできません。
以下のインタラクションで理解度をチェックしてください。
アプリケーションルールセット検証モードの組み合わせ
AVモードとRVモードを使用するルールセットを組み合わせることができます。
- ルールセットの横に括弧で囲まれたルールセットがもうひとつある場合、RVが使用されます。 たとえば、MyCoPL [MyCo]の場合、括弧内のMyCoのルールセットが前提条件のルールセットです。
- ルールセットの横に括弧で囲まれたルールセットがない場合は、AVが使用されます。
RVでは、前提条件に含まれていないAVルールセットを呼び出すことはできません。
次の図で「+」アイコンをクリックすると、AVモードとRVモードを組み合わせたルールセットの詳細が表示されます。
ルールセット検証のベストプラクティス
ルールセットを構成する際は、以下のベストプラクティスに従います。
- RVは、組織のルールセットなど、複数のアプリケーションで使用することを前提に設計されたルールセットにのみ使用し、簡単に移動できるようにし、特定のアプリケーションへの依存性が生じないようにします。
- 共通のルールセットのためのアプリケーションを作成し、組み込みの機能を使用して、共通のルールセットをアプリケーションに含めることができます。
- ロックされていないAVルールセットを1つのアプリケーションのみに含めます。 これにより、AVルールセットが、そのルールセットが含まれていないアプリケーションに存在しないかもしれないルールを参照しないようにします。
- 重要な変更やマイルストーン(たとえば、アプリケーションルールセットリストや組み込みアプリケーションの変更、ロック/エクスポート前の変更など)の実装後にValidationツールを実行します。
補足: Validationツールについて詳しくは、「Validation tool」を参照してください。
以下のインタラクションで理解度をチェックしてください。
このトピックは、下記のモジュールにも含まれています。
- アプリケーションルールセット v3
- アプリケーションルールセット v4
If you are having problems with your training, please review the Pega Academy Support FAQs.