Q11:複合コンポーネントの仕様について。
Q11-1:
複合コンポーネントの仕様について確認したいことが御座いますので、ご回答お願いします。
複数のアプリケーションで同様の処理を行う1つの複合コンポーネントを作成し、それを各アプリケーションよりロードしたとします。その後複合コンポーネント側に修正事項があり対応した場合、ロードしているアプリケーション内の複合コンポーネントも既に修正済みのものとして扱われるのでしょうか?
私の環境での動作を見る限りでは、アプリケーション内で既存の複合コンポーネントをロードすると、内部の処理内容をコピーしてアプリケーション内で新規の複合コンポーネントとして貼り付けられているように見受けられますが、この認識で間違いないでしょうか?
後者が正しいなら、複合コンポーネントを修正する度にそれをロードしているアプリケーションを全て修正する必要があるかと思われますが、それをせずに複合コンポーネントの内容を最新のものにする方法はありますか?
A11-1:
複合コンポーネントは、ご指摘の通り、特に設定をせずロードするとそのままアプリケーション内に内包される形となります。
複合コンポーネントの「外部参照機能」をお試し下さい。
@複合コンポーネントが保存してあるフォルダへの相対パスを
etc\platform.iniに記述します。
(CombinativeComponentsFolder=AP_DATA_COMBが初期設定してあります。
適宜フォルダ名を書き換えてお使いください)
A複合コンポーネントの属性情報設定画面で[ReferenceEnabled]を「true」に変更し、[Reference]欄にファイル名を書いてください。
詳しくは、アプリケーションビルダー操作説明書「5.5. 複合コンポーネントの外部参照化」をご覧ください。
さらに、外部参照されている複合コンポーネントは、アプリケーション全体を保存する時には、保存の対象にならない仕様となっています。したがって、外部参照されている複合コンポーネントの変更を保存するためには、別途、その複合コンポーネントのみを同名で保存する必要があります。
外部参照には「元になる複合コンポーネント」、「platform.iniへの記述」が常に必要になるため、例えば開発時には外部参照機能をお使いになり、最終的には通常の形式で保存してというのも一案かと存じます。