Setting Up Projects

Projects are the central enabler of metadata management.

A project consists of a discretely-defined subset of the repository metadata, in the form of groups of logical stars with associated metadata. A project has the following characteristics:

  • Is largely defined by logical fact tables in the applicable business model

  • Automatically adds related logical dimension tables and other metadata during extract

  • Can have one to many logical fact tables

For projects that are just beginning, the best practice is to begin with a repository containing all the necessary physical table and join definitions. In this repository, you create a logical fact table as a placeholder in the Business Model and Mapping layer and a subject area as a placeholder in the Presentation layer. As you add business model and subject area metadata, new projects based on individual subject areas and logical facts can be created.

Follow these guidelines when setting up projects:

  • Only one person at a time can create projects in a master repository.

  • Do not delete projects unless they are no longer under active development.

  • Choose your project name carefully when creating a project. Do not rename projects.

  • Use care when removing objects from projects to avoid problems with repository extract/check-out.

This section contains the following topics:

About Projects

Projects can consist of Presentation layer subject areas and their associated business model logical facts, dimensions, groups, users, variables, and initialization blocks.

Administrators can create projects so that developers and groups of developers can work on projects in their area of responsibility.

The primary reason to create projects is to support multiuser development. During the development process, you can split up the work (metadata) between different teams within your company by extracting the metadata into projects so that each project group can access a different part of the metadata.

In addition to multiuser development, you may want to create projects for licensing reasons. Before releasing a new software version, you may want to ensure that only the metadata that is relevant to the licensed application is in a project and that everything is consistent and complete. You can accomplish this by adding only the fact tables that are relevant to the application.

Project extractions are fact table centric. This ensures that project extracts are consistent and makes licensing much easier to manage.

About the Project Dialog

In the Project dialog, the left pane contains objects that you can use to create a project.

The objects in the right pane are all the objects you chose (directly or indirectly) that reflect the complete set of data that makes each addition consistent. For example, if you select a subject area from the top node of the left-hand tree to add to your project, underlying fact tables of other subject areas are automatically added if needed to make the extract consistent.

The following describes the left pane of the Project dialog:

  • You can choose to group fact tables by Business Model or Subject Area, to help select the fact tables you want. Typically grouping fact tables according to which ones are used by a particular subject area is a more convenient way to choose fact tables for your project. You can associate a fact table with multiple subject areas. The fact table can only belong to one and only one business model.

    Although it appears that you can add a subject area from the top node when you group facts by subject area, you are actually adding only the underlying fact tables. The subject areas only appear as choices to help you to add the elements you want in your project. Additionally, it adds any other objects that are necessary to make the extract consistent. To add an actual subject area, use the Presentation node at the bottom of the tree.

  • When grouped by business model, the left pane displays only facts that belong to the business model.

  • The Presentation node contains presentation layer objects. You must explicitly include these objects in your project if you want to work with them; they are not added automatically.

    If you add presentation objects that are not related to any fact tables in the project, a warning appears when you click OK. The consistency checker also notes this discrepancy.

The right pane of the Project dialog shows the objects you select to be extracted, such as fact tables (under the Business Models folder), Presentation layer objects (under the Presentation folder), users, application roles, variables, and initialization blocks. These objects are extracted when you click OK.

The image shows the Project dialog.

Creating Projects

When creating a project, you typically select a subject area or a subset of logical fact tables related to the selected subject area, and the Administration Tool automatically adds any business model and Physical layer objects that are related.

An object can be part of multiple projects. Alternatively, if you choose to group facts by business model, you can select a particular business model or a set of logical fact tables that are part of a business model. You also need to explicitly add any Presentation layer objects if you want them to be part of your project.

Note that although the project definition itself does not include Physical layer objects, these objects are extracted and determined through the project definition.

After you create projects, they become part of the metadata and are available to multiple developers who need to perform development tasks on the same master repository. When defined this way, projects typically become a consistent repository after a developer checks out the projects and saves them as a new repository file.

To create a project for a multiuser development environment:

  1. In the Administration Tool, choose File > Open > Offline.
  2. In the Open dialog, select the repository that you want to make available for multiuser development, then click OK. Provide the repository password, then click OK again.
  3. Select Manage, then select Projects.
  4. In the Project Manager dialog, in the right pane, right-click and then select New Project.

    The left pane contains the objects that are available to be placed in a project. The right pane contains the objects that you select to be part of the project.

  5. In the Project dialog, type a name for the project.
  6. Choose whether to group facts by business model, or subject area. It is typically more convenient to group facts by subject area.
  7. Perform one or more of the following steps to add fact tables to your project:
    • In the left pane, select a subject area or business model and then click Add. The Administration Tool automatically adds all the associated logical fact tables.

    • In the left pane, expand the subject areas or business models and select one or more logical fact tables that are related to the subject area or that are within the business model, then click Add.

      The project is defined as explicitly containing the selected logical fact tables and implicitly containing all logical dimension tables that are joined to the selected logical fact tables (even though they do not appear in the right pane).

    See About the Project Dialog for more information about the objects that appear in the left and right panes.

  8. To remove fact tables from the project, in the right pane, select a fact table and click Remove. You can also remove all fact tables associated with a subject area or business model by selecting a subject area or business model and clicking Remove.
  9. Optionally, add any application roles, users, variables, initialization blocks, or lookup tables needed for the project. Although objects like variables and initialization blocks that are directly referenced by other extracted objects are included automatically, you might want to include objects in your project that are not referenced. For example:
    • If you are using initialization blocks for authentication, include any necessary initialization blocks.

    • Include repository variables or other objects that are not yet referenced by other objects, but that you might want to use in future repository development.

    • Include users and application roles that are currently being used, or will be used in the future, as part of your data access security settings.

    Tip:

    You may want to add the top node for each object type, for example, Variables, then selectively remove individual objects from the right pane.

  10. Select the Presentation layer objects that you want to include in your project from the left pane and click Add. You must add these objects to see them in the project; they are not added automatically.

    You can also remove particular presentation tables or columns from the project definition by double-clicking the object in the right pane, or selecting the object and clicking Remove.

    Note:

    If you do not see the set of subject areas you expect after the project is created, edit the project to explicitly add the subject areas you need.

  11. Click OK.

About Converting Older Projects During Repository Upgrade

When you upgrade a repository from Oracle Business Intelligence versions before 10.1.3.2, the project definition is upgraded.

During the upgrade, the project definition, subject areas, target levels, list catalogs, and existing fact tables are automatically converted into simple fact tables in the following way:

  • Get presentation columns related to the target levels through the qualifying keys.

  • Get presentation columns related to the list catalogs through the qualifying keys.

  • Get presentation columns related to the subject areas.

  • Get all the logical columns from all the presentation columns.

  • Get all the logical columns from the fact tables in the project.

  • Get the fact tables from all the logical columns.

After the upgrade, projects contain only simple fact tables. All the security objects remain unchanged.

In addition, projects in repositories from any version before 12c (12.2.1) are upgraded so that they explicitly contain Presentation layer objects. In previous releases, Presentation layer objects were implicitly included based on the permissions of the users included in the project.