Substituting Extended Application Modules

An extended Application Module typically contains View Objects, Links, and programming logic that are not present in the original Application Module. Substituting the extended Application Module in your application lets you propagate the new objects and functionality throughout the application. This allows the new objects to be used in the same transaction as the existing objects.

If you include any extended View Objects and View Links in the extended Application Module's data model, they must also be substituted. Similarly, for each of the extended View Objects included in the data model, the extended Entity Objects they reference must also be substituted.

Using JDeveloper to Substitute Extended Application Modules

Use the Substitutions panel of the Business Components Project wizard to substitute the extended Application Module throughout your application. For the procedure to substitute an Application Module, see To Substitute Business Components. The framework makes an addition to the Substitutes section of the project's .jpx file which identifies the name of the original Application Module and the name of the extended Application Module that should be used instead.

For example, if you use the Substitutions panel of the Business Components Project wizard to substitute the extended Application Module NewModuleEx for the original Application Module Package27Module throughout your application, the framework adds a line to the Substitutes section of the project's XML file. A portion of the project's XML file is included below:

<Substitutes>
  <Substitute OldName ="package27.DeptView" NewName ="Extender.NewDeptViewEx" />
  <Substitute OldName ="package27.EmpView" NewName ="Extender.NewEmpViewEx" />
  <Substitute OldName ="package27.Package27Module" NewName ="Extender.NewModuleEx" />
  <Substitute OldName ="package27.Emp" NewName ="Extender.NewEmpEx" />
  <Substitute OldName ="package27.EmpForeignKeyAssoc" NewName ="Extender.NewFKAssocEx" />
  <Substitute OldName ="package27.Dept" NewName ="Extender.NewDeptEx" />
  <Substitute OldName ="package27.EmpForeignKeyLink" NewName ="Extender.EmpForeignKeyLinkEx" />
  </Substitutes>