Terminal メッセージは、クライアントとサーバー間の通信のラウンドトリップを終了させるために使用されます。次の 3 種類の Terminal メッセージがあります。
- Terminal 1 メッセージ:
- これは、一番直接的なメッセージ終了方法です。Terminal 1 メッセージは常にクライアントが開始します。たとえば、クライアントがサーバーに「ユーザーがこのボタンを押しました。UI に何を表示しますか」と問い合わせます。そこでサーバーはリクエストの回答を返し、Terminal
1 メッセージで通信を終了します。
- Terminal 2 メッセージ:
- 場合により、クライアントとサーバー間の通信はさらに複雑になります。たとえば、クライアントが「ユーザーがこのボタンを押しました。UI に何を表示しますか」と問い合わせた場合、回答する前に、サーバーでさらにクライアントからの情報が必要なことがあります。サーバーは
Terminal 2 メッセージで応答します。このとき「オプション ボタン XYZ の状態は」などと問い合わせます。クライアントがこのリクエストに対するスクリプト化レスポンスを準備している場合は、サーバーの問い合わせに対する回答が送信され、Terminal
2 メッセージで通信を終了します。サーバーはクライアントの最初の問い合わせに対するスクリプト化レスポンスを送信し、Terminal 1 メッセージで通信を終了します。
- このようなメッセージ交換は次のとおり説明できます。
- クライアントからのリクエスト (Terminal 1、[送信本文] タブ)
- サーバーからのリクエスト (Terminal 2、[受信本文] タブ)
- クライアントからのレスポンス (Terminal 2、[送信本文] タブ)
- サーバーからのレスポンス (Terminal 1、[受信本文] タブ)
- Terminal 3 メッセージ:
- クライアントからの値をリクエストする Get 呼び出しをサーバーが自発的に開始することを示します。これらはクライアントで開始されないリクエストです。例:サーバーから「キャッシュが空です。オプション ボタン XYZ の値を再度送信してください。」と問い合わせます。クライアントは適切な回答を返信する必要があり、Terminal
3 メッセージで通信を終了します。
- Terminal 3 メッセージでは結果として、再生スクリプトが正しく作成されないことがあります。これらのサーバーのリクエストは予測どおりでないので、クライアントはデフォルトの回答 (null など) のみを送信できます。サーバーでクライアントからのデフォルトの回答を受け入れる場合、たとえば、Get
呼び出しで特定の回答が本当には必要ない場合は、再生が続行されます (多くの場合に該当)。ただし、サーバーがデフォルト レスポンスを受け入れ不能とみなす場合は、OraFormsSet 関数と OraFormsOnMessageGet 関数を手動でスクリプト化し、サーバーの 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
- Terminal -1 メッセージ:
- クライアントとサーバー間の通信でのエラーを示します。サーバーがリクエストに対して受け入れ不能な回答を受信したので、再生は失敗します。