ルールレゾリューションプロセスおよびルールの可用性
ルールレゾリューションプロセスの対象となるルールには、可用性の値があります。ルールの現在の可用性は、Ruleフォームのルール名または説明の横に表示されます。
次の図は、ルールフォームでのルールの可用性を示しています。
可用性の設定は、ルールレゾリューション時にルールが使用可能かどうかを決定します。ルールの可用性は、Dev Studioでルールを表示、コピー、または編集できるかどうかも決定します。
ルールの可用性は、次の5つの値のいずれかに設定できます。
- Available
- Final
- Not Available
- Blocked
- Withdrawn
Availability = Available
可用性が「Available」に設定されている場合は、そのルールがルールレゾリューションプロセスで使用できることを示しています。
可用性が「Available」に設定されている場合、Dev Studioでルールの表示、コピー、編集、および実行が可能です。
Availability = Final
可用性が「Final」に設定されている場合は、そのルールがルールレゾリューションプロセスで使用できることを示しています。
「Final」と表示されたルールは、Dev Studioで表示および実行できますが、同じ名前の別のルールセットに編集したりコピーしたりすることはできません。最終ルールは、同じルールセット内の上位バージョンを通じて上書きすることはできません。
Availability = Not Available
可用性が「Not Available」に設定されている場合は、そのルールがルールレゾリューションプロセスで使用できないことを示しています。 ルールレゾリューション処理中に「Not Available」に設定されたルールが見つかった場合、次に上位のバージョンのルールがルールレゾリューションの対象となります。次の表は、ランク付けされたルールのリストを示しています。Purchasing:02-01-10ルールセット内のCreateRequestという名前のルールの可用性は「Not Available」に設定されています。直上のバージョンであるPurchasing:02-01-05のルールがルールレゾリューションの対象となります。
最初の展開時に、ルールの可用性を「Not Available」に設定することができます。これにより、検証を行わずにルールを保存することができます。Not Availableと設定されたルールは、Dev Studioで表示、コピー、または編集できますが、実行はできません。
次の画像は、削除対象として設定されたルールを強調表示するルールレゾリューションアルゴリズムを示しています。
次の図は、削除対象として設定されたルールを除外した後のルールレゾリューションアルゴリズムを示しています。
次の問題に答えて、理解度をチェックしましょう。
Availability = Blocked
可用性が「Blocked」に設定されている場合は、そのルールがルールレゾリューションプロセスで使用できることを示しています。「Blocked」と設定されたルールは、Dev Studioで表示、コピー、または編集できますが、実行はできません。ルールレゾリューション中にブロックされたルールが選択されると、実行は停止され、ログファイルにエラーメッセージが追加されます。
たとえば、Purchasing:02-01-10ルールセット内のCreateRequestという名前のルールの最上位バージョンの可用性は「Blocked」となっています。このバージョンのルールは、ルールレゾリューション時に利用できますが、実行されません。これより上位バージョンのルールは存在しないため、例のルールの場合、Flow Actionは表示されません。
次の図は、ルールレゾリューションプロセス中にスキップされない、ブロックされたルールを示しています。
ルールへのアクセスが使用されてはならず、更新されたルールの開発およびリリースに時間を要する場合、ルールをブロックします。
Availability = Withdrawn
可用性がWithdrawnに設定されている場合、現在のバージョンのルールセットと前のバージョンのルールセットにあり、同じ目的(またはルールタイプ)とApply to:クラスを持つすべてのルールが非表示になり、ルールレゾリューションプロセスで可用性が確認された後、対象外となったことを意味します。
ルールレゾリューション中に「Withdrawn」と表示されたルールが見つかった場合、親クラスまたはアプリケーションのルールセットスタックで直上のルールセットでそのルールのインスタンスが検索されます。
下の例では、Purchasing:02-01-10ルールセット内のCreateRequestという名前のルールの可用性は「Withdrawn」になっています。同じルールセットに含まれ、バージョン番号が同じかそれ以下で、同じ目的とApply Toクラスを持つすべてのルールは、ルールレゾリューションの対象外となります。Purchasing:02-01-15のCreateRequestという名前のルールは、ルールセットのバージョンが取り消されたルールのルールセットのバージョンよりも上位にあるため、ルールレゾリューションの対象となります。Purchasing:02-01-15のルールが存在しない場合は、親クラスであるTGB-Purchasing-Workのルールが選択されます。
Withdrawnと設定されたルールは、Dev Studioで表示、コピー、または編集できますが、実行はできません。
次の画像は、削除対象として設定されたルールを強調表示するルールレゾリューションアルゴリズムを示しています。
次の図は、削除対象として設定されたルールを除外した後のルールレゾリューションアルゴリズムを示しています。
次の問題に答えて、理解度をチェックしましょう。
このトピックは、下記のモジュールにも含まれています。
- ルールレゾリューション v8