注意: JDeveloper 10gから、JDeveloperの設計時ツールを使用するユーザーは、デフォルトでこのトピックで説明されている最適化を適用できます。
ADF Business Components用に提供されているAPIを使用してJDeveloper外部でアプリケーションを開発し、ビュー・オブジェクト・メタデータ(XMLファイル)を生成しない場合に、このトピックを使用します。
ビジネス・コンポーネント・クライアント・アプリケーションの起動時間と、リモートでデプロイされるビジネス・コンポーネントの起動時間を、クライアントが使用するビュー・オブジェクトの属性のリストを指定することにより最適化できます。 メタデータなしでAPIにコーディングすることによりプロジェクトを生成する場合、フォームによって使用される属性のみのリストで、クライアントのフォームのブートストラップ・コードにfetchAttributeProperties()
を追加できます。 このメソッドをコールしない場合、クライアント・フォームは、1回のネットワーク・ラウンドトリップで、そのアプリケーション・モジュールに定義されているビュー・オブジェクトの全属性に対するすべてのコントロール・ヒント・プロパティ(属性フォーマットおよびラベルなど)をフェッチします。
たとえば、fetchAttributeProperties()
メソッドを使用して、ADF JClientフォームのバインドされたビュー・オブジェクトの全属性を使用しない場合、JClientフォームは、必要としない属性は無視し、フォームのレイアウトに必要な情報のみをフェッチします。
注意: ローカル・モード・デプロイ(クライアントとビジネス・コンポーネントが同一のVMに存在する場合)では、属性プロパティのフェッチはサポートされていません。
属性プロパティの検索を最小化するには、次のようにします(JDeveloper設計時以外)。
fetchAttributeProperties()
をコールし、次のように設定します。
このメソッドは、ビュー・オブジェクト名のリストと、各ビュー・オブジェクトの属性名のリストを引数としてとります。リストには属性のすべてまたは一部を含めることができます。フォームでビュー・オブジェクトのすべての属性が必要とされる場合は、属性の引数としてnull
を指定します。この場合、ビュー・オブジェクトのすべての属性がフォームで使用されるため、起動時間はそれほど短縮されません。
注意: JClientフォーム・ウィザードまたはJClientパネル・ウィザードを使用して完全なフォームを生成すると、fetchAttributeProperties()
メソッドが追加されます。
JClientブートストラップ・コード内で、データ・コントロール・オブジェクトの作成直後にfetchAttributeProperties()
をコールします。次の例では、最初のビュー・オブジェクトの3つの属性と2番目のビュー・オブジェクトの5つの属性に対するカスタム・プロパティがダウンロードされます。
// bootstrap application
JUMetaObjectManager.setBaseErrorHandler(new JUErrorHandlerDlg());
JUMetaObjectManager mgr = JUMetaObjectManager.getJUMom();
mgr.setJClientDefFactory(null);
BindingContext ctx = new BindingContext();
ctx.put(DataControlFactory.APP_PARAM_ENV_INFO, new JUEnvInfoProvider());
ctx.setLocaleContext(new DefLocaleContext(null));
HashMap map = new HashMap(4);
map.put(DataControlFactory.APP_PARAMS_BINDING_CONTEXT, ctx);
mgr.loadCpx("DataBindings.cpx", map);
DCDataControl app = (DCDataControl)ctx.get("model_AppModuleDataControl");
app.setClientApp(DCDataControl.JCLIENT);
app.getApplicationModule().fetchAttributeProperties(new String[]
{"VO1", "VO2"}, new String[][]
{
{"VO1Attr1", "VO1Attr2", "VO1Attr3"},
{"VO2Attr1", "VO2Attr2", "VO2Attr3", "VO2Attr4", "VO2Attr5"}
}, null);
...
fetchAttributeProperties()
をコールすることで、フォームが作成されるたびにビジネス・コンポーネント属性定義に対してgetFormat()
やgetLabel()
などのプロパティ・メソッドがコールされないようにします。
Copyright © 1997, 2004, Oracle. All rights reserved.