Set Context Variable アサーション

Set Context Variable アサーションでは、カスタム コンテキスト変数を作成できます。これらのカスタム変数は、変数の内容をユーザが制御できること以外は、システムの事前定義変数と同様に動作します。カスタム コンテキスト変数を使用して、完全なメッセージを定義することもできます。これらのメッセージは、でリクエスト メッセージ ソースとして、また で XML メッセージ ソースとして、後でポリシーで使用できます。
gateway90
Set Context Variable アサーションでは、カスタム コンテキスト変数を作成できます。これらのカスタム変数は、変数の内容をユーザが制御できること以外は、システムの事前定義変数と同様に動作します。カスタム コンテキスト変数を使用して、完全なメッセージを定義することもできます。これらのメッセージは、Evaluate Response XPath アサーションが XML メッセージ ソースとして後でポリシーで使用できます。
Set Context Variable アサーションを使用して、事前定義済みコンテキスト変数を別の名前にマップできます。これは、事前定義済みコンテキスト変数名が特定のサブシステムと互換性がない場合に必要です。
アサーションの使用
  1. 以下のいずれかを実行します。
    • アサーションをポリシー作成ウィンドウに追加するには、「アサーションの追加」を参照してください。
    • 既存のアサーションの設定を変更するには、下記の手順 2 に進みます。
  2. アサーションを追加すると、
    [Context Variable Properties]
    ダイアログ ボックスが自動的に表示されます。アサーションを変更する場合は、ポリシー ウィンドウで
    [Set Context Variable]
    を右クリックして
    [Context Variable Properties]
    を選択するか、ポリシー ウィンドウでアサーションをダブルクリックします。このアサーションのプロパティが表示されます。
  3. 以下のようにプロパティを設定します。
    設定
    説明
    Variable Name
    コンテキスト変数の名前を入力します。この名前には文字または数字を使用できます。ただし、「${}」区切り文字は使用できません。たとえば、「${gatewayTime}」ではなく「gatewayTime」を使用します。
    また、request または response を入力して、それぞれリクエスト メッセージまたはレスポンス メッセージを設定することもできます。入力したコンテキスト変数名に関する即時のフィードバックを表す検証メッセージが表示されます。検証メッセージの説明については、「コンテキスト変数」の「コンテキスト変数の検証」を参照してください。
    Data Type
    変数名が組み込みではない場合は、ドロップダウン リストからデータ タイプを指定します。
    • String
      : この変数には文字列が含まれます。
    • Integer
      : この変数には整数が含まれます。
    • Message
      : この変数にはメッセージが含まれます。下にある[Expression]テキスト ボックスにメッセージ本文を入力します。Message タイプの変数は、後からルーティングアサーションまたは XPath アサーションで使用できます。
    • Date/Time
      : この変数には、日付/時刻情報が含まれます。詳細については、「コンテキスト変数」の「コンテキスト変数のデータ型」を参照してください。
    「Date/Time」タイプの新しい変数を作成し、その他のすべてのフィールドをデフォルト値のままにすると、組み込み変数 ${gateway.time} と同一の変数が作成されます。デフォルト値は、
    ${gateway.time}
    を UTC 形式の ISO-8601 文字列で表した値です。詳細については、
    日付/時刻変数」を参照してください。
    リクエスト変数またはレスポンス変数を設定する場合は「Message」タイプを選択します。
    Format
    Date/Time のみ
    ドロップダウン リストから形式を選択します。アサーションはこの形式を使用して[Expression]フィールドの値を解釈します。デフォルト値は「<
    auto
    >」です。これはアサーションが自動的に形式を決定することを意味します。コンテキスト変数を参照できます。その変数は、式の一部として評価され、1 つのフォーマット文字列になる必要があります。
    <Timestamp>
    <Millisecond Timestamp>
    (13 桁の数字)、および
    <Second Timestamp>
    (10 桁の数字)の形式を使用して、[Expression]フィールドの解釈をより細かく制御できます。
    • [Expression]フィールドに正しく入力したタイムスタンプは、<auto>、<Timestamp>、<Millisecond Timestamp> (ミリ秒単位のタイムスタンプの場合)、および <Second Timestamp> (秒単位のタイムスタンプの場合)の形式に一致します。
    • 正しく入力したミリ秒単位のタイムスタンプは、<auto>、<Timestamp>、および <Milliseconds Timestamp> の形式に一致します。
    • 正しく入力した秒単位のタイムスタンプは、<auto>、<Timestamp>、および <Seconds Timestamp> の形式に一致します。
    クラスタ プロパティ
    datetime.customFormats
    を編集して、ドロップダウン リストで表示されるオプションをカスタマイズできます。クラスタ プロパティ datetime.autoFormats を編集して、[<
    auto
    >]を選択した場合に試行される形式をカスタマイズできます。
    Time Offset
    Date/Time のみ
    時間のオフセットを入力します。負の値また正の値を使用でき、変数を参照することもできます。適用される時間の単位は、このフィールドのそばにあるドロップダウン リストで選択できます。
    デフォルト:
    必要に応じて、ドロップダウン リストからオフセットの単位を選択します。
    コンテキスト変数を参照することもできます。
    Preview
    Date/Time のみ
    入力した日時式に基づいて、日時表示形式のプレビューが表示されます。コンテキスト変数が指定されている場合以外は、入力した時間オフセットがプレビューに含まれます。  
    解析された日時式のプレビューを使用して、サンプル入力に基づく日時形式のトラブルシューティングを行うことができます。
    (1) プレビューに使用される形式は、W3C 形式の ISO-8601 文字列「yyyy-MM-dd'T'HH:mm:ss.SSS'Z'」です。日時表示形式は GMT で表示されます。(2) 入力された形式を解析できる場合に限り、プレビューが表示されます。プレビューできない場合は、「No preview is available」と表示されます。
    Content-Type
    (Message のみ)
    Data Type が「Message」である場合は、ドロップ ダウン リストからメッセージの Content-Type を選択します。Content-Type から選択した文字セット (charset) がメッセージのエンコードに使用されます。
    [Content-Type]のリストには、デフォルトの XML エンコーディングと互換性のある文字エンコーディングが含まれていますが、このほかに互換性のあるエンコーディング(コンテキスト変数は使用できません)を手入力することもできます。たとえばデフォルトでは utf-8 文字セットが表示されていますが、必要に応じ「sjis」や「euc」など他の文字セットを入力することができます。
    Expression
    ここに文字列値またはメッセージ本文を入力するか、または空のままにします。標準の変数参照構文である「${}」で変数名を囲むことによって、式内で既存のコンテキスト変数を使用できます。例: 「${gateway.time}」。
    Message タイプの変数の式には、単純なテキスト ドキュメント、XML ドキュメント、MIME マルチパート ドキュメント、または入力したコンテンツ タイプで有効なその他のテキスト データを使用できます。たとえば、SOAP リクエスト メッセージを式として使用できます。Route via HTTP(S) アサーションで、デフォルト リクエストを使用するのではなく、[Request message source]として変数を参照するこの表現を使用するように変更できます。  
    Message 型の変数では、単一のコンテキスト変数を
    ${message}
    または
    ${message.parts[x]}
    の形式で指定して、指定したメッセージまたはパートの内容でターゲット変数を初期化することができます。これは、コピーするメッセージまたはその一部がテキストでない場合(画像ファイルやランダムなバイナリ ファイルの場合など)にも適用されます。
    構文の強調表示
    Expression ボックスでは、content-type が "text/xml" または "application/json" のメッセージ変数の構文が強調表示されます。これによって、エラーをより容易に識別できます。
    XML
    の強調表示:
    • 非 XML 値は強調表示されません
    • 無効な XML 値では、正しくフォーマットされている XML 要素のみが強調表示されます
    • 有効な XML 要素では、開始タグおよび終了タグが強調表示されます
    XML 要素の終了タグは、便宜のために自動補完されます。たとえば、「<xml> test </」と入力すると、終了タグ「</xml>」が自動補完されます。
    JSON
    の強調表示:
    • 非 JSON 値は強調表示されません
    • JSON 要素(有効でも無効でも)の前後の文字が強調表示されます
    • いずれかの JSON 文字の後にカーソルを合わせると、その文字とペアになっている文字が強調表示されます
  4. 完了したら、[
    OK
    ]をクリックします。新しい変数名は、ポリシー内の後続のアサーションで使用できます。いずれかの即時検証機能でエラーが検出されている場合は、
    [OK]
    ボタンを使用できません。