Visual LANSA フレームワーク ガイド > フレームワーク・プログラミング > コード・テーブル > アシスタントを使用したより複雑な「コード」の取り扱い > アシスタントがアプリケーションの他のパーツと対話処理する方法
アシスタントがアプリケーションの他のパーツと対話処理する方法

アシスタントはフリー・フローティングのモードレス・ウィンドウです。

アプリケーションの他のコンポーネントとイベントの通知を通して通信します。

アプリケーションの他のコンポーネントが通知するイベントをリスニングして反応します。

この非常にシンプルなアーキテクチャは柔軟性と拡張性に富んでいます。

以下に簡単なイベント・ドリブン対話処理のサンプルを示します。

例1-クラシックなF4=プロンプト型の要求 

ユーザーに顧客番号の入力を要求する注文入力フォームがあるとします。

ユーザーはボタンまたはイメージ (例:クエスチョン・マーク) を押して顧客を入力したいことを表します。

Order Entry フォームが "SelectCustomer" イベントを通知します。イベントに関連付けた「ペイロード」の一部として、ユーザーがすでに入力した情報(例:顧客名の一部、番号、など)の詳細を、オプションで含む場合があります。

Customer Assistantが"SelectCustomer"イベントを検出し、ユーザーが要求する顧客の検索を可能にします。初期の検索をスピードアップしたり、検索対象を絞り込むためにイベントに関連した「ペイロード」が使える可能性があります。ユーザーが要求した顧客を発見し選択すると、Customer Assistantは、顧客番号(およびその名前を含む場合もある)をイベントに関連した「ペイロード」として含め、"CustomerSelected"イベントを通知します。

Order Entryフォームは"CustomerSelected"イベントを検出し、入力された注文詳細を選択された顧客の詳細で更新します。 

例2-より高度な非モーダル・プロンプト要求 

Order Entryフォームは現在アクティブであるとします。

Customer Assistantウィンドウはフローティングで表示されているとします。

ユーザーは直接Customer Assistantウィンドウで顧客を検索します。ユーザーが要求した顧客を選択すると、Customer Assistantは、顧客番号(およびその名前を含む場合もある)をイベントに関連した「ペイロード」として含め、"CustomerSelected"イベントを通知します。

Order Entryフォームは"CustomerSelected"イベントを検出し、今入力された注文の詳細を選択した顧客の詳細で更新します。 

特にWebアプリケーションではこの方法がプロンプトを出すのにより効率的です。この方法では対話処理を完了するための多くのリモート・サーバーとの対話処理が省かれるためです。

例3-マルチ項目プロンプト

イベント・ドリブン処理では複数の項目を選択できます。

Order Entryフォームは現在アクティブであるとします。

Product Assistantウィンドウはフローティングで表示されているとします。

ユーザーは直接Product Assistantウィンドウで4つの異なる製品を選択します。選択が完了すると、Product Assistantは"ProductsSelected"イベントを通知します。Product Assistantは"ProductsSelected"イベントのペイロードとして製品番号(および製品の詳細を含む場合がある)のリストが含まれます。

Order Entryフォームは"ProductsSelected"イベントを検出し、今入力された注文の詳細で選択されたすべての製品を更新します。 

例4-その他のアシスタントの使用法

以下はアシスタントの概念を拡張したアイデアの例です。