サーバー リクエストの大部分は、予測可能であり、記録スクリプトにより正確に処理されます。スクリプトの再生中に、スクリプトの記録中に送信しなかった追加の Get 呼び出しをサーバーが自発的に送信することがあります。このような場合は、クライアントはデフォルトの回答のみをサーバーに送信できます。サーバーがデフォルト回答を受け入れる場合は、エラーなしで再生が続行されます。ただし、サーバーがデフォルトの回答を受け入れ不能とみなす場合は、手動で OraFormsSet 関数と OraFormsOnMessageGet 関数をスクリプト化し、サーバーの Get 呼び出しに対する正しいレスポンスを作成する必要があります。
たとえば、サーバーが UI コントロールの VALUE プロパティを問い合わせる Get リクエストを自発的に送る場合を考えます。スクリプトにはこの Get リクエストを処理するスクリプト化関数がないので、クライアントは文字列のデフォルト値 (null) を返信します。サーバーはこの回答を受け入れません。クライアントへの接続が異常終了し、再生スクリプトでエラーが発生します。
このような状況に対応するために追加の Get 関数をスクリプトに手動で追加するには、クライアントとサーバー間で交換される受信データと送信データを解析することが必要です。この解析を実行できるのは、Silk Performer のログ レベルに [デバッグ] を設定した場合のみです。
スクリプト化した OraFormsOnMessageGet 関数では、関連する UI 要素に対する後続の Get 呼び出しに対して、デフォルトの回答とは異なる回答を用意する必要があります。
次の BDL スクリプトの例で示すとおり、Get 呼び出しが処理されるとき、スクリプトを下から上に読む必要があります。
OraFormsSetRectangle("VISIBLERECT", 0, 0, 119, 24, ORA_SET_TYPE_MESSAGEGET); OraFormsOnMessageGet("LINE_CUSTOMER_ITEM_DSP_0"); // Requested Item OraFormsMouseClick("LINE_CUSTOMER_ITEM_DSP_0", 70, 18, 0); // Requested Item
このコード例は次のように解釈できます。クライアントの UI 要素 LINE_CUSTOMER_ITEM_DSP_0 上でマウスがクリックされます。これは、OraFormsMouseClick 関数で表現されます。マウスがクリックされると、サーバーから Get 呼び出しを受信することが予測されます。マウスがクリックされる前に Get 呼び出しに対して準備するには、OraFormsOnMessageGet 関数を挿入します。ここで、サーバーがプロパティ VISIBLERECT を要求することを予測し、OraFormsSetRectangle 関数を使用して、rectangle タイプのプロパティ値を OraFormsOnMessageGet 関数の前のスタックに配置します。