[ |../../index.htm#lansa/lansa048_0850.htm]
Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > VLF フレームワーク・マネージャー > イベント通知サービス
イベント通知サービス
RAMP アプリケーションを除き、通常この機能はカスタム・フレームワーク・マネージャにより技術的にサポートされています。 |
フレームワーク・マネージャーは、基本的なイベントのシグナル・サービスを提供します。
フィルターまたはコマンド・ハンドラーで重大なイベントが発生したときに、他のアクティブなフィルターまたはコマンド・ハンドラーにイベントを送信して、しかるべき処理を実行するように設定できます。
イベント処理を実行するには、以下の2点が必要です。
- フィルターまたはコマンド・ハンドラーがイベントを通知すること。 これをイベントを発行するといいます。
- 他のフィルターやコマンド・ハンドラーがイベントをリッスンすること。 これをイベントをサブスクライブするといいます。
イベントと共に付属情報も送られる場合があります。これをペイロードといいます。
イベントを発行するには avSignalEvent メソッドを使用します。例:
Invoke #Com_owner.avSignalEvent WithId(Employee_Deleted) SendAInfo1(#EMPNO)
この例では"Employee_Deleted"として識別されたイベントを通知します。 これにはフィールド#EMPNOの現在値がペイロード・ストリング1として含まれます。おそらくはすでに削除された社員を識別するためのものです。
Windowsアプリケーションでイベントをサブスクライブ(またはリッスン)するには、フィルターまたはコマンド・ハンドラーにEvtRoutineイベントが必要です。 これを行うには、以下の例のようにavEvent通知をリッスンします。
EvtRoutine Handling(#Com_owner.avEvent) WithId(#EventId) WithAInfo1(#AInfo1)
If (#EventId = Employee_Deleted)
Change #EMPNO #AInfo1.Value
<< イベント処理 >> Endif
Endroutine
一般的な注意
VLF-ONE では、カスタムのフレームワーク・マネージャーを使って、一般的ではない方法でこれを行うことができます。詳細については、「VLF-ONE カスタム・フレームワーク・マネージャーの使用」を参照してください。
- イベントがアプリケーション間を飛び交うとアプリケーションのパフォーマンスに影響します。この影響は、最悪の配布先環境を反映した環境で見積もる必要があります。あまり多くのイベントを使いすぎないようご注意ください。またイベントのハンドリング中にはあまり多くの処理をしないようにご注意ください。使用するイベント・モデルは実行可能なリソースに適合している必要があります。
- イベントと共に送信できるペイロードは、基本的に最大英数字5個および数値5個までです。万一これで不足な場合や、情報のリストを送りたい場合は、VLF-ONE の仮想クリップボード、またはパラメータ SenderReference を使用します。
- イベントには簡潔で一貫性のある命名規則を考慮する必要があります。フレームワークが発行したイベントとの矛盾を避けるため、ピリオド(".")を含むイベント識別子は使用できません。別の実行プラットフォームとの間でコード・ページの問題が発生する可能性があるので、特殊文字は避けます。
- Web ブラウザ・アプリケーションでイベントをコーディングおよび使用する方法については、提供の"プログラミング テクニック"(VLF-WIN)、および "サンプル・アプリケーション" (VILF-ONE) 参考にしてください。
イベント・ハンドリングの詳細については、以下を参照してください。
[ |../../index.htm#lansa/lansa048_0850.htm]