サンプル Web アプリケーション ShopIt は、セッション ID を含むフォーム定義によって、Silk Performer Recorder にコンテキストなしの WebPageUrl() 関数を生成させる意図で作成したものです。これは、JavaScript で URL を組み立てることによって実現されています。記録ルールを使用せずに ShopIt を記録すると、ハードコーティングされたセッション ID を含むスクリプトが生成されます。
この HTTP 解析ルールの例では、セッション ID を含むフォーム定義によって、コンテキストなしの WebPageUrl() 関数が生成されています。[スクリプトの試行] を実行すると、ハードコードされたセッション ID が原因で再生エラーが発生します。
TrueLog Explorer のセッション処理カスタマイズ機能では、次のようにスクリプトを変更することによって、この問題を解決します。
var
  sFormSid1     : string (100);
  sSessionInfo1  : string (100);
  ...
  WebParseDataBoundEx(sSessionInfo1, STRING_COMPLETE,
    "name=\"", 5, "\"", WEB_FLAG_IGNORE_WHITE_SPACE, 1);
  WebPageLink("Check out", "ShopIt - Check Out"); // Link 3
  Print("sSessionInfo1: " + sSessionInfo1);
  ...
  sFormSid1 := sSessionInfo1;
  WebPageUrl(sParsedUrl,
    "Unnamed page", SHOPITV60_KINDOFPAYMENT_ASP004);
  ...
dclform
  ...
  SHOPITV60_KINDOFPAYMENT_ASP004:
    "choice"                    := "CreditCard",
    "price"                     := "115.8",
//     "sid"                       := "858891471";
    "sid"                       := sFormSid1; 
               	 カスタマイズが完了して、スクリプトが正しく実行されるようになりました。しかし、今後記録されるスクリプトでも、毎回カスタマイズを行わなければならないという問題が残ります。
HTTP 解析ルールを利用すると、今後は、この種のカスタマイズを Silk Performer Recorder に自動的に行わせることができます。つまり、手動の操作なしで、記録スクリプトを自動生成できます。
それには、各セッション ID の解析方法を調査する必要があります。TrueLog Explorer によって提示されたカスタマイズを見ると、セッション ID が最初に発生した API 呼び出しがわかります。また、各セッション ID を解析するために使用できる境界もわかります。
TrueLog Explorer を使用して、HTML コード内でセッション ID が最初に出現する場所を見つけます。
<script LANGUAGE="JavaScript">
  function doProcess(mylink)
  {
    scheme="http://";
    server="lab3";
    serverport="";
    path="/ShopItV60/";
    file="kindofpayment.asp?";
    name="858891471";
      price="115.8";
    choice="CreditCard";
    mylink.href=scheme + server + serverport + path + file + "choice=" +
      choice + "&price=" + price + "&sid=" + name;
  }
</script>    
               		TrueLog Explorer によって識別された左境界 name=" と 右境界 " は、セッション ID を抽出するためには妥当な選択です。
これで、HTTP 解析ルールの初期バージョンを Recorder 用に書き込むことができます。
<?xml version="1.0" encoding="UTF-8"?>
<RecordingRuleSet>
  <HttpParsingRule>
    <Name>ShopIt V5.1 Session Id</Name>
    <Search>
      <SearchIn>Body</SearchIn>
      <LB>
        <Str>name="</Str>
      </LB>
      <RB>
        <Str>"</Str>
      </RB>
    </Search>
    <ScriptGen>
      <VarName>ShopItSessionId</Varname>
    </ScriptGen>
  
  </HttpParsingRule>
</RecordingRuleSet> 
               		ShopIt のセッション ID は、HTTP のレスポンス ヘッダーには存在しないので、レスポンス ボディだけを検索するように指定します (Search\SearchIn 属性を使用)。
セッション ID の終りには、単一引用符が付きます。これは、Search\RB\Str 属性で指定します。ここで、再び、引用符がエンコードされています。
最後に、解析結果を格納する変数の名前を定義しています。この名前は、ScriptGen\VarName 属性を使用して指定します。
このルール ファイルをすべてのプロジェクトでグローバルに利用できるようにするには、Silk Performer の Include ディレクトリに保存します。ファイル名は任意の長さにできますが、ファイルの拡張子は .xrl にする必要があります。この記録ルールを 1 つのプロジェクトだけで使用する場合は、このファイルを、特定の Silk Performer プロジェクトの Documents ディレクトリに保存します。