ルールベースの設定を使用する

Version:
日本語翻訳に関する免責事項

このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。

パッチ ファイルを使用してSitecore設定をカスタマイズする場合、ルールベースのロジックを使用して、特定の設定が適用される条件を指定できます。

ルールベースの構成では、web.configファイルに設定されているルール定義を使用します。Sitecoreには、インスタンスが実行するSitecoreロールを決定する roleと、Sitecoreが最適化する検索プロバイダーを決定するsearchの2つの事前定義されたルール定義が付属しています。また、独自のカスタムルール定義を追加することもできます。

このトピックでは、次の方法について説明します。

構成設定をルールに依存させる

構成設定をルールに依存させるには:

  1. ルールがweb.configファイルで定義されていることを確認します。 これは、事前定義ルール または カスタム・ルールにすることができます。

  2. 実装する構成設定を含む パッチ ファイル を作成します。

  3. パッチ・ファイル内の <configuration> ステートメントにxmlns:rulename="http://www.sitecore.net/xmlconfig/rulename/" 形式のステートメントを追加して、ルールの名前空間を登録します。

    メモ

    事前定義ルール定義 ロール を使用してパッチ・ファイル を検索する 場合は、それらのネームスペースも登録する必要があります。

    たとえば、次の例では、localenvというルール定義の名前空間を追加します。

    <configuration xmlns:patch=http://www.sitecore.net/xmlconfig/ xmlns:localenv="http://www.sitecore.net/xmlconfig/localenv/">
  4. 1つの設定をルールの値に依存させるには、設定を定義するステートメントに構文rulename:require=testvalueのテストを追加します。

    たとえば、次のようにSearch.ClassicSearch.MaxResults6に設定します ( localenvに の値QAが含まれている場合

    <setting name="Search.ClassicSearch.MaxResults" localenv:require="QA">
    <patch:attribute name="value">6</patch:attribute>
    </setting>
  5. パッチ・ファイル内のすべての設定をルールの値に依存させるには、シンタックスrulename:require=testvalueを使用してテストをパッチ・ファイルの<sitecore>ステートメントに追加します。たとえば、<sitecore> ステートメントに含まれるすべての設定が適用されます (localenvに値が含まれている場合QA

    <sitecore localenv:require="QA">
    
    </sitecore>
手記

localenvに複数の値が含まれている場合、localenv:require="QA" ステートメントは、値の1つがQAである限りtrueです。ステートメントは、ルール定義に含まれるすべての値と一致する必要はありません。

テストには複数のテスト値を含めることができ、演算子andorおよび ! (not) を使用できます。次の表に、有効なルール テストの例を示します。

ルールテスト

結果

localenv:require="QA"

localenvQAが含まれている場合、この設定が適用されます。

localenv:require="!QA"

localenvQAが含まれていない場合、この設定が適用されます。

localenv:require="QA or Test"

この設定はlocalenvQAまたはTest、あるいはその両方にが含まれている場合に適用されます。

localenv:require="QA and Test"

この設定は、localenvQATestの両方が含まれている場合に適用されます。

localenv:require="QA and !Test"

この設定は、localenvQAが含まれているがTestが含まれていない場合に適用されます。たとえば、localenvQA,Productionの場合は適用されますが、QA,Testの場合は適用されません。

localenv:require="(QA or Production) and !Test"

この設定はlocalenvQAまたはProductionが含まれているが、Testが含まれていない場合に適用されます。たとえば、localenvQA,Developmentの場合は適用されますが、QA,Testの場合は適用されません。

同じ設定に対して2つ以上のルールを使用する

複数のルールのテストを同じ構成設定に追加できます。

同じ設定に対して2つ以上のルールを使用するには:

  • 個々の設定のステートメントまたは <sitecore> ステートメントに必要なすべてのテストを追加します。Sitecoreは、すべてのテストに合格した場合に設定を適用します。

    次の例では、Sitecoreは、localenvに値QAが含まれ、roleに値ContentManagementまたはContentDeliveryの値が含まれている場合に設定を適用します。設定を適用するには、両方のテストに合格する必要があります。

    <sitecore localenv:require="QA" role:require="ContentManagement or ContentDelivery">

テストは常にandを使用して連結されます。同じステートメントで複数のテストを連結する場合、or or notは使用できません。個々のテスト内では引き続きandor、およびnotを使用できます。たとえば、次のステートメントは有効です。

<sitecore localenv:require="QA and !Test" role:require="Standalone or ContentDelivery">
手記

設定の表示ツールを使用すると、Sitecoreが実行時にコンパイルしたときの設定を確認できます。また、Show Config ツールを使用して、実際に構成を変更せずに、構成ルールの変更や構成レイヤーの無効化をシミュレートすることもできます。

この記事を改善するための提案がある場合は、 お知らせください!