カスタム・プロパティ
Visual LANSAフレームワークは非常に単純なフレームワーク、アプリケーションおよびビジネス・オブジェクト・モデルで商用のコンピュータ・システムを定義します。
独自のカスタム・プロパティをフレームワーク全体、アプリケーション内、個々のビジネス・オブジェクトに追加してこのモデルを拡張することができます。
カスタム・プロパティの概念を理解する最も簡単な方法として、この小さい一般的な商用アプリケーションの要件を考えてみます。
· 保証契約を削除できるのは、このアプリケーションの数名のユーザーだけです。
· このユーザーはグラフを上下逆に表示することができます。
· 一部のユーザーは署名した保証契約を一定の状態でのみ閲覧できます。
· 表示されたグラフはすべてバラ色で表示されます。
· このユーザーが作業できるのはリストの中だけに限られます。
· このユーザーは、より報酬の高い他の従業員を表示することができます。
· すべてのレポートを常にローカルで印字します。
· 通貨
· このシステムは日本でインストールされましたか。
· このユーザーは通常韓国で働いています。
· 当社のWebサイトのURLはwww.mycompany.com(後で変更される可能性あり)です。
· このシステムにはローカル・データベースがありますか。
· 日付の書式
· 内部で構築された番号と日付をエラー時に表示するためフレームワークに関連付ける必要があります。
これらの一般的な要求には多くの対処方法があります。ひとつには、これらをカスタム・プロパティとしてフレームワークに追加します。
例えば、単純に「当社のWebサイトのURLはwww.mycompany.com(後で変更される可能性あり)です。」という要求があるとします。会社のWebサイトURLをフレームワークのソフト的なコード値にするには、以下を実行します。
設計者として
COMPANYURLというフレームワーク・レベルのカスタム・プロパティを定義します。おそらく、これは英数字型で最長256文字のプロパティになるでしょう。これはオンサイトの管理者には変更できないプロパティで、デフォルトはwww.mycompany.comです。
開発者として
カスタム・プロパティCOMPANYURLの値を取り出し、プログラムに入力し、会社のURLのハード・コーディングを回避します。
WindowsおよびWAMアプリケーションのいずれでも、以下のように値を取り出します。
Invoke Method(#avFrameworkManager.avGetUserProperty) Atlevel(F)
Withname(COMPANYURL) AlphaValue(#COMP_URL)
管理者として
特にすることはありません。ユーザー・プロファイルを作成するたびに、そのプロファイルに関連付けられた会社のWebサイトというプロパティが存在し、値www.mycompany.comを持っていることが分かりますが、それを変更することはできません。フレームワークの設計者だけがこの値を変更できます。
より複雑な例として、「一部のユーザーは署名した保証契約を一定の状態でのみ閲覧できる」という要求があると考えます。この要求は以下のようにしてカスタム・プロパティで実現できます。
設計者として
ALLOWSTATESというアプリケーション・レベルのカスタム・プロパティを定義します。このプロパティは以下のような固定英数字リストとして定義されます。
Value |
ユーザーに表示するキャプション |
ALL |
全ての州が使用可能 |
CA |
Californiaのみ |
NY |
New Yorkのみ |
MN |
Minnesotaのみ |
開発者として
ALLOWSTATESの値を取り出し、プログラムに入力し、プログラムの稼動状態を制御します。
WindowsおよびWAMアプリケーションのいずれにおいても、以下のように値を取り出します。
Invoke Method(#avFrameworkManager.avGetUserProperty) Atlevel(A)
Withname(ALLOWSTATE) AlphaValue(#ALL_STATE)
どちらの場合も、#ALL_STATEには値ALL、CA、NYまたはMNが含まれ、アプリケーションのさまざまな契約書へのアクセスを制御するために使用されます。
管理者として
ユーザーを定義する時、カレント・ユーザーのカスタム・プロパティタブに切り替え、ユーザーがどの州から契約を見られるか選択することができます。以下のようなリストから選択することになります。
これらの簡単な例がカスタム・プロパティの真髄を示してくれます。もちろん、実際にはさらに可能性が考えられます。例えば、プロパティのタイプを英数字、数値またはBooleanとして、複数の選択リストを指定するなどです。
「よくある質問(Custom Properties)」および「カスタム・プロパティを使うにあたって注意すべきこと」を参照してください。
カスタム・プロパティの定義
新しいプロパティを設定するとき以下のオプションが表示されます。