拡張ビュー・リンクの置換

拡張ビュー・リンクを置換した場合、ビュー・リンクのXMLファイルに追加したコードや、新規のリンク元オブジェクトおよびリンク先オブジェクトなど、元のビュー・リンクに行った変更すべてを、アプリケーションのその他の部分のインスタンスすべてに対して使用可能にできます。拡張ビュー・リンクを置換する場合は、必ず、これによってリンクされている拡張ビュー・オブジェクト(およびそれらが参照する拡張エンティティ・オブジェクト)も置換する必要があります。これは、拡張ビュー・オブジェクトが、通常は、元のビュー・オブジェクトにはない新規の属性を持つためです。また、ビュー・リンクにより、リンク元およびリンク先のロール属性の定義と、ビュー・リンク問合せのWHERE句で、これらの新規属性が使用される可能性もあるためです。

Figure that shows substituting an extended view link, as described in the following paragraph.

図で示したように、Empエンティティ・オブジェクトを拡張した際にLoc(位置)属性を追加したとします。拡張ビュー・オブジェクトNewEmpViewExを作成すると、この属性が問合せに追加されます。LocはすでにDeptViewの属性であり、拡張ビュー・オブジェクトNewDeptViewExの問合せに自動的に含められます。それにより、NewEmpViewExNewDeptViewExの間に拡張ビュー・リンクを作成する際に、Locをリンク元とリンク先のロール属性のリストに追加でき、またビュー・リンク問合せのWHERE句にも追加できます。その後、アプリケーション全体で拡張ビュー・リンクを置換する場合は、NewEmpExNewEmpViewExEmpEmpViewLoc属性を持たないため)、およびNewDeptExNewDeptViewExDeptLocをリンク元ロール属性として認識しないため)も置換する必要があります。

JDeveloperを使用した拡張ビュー・リンクの置換

アプリケーション全体で拡張ビュー・リンクを置換するには、ビジネス・コンポーネント・プロジェクト・ウィザードの「置換」ページを使用します。ビュー・リンクを置換する手順は、「ビジネス・コンポーネントの置換手順」を参照してください。フレームワークにより、プロジェクトの .jpxファイルのSubstitutesセクションに追加が行われます。このセクションには、元のビュー・リンクの名前と、それにかわって使用される拡張ビュー・リンクの名前が示されます。

たとえば、ビジネス・コンポーネント・プロジェクト・ウィザードの「置換」ページを使用し、アプリケーション全体でビュー・リンクEmpForeignKeyLinkを拡張ビュー・リンクNewFKLinkExで置換した場合、フレームワークでは、プロジェクトのXMLファイルのSubstitutesセクションに1行が追加されます。このプロジェクトのXMLファイルの一部を次に示します。

  <Substitutes>
  <Substitute OldName ="package27.DeptView" NewName ="Extender.NewDeptViewEx" />
  <Substitute OldName ="package27.EmpView" NewName ="Extender.NewEmpViewEx" />
  <Substitute OldName ="package27.Emp" NewName ="Extender.newEmp" />
  <Substitute OldName ="package27.EmpForeignKeyAssoc" NewName ="Extender.NewFKAssocEx" />
  <Substitute OldName ="package27.Dept" NewName ="Extender.NewDeptEx" />
  <Substitute OldName ="package27.EmpForeignKeyLink" NewName ="Extender.NewFKLinkEx" />
  </Substitutes>

ここでは、プロジェクト・ファイル内の元のエンティティ・オブジェクトEmpおよびDeptを拡張エンティティ・オブジェクトNewEmpExおよびNewDeptExですでに置換し、元のビューEmpViewおよびDeptViewを拡張ビュー・オブジェクトNewEmpViewExおよびNewDeptViewExですでに置換しているものとします。

また、拡張エンティティ・オブジェクト間のAssociationの拡張および置換はオプションであり、ビュー間の拡張ビュー・リンクには影響を与えないことに注意してください。