---
title: "設定データ入力を制御するための検証ポリシーを追加してください"
slug: "add-a-validation-policy-to-control-configuration-data-input"
abstract: "エンティティプロパティのデータ入力値が有効であることを保証するカスタム検証ポリシーの作成方法。"
---
# 設定データ入力を制御するための検証ポリシーを追加してください

Commerce EngineはPlugin.Validation.PolicySet(the-plugin-validation-policyset.md "The Plugin.Validation.PolicySet") JSONファイル内に複数のデフォルト検証ポリシーをあらかじめ定義し、データ入力値を検証します。ポリシーセットファイルを更新してカスタム検証ポリシーを追加したり、既存のポリシーを変更したりして特定のビジネスルールを強制し、データの整合性を確保することができます。

検証ポリシーは、Business Toolsインターフェースで入力されたデータおよびAPIリクエストで入力されたデータに適用されます。

以下の手順は、ショッピングカートの命名規則の例を強制するための新しいカスタム検証ポリシーを追加する方法を示しています。

-   カート名は英数字の文字のみを含められます。
-   カート名の長さは4文字から10文字の間でなければなりません。

カスタム検証ポリシーを追加するには:

1.  Commerce Engineのサービスインスタンスで、wwwroot\\data\\Environments\\Plugin.Validation.PolicySet-1.0.0.jsonファイルを開いてください。
    
2.  ファイルの一番下に行き、以下のサンプルに示されているポリシーを追加します。
    
    -   "TypeFullName"は、検証すべきプロパティ値を定義するCartエンティティクラスの名前空間に対応します。
    -   "Name"プロパティは検証対象のエンティティプロパティ値の名前であり、この場合はプロパティ"Name"カートです。
    -   "MinLength"プロパティは、"Name"値が有効であるために必要な最低文字数を強制します。
    -   "MaxLength"プロパティは、"Name"値が有効であるために許される最大文字数を強制します。
    -   "RegexValidator"プロパティは、英数字文字のみを許容する正規表現を定義します。
    -   "RegexValidatorErrorCode"値は、エラーメッセージが定義される[Commerce Term](https://doc.sitecore.com/xp/ja/developers/102/sitecore-experience-commerce/commerce-terms-and-localization.html "Commerce terms and localization")を指します。
    
    {
     "$type": "Sitecore.Commerce.Core.ValidationPolicy, Sitecore.Commerce.Core",
     "TypeFullName": "Sitecore.Commerce.Plugin.Carts.Cart",,
     "Models": {
     "$type": "System.Collections.Generic.List\`1Sitecore.Commerce.Core.Model, Sitecore.Commerce.Core, mscorlib",
     "$values": 
     {
     "$type": "Sitecore.Commerce.Core.ValidationAttributes, Sitecore.Commerce.Core",
     "Name": "Name",
     "MinLength": 4,
     "MaxLength": 10,
     "RegexValidator": "^\\\\w\\\\s\*$",
     "RegexValidatorErrorCode": "AlphanumericOnly\_NameValidationError"
     }
     
     }
     }
    
3.  [Bootstrap the Commerce Engine(商取引エンジン](https://doc.sitecore.com/xp/ja/developers/102/sitecore-experience-commerce/bootstrap-the-commerce-engine.html "Bootstrap the Commerce Engine"))を導入してください。
    
    > !注ブートストラップが完了したら、Send Sample Request Get Environmentを使い、返送された回答に自分の変更が含まれているか確認できます。
    
4.  オプションで、Commerce Engineが期待されるエラーメッセージを返すことを確認するために、無効なPostmanリクエストを送信することもできます。 Add Mira Laptopサンプルリクエストでは、"CartId" 入力値を無効な文字(例えば "Cart01!")を含め、感嘆符が正規表現バリデーターに拒否される形に変更してください。
    
    返送された回答の "Messages" セクションには以下のエラーメッセージが含まれています:
    
    "Messages": 
            {
                "MessageDate": "2021-07-28T15:\`15:00\`.7992017Z",
                "Code": "ValidationError",
                "Text": "Only alphanumeric characters are allowed in the Name.",
                "CommerceTermKey": "AlphanumericOnly\_NameValidationError"
            },
            {
                "MessageDate": "2021-07-28T15:\`15:00\`.803528Z",
                "Code": "Warning",
                "Text": "Transaction failed and rolled back.",
                "CommerceTermKey": "TransactionError"
            }
    
    > !注あるいは、\\wwwroot\\CommerceEngineServic>\\wwwroot\\logsフォルダにあるCommerce Engineのログファイルを確認することもできます。