非常に大規模なフレームワークのオプション

Visual LANSA

非常に大規模なフレームワークのオプション


一部のフレームワークには、500を超えるビジネス・オブジェクトを組み込むことができます。このように大規模なフレームワークでは、ユーザーと開発者の双方にとって、起動時間が悩みの種になる可能性があります。また、複数の開発者を1つのXMLフレームワーク定義ファイルを使用して作業させる場合、管理上の問題が発生する可能性があります。

大規模なフレームワークを使用する代わりに、それを複数の小さなフレームワークに分割するという方法があります。(アプリケーション・ベースまたはロール指向ベースなどで)分割できるとすると、例えば次のように定義された3つのフレームワークを処理することができます。

エントリー・ポイントのフォーム名

フレームワークXML定義ファイル

MJDFRAME1

Frame_1.XML

MJDFRAME2

Frame_2.XML

MJDFRAME3

Frame_3.XML

これら3つのエントリー・ポイントのフォームは通常のVLFエントリー・ポイントのフォームです。

Function Options(*DIRECT)

 

BEGIN_COM ROLE(*EXTENDS #VF_AC006)

 

Mthroutine Name(uInitializeFramework) Options(*Redefine)

Set Com(#Com_Owner) IDesignMode(FALSE) Uadminmode(FALSE)

Set Com(#Com_Owner) Usystemxmlfile(‘<<Framework’s XML file definition file>>')

Endroutine

 

End_com

 

フレームワークが3つある場合は、これらをユーザー・デスクトップの1つのフォルダーに入れ、高レベルのメニューのように使用することができます。

 

このメニュー・システムは、メインVLFナビゲーション・ツリーの高レベルな代替として機能します。また、エンド・ユーザーには編集や表示方法の豊富な選択肢を提供します。

さらに、通常は、VLFナビゲーション・ツリー内を移動するよりも、異なるウィンドウで開かれている複数のアプリケーション領域を切り替える方が簡単にできます。

1つのフレームワークから別のフレームワークを起動するのもかなり簡単にできます。次のVLF非表示コマンド・ハンドラーは、別のVLフォームを汎用的に起動します。

BEGIN_COM ROLE(*EXTENDS #VF_AC020)

MTHROUTINE NAME(uExecute) OPTIONS(*REDEFINE)

Use OV_SYSTEM_SERVICE With_Args(START_LANSA ('FORM=' + #Com_Owner.avAlphaArg1))

Endroutine

End_com

 

Framework 1にFramework 2、Framework 3およびOther Frameworksが含まれているとします。また、Other FrameworksアプリケーションにはFramework 2およびFramework 3というタイトルのビジネス・オブジェクトが含まれているとします。Framework 1のナビゲーション・ペインは次のようになります。

これは、Framework 1からFramework 2または3にアクセスする2つの方式を示しています。

Framework 1のナビゲーション・ツリーの任意のレベルで、Framework 2、またはFramework 3をクリックすると、前述の汎用的なコマンド・ハンドラーにより、別のVLプロセスとしてもう1つのフレームワークが起動されます。

Framework 2に例えば300のビジネス・オブジェクトが組み込まれている場合は、これらのビジネス・オブジェクトをFamework 1で実際に定義するというオーバーヘッドを負うことなく、Framework 1からアクセスできるようになりました。必要なのは、Framework 1に1つのアプリケーションまたはビジネス・オブジェクトを追加してリンクとして機能させるだけです。

次のように、同じコマンド・ハンドラーが各アプリケーションやビジネス・オブジェクトに定義されています。

顕著な特徴としては、コマンド・ハンドラーはデフォルトのコマンドとして定義されており、ポップアップ・メニューには表示されず、非表示コマンドとして実行され、英字パラメータ1にコマンド・ハンドラーによって起動されるVLフォームの名前が格納されているということです。

これで、フレームワークを個人のデスクトップ・アイコンまたはFramework 1のナビゲーション・ツリーから起動できるようになりました。

このサンプルには、比較的簡単に作成できる追加要素があります。以下を使用することができます。

·         もう1つのフレームワークがすでにアクティブであるどうかを確認し、インスタンスがもう1つ起動するのを防ぐマーカー・ファイルまたはデータ待ち行列。

·         ログオン詳細をフレームワーク間でやり取りする独自のログオンIIPおよび暗号化された一時ストリーム・ファイル。このようにして、Framework 1はログオン/接続詳細の最後のセットを取得できます。Framework 2または3が起動したときに、ユーザーにログオン詳細を再度提供するように要求するのを回避できます。

·         異なるフレームワーク間で通信されるデータ待ち行列。各フレームワークに関連する待ち行列をリスンする「フレームワーク・マネージャー」がある場合は、フレームワーク間の通信が比較的簡単にできます。

このようなテクニックを使用すると、統合された非常に大規模なフレームワークの場合と同様の(ただし、それよりも恐らく使いやすい)結果を得ることができます。