1. Commerce Engineポリシー

設定データ入力を制御する検証ポリシーを追加する

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

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

Commerce Engineでは、データ入力値を検証するために、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" プロパティは、検証するエンティティ プロパティ値の名前であり、この場合はcart "Name" プロパティです。

    • "MinLength" プロパティは、"Name" 値を有効にするために必要な最小文字数を強制します。

    • "MaxLength" プロパティは、"Name" 値が有効になるために許可される最大文字数を強制します。

    • "RegexValidator" プロパティは、英数字のみを許可する正規表現を定義します。

    • "RegexValidatorErrorCode" 値は、エラー メッセージが定義されているCommerce用語を参照します。

    {
        "$type": "Sitecore.Commerce.Core.ValidationPolicy, Sitecore.Commerce.Core",
        "TypeFullName": "Sitecore.Commerce.Plugin.Carts.Cart",,
        "Models": {
          "$type": "System.Collections.Generic.List`1[[Sitecore.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. Commerce Engineをブートストラップします

    メモ

    ブートストラップが完了したら、Send a S Get Environment sampleリクエストを使用し、返されたレスポンスに変更が含まれていることを確認できます。

  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ログ ファイルを確認することもできます。

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