7 XML Logical Elements

This chapter provides Oracle BI Server XML API reference information for logical elements. Logical elements typically correspond to objects in the Business Model and Mapping layer of the Oracle BI repository, or in other words, the objects that appear in the center pane of the Oracle BI Administration Tool.

This chapter contains the following topics:

7.1 XML Elements: Logical Column

The logical column element corresponds to the logical column object in the Business Model and Mapping layer.

The logical column tag includes the following attributes:

Table 7-1 Logical Column Tag Attributes

Attribute Name Description

isDerived

When set to true, indicates that the logical column is based on a user-defined expression (for example, another logical column, a constant value, or a variable).

IsWriteable

When set to true, indicates that write back has been enabled for this column. This feature is typically used with ADF Business Component data sources. This option is called Writeable in the Administration Tool.


The logical column tag includes the following child elements:

Table 7-2 Logical Column Child Elements

Element Name Description

Expr

Contains the expression from which the logical column should be derived. This element is only used when the isDerived attribute is set to true.

CustomSortOrder

If the sort order for this logical column is based on a different logical column, this element references that logical column.

The logical column upon which the sort order is based is contained in a sub-element called RefLogicalColumn.

DescriptorID

When multilingual columns are based on a lookup function, it is common to specify the non-translated lookup key column as the descriptor ID column of the translated column. This element references the descriptor ID column.

The descriptor ID logical column is contained in a sub-element called RefLogicalColumn.

Levels

For dimension columns, shows the level to which this column has been assigned. For level-based measures, shows the level at which the column has been explicitly fixed.

The level is contained in a sub-element called RefLogicalLevel.


Syntax

<LogicalColumn …
     isDerived=""
     isWriteable="">
   <Description />
   <Expr>...</Expr>
   <CustomSortOrder>
     <RefLogicalColumn …/>
   </CustomSortOrder>
   <DescriptorID>
     <RefLogicalColumn …/>
   </DescriptorID>
   <Levels>
     <RefLogicalLevel …/>
   </Levels>
</LogicalColumn>

Example

<LogicalColumn name="Person ID"
     parentName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
      D01 Customers&quot;"
     parentId="2035:61791" parentUid="80cbbddc-07f3-0000-714b-e31d00000000"
     id="2006:61814" uid="80cbbe7b-07d6-0000-714b-e31d00000000"
     isWriteable="false">
   <Levels>
     <RefLogicalLevel id="2025:63664"
      uid="80cbc70a-07e9-0000-714b-e31d00000000" 
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;
       .&quot;H01 Customers&quot;.&quot;Customer ID&quot;"/>
   </Levels>
</LogicalColumn>

7.2 XML Elements: Business Model

The business model element corresponds to the business model object in the Business Model and Mapping layer.

The business model tag includes the following attributes:

Table 7-3 Subject Area Tag Attributes

Attribute Name Description

isClassicStar

If set to true, indicates that the business model follows a star schema. Star schemas have one-to-many relationships between the logical dimension tables and the logical fact table.

isAvailable

If set to true, indicates that the corresponding subject area is available for queries.


The business model tag includes the following child elements:

Table 7-4 Subject Area Child Elements

Element Name Description

Tables

References the display tables that belong to this business model.

Each table is contained in a sub-element called RefLogicalTable.

Included for backward compatibility. As table order is not significant within business model, this element will not be generated in output XML.

DisplayFolders

References the display folders that belong to this business model.

Each display folder is contained in a sub-element called RefLogicalDisplayFolder.


Syntax

<BusinessModel …
     isClassicStar=""
     isAvailable="">
   <Description />
   <Tables>
     <RefLogicalTable …/>
     <RefLogicalTable …/>
   </Tables>
   <DisplayFolders>
     <RefLogicalDisplayFolder …/>
     <RefLogicalDisplayFolder …/>
   </DisplayFolders>
</BusinessModel>

Example

<BusinessModel name="9 - Usage Tracking"
     id="2000:22314" uid="802b289f-07d0-0000-714b-e31d00000000"
     isClassicStar="false" isAvailable="true">
</BusinessModel>

7.3 XML Elements: Logical Complex Join

The logical complex join element corresponds to the logical join object in the Business Model and Mapping Layer.

The logical complex join tag includes the following attributes:

Table 7-5 Logical Complex Join Tag Attributes

Attribute Name Description

type

The type of join. Valid values are Inner, LeftOuter, RightOuter, FullOuter, and FullOuterStitch.


The logical complex join tag includes the following child elements:

Table 7-6 Logical Complex Join Child Elements

Element Name Description

Roles

Roles define how a logical table or a logical level contributes to the join.

Each role is contained in a sub-element called Role. The role sub-element has two attributes:

  • multiplicity indicates the multiplicity of the table or level in the join. Valid values are ([0-9])* TO ([0-9])*, ZERO TO ONE, ZERO TO MANY, ONE TO ONE, ONE TO MANY, and UNKNOWN.

  • isAggregate indicates whether the table or level is an aggregate.

Each Role sub-element can contain two additional sub-elements: RefLogicalTable, which references the logical tables in the join, and RefLogicalLevel, which references the logical levels in the join.

See the syntax for the logical complex join element to see the complete hierarchy for the roles child element.

DrivingTable

If a driving table has been specified for the key, this element references that logical table.

The driving table is contained in a sub-element called RefLogicalTable.


Syntax

<LogicalComplexJoin …
     type="">
   <Description />
   <Roles>
     <Role multiplicity="" isAggregate="">
       <RefLogicalTable …/>
       <RefLogicalLevel …/>
     </Role>
   </Roles>
   <DrivingTable>
     <RefLogicalTable …/>
   </DrivingTable>
</LogicalComplexJoin>

Example

<LogicalComplexJoin name="Relationship_2004:617171273059824"
     id="2004:61717" uid="80cbbf09-07d4-0000-714b-e31d00000000"
     type="Inner">
   <Roles>
     <Role multiplicity="n..n" isAggregate="false">
       <RefLogicalTable id="2035:61664"
        uid="80cbbdd9-07f3-0000-714b-e31d00000000"
        qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
         F1 Order Facts&quot;"/>
     </Role>
     <Role multiplicity="0..1" isAggregate="false">
       <RefLogicalTable id="2035:61573"
        uid="80cbbdd5-07f3-0000-714b-e31d00000000" 
        qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
         D11 Discounts and Coupons&quot;"/>
     </Role>
   </Roles>
</LogicalComplexJoin>

7.4 XML Elements: Logical Level

The logical level element corresponds to the logical level object contained in the dimensions in the Business Model and Mapping layer.

The logical level tag includes the following attributes:

Table 7-7 Logical Level Tag Attributes

Attribute Name Description

isUniqueSourceKey

If set to true, indicates that this level is associated with the logical column or columns that comprise the logical key of the dimension table (or in other words, that this level is the lowest level of the dimension).

isGTA

If set to true, indicates that this level is the Grand Total level, which is a special level representing the grand total for a dimension. Each dimension can have just one Grand Total level. A grand total level does not contain dimensional attributes and does not have a level key.

Note: GTA stands for Grand Total Alias.

isFDUC

If set to true, indicates that the logical level rolls up to its parent. This option is called Supports rollup to higher level of aggregation in the Administration Tool.

Note: FDUC stands for FullDrillUpCoverage.

levelConst

The star schema level constant.

memberCount

The number of elements that exist at this logical level.


The logical level tag includes the following child elements:

Table 7-8 Logical Level Child Elements

Element Name Description

ChildLevels

References the child levels that have been defined for this logical level.

Each child level is contained in a sub-element called RefLogicalLevel.

PreferredDrillDown

If a drill path has been defined that is outside the normal drill path defined by the dimension level hierarchy, this element references the level to which users should drill.

The preferred drill level is contained in a sub-element called RefLogicalLevel.

ParentKey

References the parent key for this level (for dimensions with parent-child hierarchies only).

The parent key is contained in a sub-element called RefLogicalKey.


Syntax

<LogicalLevel …
     isUniqueSourceKey=""
     isGTA=""
     isFDUC=""
     levelConst=""
     memberCount="">
   <Description />
   <ChildLevels>
     <RefLogicalLevel …/>
     <RefLogicalLevel …/>
   </ChildLevels>
   <PreferredDrillDown>
     <RefLogicalLevel …/>
   </PreferredDrillDown>
   <ParentKey>
     <RefLogicalLevel …/>
   </ParentKey>
</LogicalLevel>

Example

<LogicalLevel name="City"
     parentName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
      H02 Cust Primary Addresses&quot;"
     parentId="2019:63679" parentUid="80cbc715-07e3-0000-714b-e31d00000000"
     id="2025:63890" uid="80cbc796-07e9-0000-714b-e31d00000000"
     isGTA="false" isFDUC="true" memberCount="1" levelConst="&apos;City&apos;">
   <ChildLevels>
     <RefLogicalLevel id="2025:63894" 
      uid="80cbc798-07e9-0000-714b-e31d00000000"
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       H02 Cust Primary Addresses&quot;.&quot;Cust Address&quot;"/>
   </ChildLevels>
</LogicalLevel>

7.5 XML Elements: Dimension

The dimension element corresponds to the dimension object in the Business Model and Mapping layer.

The dimension tag includes the following attributes:

Table 7-9 Dimension Tag Attributes

Attribute Name Description

isTimeDim

If set to true, indicates that this dimension is a time dimension.

isRagged

If set to true, indicates that this dimension hierarchy is unbalanced. An unbalanced hierarchy is one that contains levels that are not at the same depth.

isSkipped

If set to true, indicates that this dimension hierarchy is a skip-level hierarchy. A skip-level hierarchy is one in which there are members that do not have a value for a particular parent level.

isValueBased

If set to true, indicates that this object is a dimension with parent-child hierarchies. A parent-child hierarchy is a hierarchy of members that all have the same type. In a parent-child hierarchy, the inter-member relationships are parent-child relationships between dimension members.


The dimension tag includes the following child elements:

Table 7-10 Dimension Child Elements

Element Name Description

RootLevels

References the root level or levels of this dimension. Root levels are levels in the hierarchy that do not have any levels above them. In the Administration Tool, root levels appear directly below the dimension icon.

Each level is contained in a sub-element called RefLogicalLevel.

DefaultRootLevel

References the default root level of this dimension. When there are many root levels in a dimension, the default root level is the one that is used for drilldown.

The default root level is contained in a sub-element called RefLogicalLevel.


Syntax

<Dimension …
     isTimeDim=""
     isRagged=""
     isSkipped=""
     isValueBased="">
   <Description />
   <RootLevels>
     <RefLogicalLevel …/>
     <RefLogicalLevel …/>
   </RootLevels>
   <DefaultRootLevel>
     <RefLogicalLevel …/>
   </DefaultRootLevel>
</Dimension>

Example

<Dimension name="H0 Time"
     parentName="&quot;3 - Sample Federated&quot;"
     parentId="2000:53458" parentUid="80cb9462-07d0-0000-714b-e31d00000000"
     id="2019:53459" uid="80cb9463-07e3-0000-714b-e31d00000000"
     isTimeDim="true" isValueBased="false" isRagged="false" isSkipped="false">
   <RootLevels>
     <RefLogicalLevel id="2025:53882"
      uid="80cb960a-07e9-0000-714b-e31d00000000"
      qualifiedName="&quot;3 - Sample Federated&quot;.&quot;H0 Time&quot;.&quot;
       Total Time&quot;"/>
   </RootLevels>
   <DefaultRootLevel>
     <RefLogicalLevel id="2025:53882" 
      uid="80cb960a-07e9-0000-714b-e31d00000000"
      qualifiedName="&quot;3 - Sample Federated&quot;.&quot;H0 Time&quot;.&quot;
       Total Time&quot;"/>
   </DefaultRootLevel>
</Dimension>

7.6 XML Elements: Logical Table

The logical table element corresponds to the logical table object in the Business Model and Mapping layer.

The logical table tag includes the following attributes:

Table 7-11 Logical Table Tag Attributes

Attribute Name Description

isLookupTable

If set to true, indicates that this logical table is a lookup table.

Lookup tables are typically used to store fields that contain translations in several languages. Queries that require multilingual data join the base table and lookup table to obtain the translated values for each row in the base table.

x

The x coordinate of the table when it is shown in the business model diagrams.

y

The y coordinate of the table when it is shown in the business model diagrams.


The logical table tag includes the following child elements:

Table 7-12 Logical Table Child Elements

Element Name Description

LevelColumn

References the column that is used in the level that corresponds to this logical table.

Each level column is contained in a sub-element called RefLogicalColumn.

Columns

References the logical columns that belong to this logical table.

Each logical column is contained in a sub-element called RefLogicalColumn.

TableSources

References the logical table sources for this logical table.

Each logical table source is contained in a sub-element called RefLogicalTableSource.


Syntax

<LogicalTable …
     isLookupTable=""
     x=""
     y="">
   <Description />
   <LevelColumn>
     <RefLogicalColumn …/>
   </LevelColumn>
   <Columns>
     <RefLogicalColumn …/>
     <RefLogicalColumn …/>
   </Columns>
   <TableSources>
     <RefLogicalTableSource …/>
     <RefLogicalTableSource …/>
   </TableSources>
</LogicalTable>

Example

<LogicalTable name="F2 Coupon Usages" 
     parentName="&quot;8 - Fusion Order Demo (OLTP)&quot;"
     parentId="2000:61417" parentUid="80cbbdd2-07d0-0000-714b-e31d00000000"
     id="2035:61501" uid="80cbbde8-07f3-0000-714b-e31d00000000"
     x="133" y="378">
   <Columns>
     <RefLogicalColumn id="2006:61504" 
      uid="80cbbefc-07d6-0000-714b-e31d00000000"
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       F2 Coupon Usages&quot;.&quot;Applied Date&quot;"/>
     <RefLogicalColumn id="2006:61507"
      uid="80cbbeff-07d6-0000-714b-e31d00000000"
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       F2 Coupon Usages&quot;.&quot;# of Customers&quot;"/>
     <RefLogicalColumn id="2006:61508"
      uid="80cbbf00-07d6-0000-714b-e31d00000000" 
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       F2 Coupon Usages&quot;.&quot;# of Coupons and Discounts&quot;"/>
     <RefLogicalColumn id="2006:61512"
      uid="80cbbf04-07d6-0000-714b-e31d00000000"
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       F2 Coupon Usages&quot;.&quot;Order ID&quot;"/>
   </Columns>
   <TableSources>
     <RefLogicalTableSource id="2037:61503"
      uid="80cbc055-07f5-0000-714b-e31d00000000" 
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       F2 Coupon Usages&quot;.&quot;COUPON_USAGES&quot;"/>
   </TableSources>
</LogicalTable>

7.7 XML Elements: Logical Foreign Key

The logical foreign key element corresponds to the logical foreign key object in the Business Model and Mapping layer.

The logical foreign key tag includes the following attributes:

Table 7-13 Logical Foreign Key Tag Attributes

Attribute Name Description

type

The type of join. Valid values are Inner, LeftOuter, RightOuter, FullOuter, and FullOuterStitch.


The logical foreign key tag includes the following child elements:

Table 7-14 Logical Foreign Key Child Elements

Element Name Description

Columns

References the logical columns in the table that the foreign key references.

Each logical column is contained in a sub-element called RefLogicalColumn.

CounterPartKey

References the foreign key columns for this foreign key.

Each logical column is contained in a sub-element called RefLogicalKey.

DrivingTable

If a driving table has been specified for this logical foreign key, this element references that logical table.

The driving table is contained in a sub-element called RefLogicalTable.


Syntax

<LogicalForeignKey …
     type="">
   <Description />
   <Columns>
     <RefLogicalColumn …/>
     <RefLogicalColumn …/>
   </Columns>
   <CounterPartKey>
     <RefLogicalKey …/>
   </CounterPartKey>
   <DrivingTable>
     <RefLogicalTable …/>
   </DrivingTable>
</LogicalForeignKey>

Example

<LogicalForeignKey name="Measures_FKey" 
     parentName="&quot;9 - Usage Tracking&quot;.&quot;Measures&quot;"
     parentId="2035:22319" parentUid="802b28a4-07f3-0000-714b-e31d00000000"
     id="2033:22559" uid="802b29a5-07f1-0000-714b-e31d00000000" 
     type="Inner">
   <Columns>
     <RefLogicalColumn id="2006:22349" 
      uid="802b28b2-07d6-0000-714b-e31d00000000"
      qualifiedName="&quot;9 - Usage Tracking&quot;.&quot;Measures&quot;.&quot;
       QueryText&quot;"/>
   </Columns>
   <CounterPartKey>
     <RefLogicalKey id="2008:22412"
      uid="802b29a0-07d8-0000-714b-e31d00000000"
      qualifiedName="&quot;9 - Usage Tracking&quot;.&quot;Topic&quot;.&quot;
       Topic_Key&quot;"/>
   </CounterPartKey>
</LogicalForeignKey>

7.8 XML Elements: Logical Key

The logical key element corresponds to the logical key object in the Business Model and Mapping layer.

The logical key tag includes the following attributes:

Table 7-15 Logical Key Tag Attributes

Attribute Name Description

isPrimary

If set to true, indicates that this key is the logical primary key for the table.

isForDrillDown

If set to true, indicates that this key is the key that is displayed when a user clicks to drill down.

isChronKey

If set to true, indicates that this key is a chronological key for a time dimension.


The logical key tag includes the following child elements:

Table 7-16 Logical Key Child Elements

Element Name Description

Columns

References the logical column that defines the key of the logical table.

The logical column is contained in a sub-element called RefLogicalColumn.


Syntax

<LogicalKey …
     isPrimary=""
     isForDrillDown=""
     isChronKey="">
   <Description />
   <Columns>
     <RefLogicalColumn …/>
   </Columns>
</LogicalKey>

Example

<LogicalKey name="CUSTOMER_ID"
     parentName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
      F2 Coupon Usages&quot;"
     parentId="2035:61501" parentUid="80cbbde8-07f3-0000-714b-e31d00000000"
     id="2008:61513" uid="80cbbf39-07d8-0000-714b-e31d00000000"
     isPrimary="true">
   <Columns>
     <RefLogicalColumn id="2006:61512"
      uid="80cbbf04-07d6-0000-714b-e31d00000000"
      qualifiedName="&quot;8 - Fusion Order Demo (OLTP)&quot;.&quot;
       F2 Coupon Usages&quot;.&quot;Order ID&quot;"/>
   </Columns>
</LogicalKey>

7.9 XML Elements: Logical Table Source

The logical table source element corresponds to the logical table source object in the Business Model and Mapping layer. See also the column mapping element, described in Section 7.9.1, "Column Mapping."

The logical table source tag includes the following attributes:

Table 7-17 Logical Table Source Attributes

Attribute Name Description

isDistinct

This attribute is used if the values for the logical table source are unique. In the Administration Tool, this option is called Select distinct values in the Content tab of the Logical Table Source dialog.

isDimOnly

This attribute is not used.

isSysGen

If set to true, indicates that an internal utility such as the Aggregate Persistence Wizard has generated this logical table source.

canCombine

If set to true, indicates that this logical table source can be combined with other logical table sources to provide a full set of results. In the Administration Tool, this option is called This source should be combined with other sources at this level in the Content tab of the Logical Table Source dialog.

isActive

If set to true, indicates that this logical table source is active. In the Administration Tool, this attribute corresponds with the Disabled option in the General tab of the Logical Table Source dialog.

allowUnmappedTable

Determines if the logical table source can have physical tables which are not mapped to logical columns.

This can occur with a snowflake of physical tables A->B->C, where a logical table maps to columns in A and C, but B needs to be included in the logical table source because it is in the join path between A and C.

isJoinRestricted

This attribute is not used.

priorityGroup

Indicates the priority group number of this logical table source. Logical table source priority group numbers are assigned to indicate which logical table source should be used for queries for which there is more than one logical table source that can satisfy the requested set of columns.


The logical table source tag includes the following child elements:

Table 7-18 Logical Table Source Child Elements

Element Name Description

Link

References the set of physical tables to which the logical table source is mapped. These links are references to the physical joins that already exist. In the Administration Tool, this element corresponds with the Map to these tables section in the General tab of the Logical Table Source dialog.

Each link child element contains two sub-elements, StartNode and Joins:

  • The StartNode sub-element references the physical table identified by this link. It can contain the RefCubeTable, RefPhysicalTable, RefAWDimension, or RefAWCube, depending on your data source type.

  • The Joins sub-element defines the joins for this link. It contains different sub-elements, depending on the type of join. For example:

    RefCubeTable, RefPhysicalTable, RefAWDimension, or RefAWCube

    RefPhysicalForeignKey or RefComplexJoin

    DrivingTable, which contains a sub-element RefPhysicalTable

    The Joins sub-element has two attributes: type (Inner, LeftOuter, RightOuter, FullOuter, or FullOuterStitch) and cardinality (ONE TO ONE, ZERO OR ONE TO ONE, ONE TO ZERO OR ONE, ZERO OR ONE TO ZERO OR ONE, ONE TO MANY, ZERO OR ONE TO MANY, ZERO OR ONE TO MANY, MANY TO ONE, MANY TO ZERO OR ONE, or MANY TO MANY).

See the syntax for the logical table source element to see the complete hierarchy for the link child element.

WhereClause

If a WHERE clause filter has been defined, contains the WHERE clause expression that limits the number of rows the source uses in the resultant table. The expression is contained in a sub-element called Expr.

In the Administration Tool, this option is called Use this "WHERE clause" filter to limit rows returned (exclude the "WHERE") in the Content tab of the Logical Table Source dialog.

GroupBy

Contains the expression that defines whether the aggregation is grouped by logical level or by column. The expression is contained in a sub-element called Expr.

In the Administration Tool, this option is called Aggregation content, group by in the Content tab of the Logical Table Source dialog.

FragmentContent

Contains the expression that defines how the source is fragmented. The expression is contained in a sub-element called Expr.

This child element is used in conjunction with the canCombine attribute. In the Administration Tool, this option is called Fragmentation content in the Content tab of the Logical Table Source dialog.

ClosureTable

References the parent-child table, if any.

The parent-child table is contained in a sub-element called RefPhysicalTable.


Syntax

<LogicalTableSource …
     isDistinct=""
     isSysGen=""
     canCombine=""
     isActive=""
     allowUnmappedTable=""
     priorityGroup="">
   <Description />
   <Link>
     <StartNode>
       <RefPhysicalTable …/>
     </StartNode>
     <Joins>
       <Join type="" cardinality="">
         <RefPhysicalTable …/>
         <RefPhysicalTable …/>
         <RefPhysicalForeignKey …/>
       </Join>
     </Joins>
   </Link>
   <WhereClause>
     <Expr>...</Expr>
   </WhereClause>
   <GroupBy>
     <Expr />
   </GroupBy>
   <FragmentContent>
     <Expr />
   </FragmentContent>
   <ClosureTable>
     <RefPhysicalTable …/>
   </ClosureTable>
</LogicalTableSource>

Example

<LogicalTableSource name="LTS3 Channels (Bridged to Revenue)"
     parentName="&quot;1 - Sample App&quot;.&quot;D4 Offices and Channels 
      (M:M Joins)&quot;"
     parentId="2035:11648" parentUid="80cab595-07f3-0000-714b-e31d00000000"
     id="2037:12357" uid="80cab7d5-07f5-0000-714b-e31d00000000"
     isActive="true">
   <Link>
     <StartNode>
       <RefPhysicalTable id="3001:42412" 
        uid="80cb6825-0bb9-0000-714b-e31d00000000"
        qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;
         Catalog&quot;.&quot;BISAMPLE&quot;.&quot;D30 Offices&quot;"/>
     </StartNode>
     <Joins>
       <Join type="Inner" cardinality=" ONE TO MANY">
         <RefPhysicalTable id="3001:42412" 
          uid="80cb6825-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D30 Offices&quot;"/>
         <RefPhysicalTable id="3001:42416"
          uid="80cb6829-0bb9-0000-714b-e31d00000000"
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;"/>
         <RefPhysicalForeignKey id="3006:43167"
          uid="80cb6b18-0bbe-0000-714b-e31d00000000"
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;
           .&quot;D43 Chnls Offcs Bridge (Revenue)_FKey&quot;"/>
       </Join>
     </Joins>
   </Link>
   <Link>
     <StartNode>
       <RefPhysicalTable id="3001:42414" 
        uid="80cb6827-0bb9-0000-714b-e31d00000000"
        qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
         &quot;.&quot;BISAMPLE&quot;.&quot;D41 Channels (Revenue)&quot;"/>
     </StartNode>
     <Joins>
       <Join type="Inner" cardinality=" ONE TO MANY">
         <RefPhysicalTable id="3001:42414" 
          uid="80cb6827-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D41 Channels (Revenue)&quot;"/>         <RefPhysicalTable id="3001:42416" 
          uid="80cb6829-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;"/>         <RefPhysicalForeignKey id="3006:43166" 
          uid="80cb6b17-0bbe-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;
           .&quot;D53 Teams Membership Bridge (Revenue Facts)_FKey#1&quot;"/>
       </Join>
     </Joins>
   </Link>
   <Link>
     <StartNode>
       <RefPhysicalTable id="3001:42416" 
        uid="80cb6829-0bb9-0000-714b-e31d00000000" 
        qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
         &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;"/>
     </StartNode>
     <Joins>
       <Join type="Inner" cardinality="MANY TO ONE">
         <RefPhysicalTable id="3001:42416" 
          uid="80cb6829-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;"/>         <RefPhysicalTable id="3001:42414" 
          uid="80cb6827-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D41 Channels (Revenue)&quot;"/>         <RefPhysicalForeignKey id="3006:43166" 
          uid="80cb6b17-0bbe-0000-714b-e31d00000000"
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;
           .&quot;D53 Teams Membership Bridge (Revenue Facts)_FKey#1&quot;"/>
       </Join>
       <Join type="Inner" cardinality="MANY TO ONE">
         <RefPhysicalTable id="3001:42416"
          uid="80cb6829-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;"/>
         <RefPhysicalTable id="3001:42412" 
          uid="80cb6825-0bb9-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
          &quot;.&quot;BISAMPLE&quot;.&quot;D30 Offices&quot;"/>
         <RefPhysicalForeignKey id="3006:43167" 
          uid="80cb6b18-0bbe-0000-714b-e31d00000000" 
          qualifiedName="&quot;01 - Sample App Data (ORCL)&quot;.&quot;Catalog
           &quot;.&quot;BISAMPLE&quot;.&quot;D43 Chnls Offs Bridge (Rev)&quot;
           .&quot;D43 Chnls Offcs Bridge (Revenue)_FKey&quot;"/>
       </Join>
     </Joins>
   </Link>
   <WhereClause>
      <Expr></Expr>
   </WhereClause>
   <GroupBy>
      <Expr>
        <![CDATA[ GROUPBYLEVEL("1 - Sample App"."H4 Offices and Channels (M:M)"
         ."Channel Detail")]]>
      </Expr>
   </GroupBy>
   <FragmentContent>
      <Expr></Expr>
   </FragmentContent>
</LogicalTableSource>

7.9.1 Column Mapping

The column mapping element does not correspond to any metadata repository object. It is only used in conjunction with the logical table source element. The column mapping element appears on its own in the XML schema (.xsd file), rather than as part of the logical table source element, so that the column mapping details are easier to read and update.

The column mapping tag includes the following child elements:

Table 7-19 Column Mapping Child Elements

Element Name Description

RefLogicalTableSource

References the logical table source to which this column mapping belongs. Each column mapping must specify one and only one logical table source.

LogicalColumn

Contains the expression that identifies the logical column for this column mapping. The expression is contained in a sub-element called Expr.

Expr

Contains the expression that identifies the physical column for this column mapping. Note that this Expr child element is different from the Expr sub-element that appears inside the LogicalColumn child element.


The column mapping tag does not include any attributes.

Syntax

<ColumnMapping>
   <RefLogicalTableSource …/>
   <LogicalColumn>
     <Expr>...</Expr>
   </LogicalColumn>
   <Expr>...</Expr>
</ColumnMapping>

Example

<ColumnMapping>
   <RefLogicalTableSource id="2037:43703"
    uid="80cb6db6-07f5-0000-714b-e31d00000000"
    qualifiedName="&quot;SampleApp &quot;.&quot;F0 Revenue Base Measures
     &quot;.&quot;LTS2 Revenue Facts Aggregate 1&quot;"/>
   <LogicalColumn>
     <Expr>
       <![CDATA["SampleApp"."F0 Revenue Base Measures"."Revenue"]]>
     </Expr>
   </LogicalColumn>
   <Expr>
     <![CDATA["SampleApp"."".""."F11 Revenue Facts Aggregate"."Revenue"]]>
   </Expr>
</ColumnMapping>

7.10 XML Elements: Logical Source Folder

The logical source folder element corresponds to the logical source folder object in the Business Model and Mapping layer. Logical source folders contain logical table sources.

The logical source folder element does not include any attributes nor child elements, other than the default attributes and elements.

Syntax

<LogicalSourceFolder …>
   <Description />
</LogicalSourceFolder>

Example

<LogicalSourceFolder name="Sources" 
     parentName="&quot;Usage Tracking&quot;.&quot;Measures&quot;"
     parentId="2035:43831" parentUid="6c898eac-b03c-e91a-14ac-7868e974eafc"
     id="2046:43884" uid="6c898eac-b03c-e91a-14ac-7868e974eafc">
</LogicalSourceFolder>

7.11 XML Elements: Measure Definition

The measure definition element stores the measure definition for a measure column. A measure column is usually in a fact table, can change for each record, and can be added up or aggregated in some way.

The measure definition tag includes the following attributes:

Table 7-20 Measure Definition Tag Attributes

Attribute Name Description

isCommutative

If set to true, indicates that the aggregation rule lets the server switch the order if it can increase the performance. For example, the following aggregation function is commutative:

A (B (x)) = B (A (x))

The measure definition tag includes the following child elements:

Table 7-21 Measure Definition Child Elements

Element Name Description

Rules

References the aggregation rule for this measure.

Each rule is contained in a sub-element called RefAggrRule. The order of rules is important.

For more information, see Section 7.12, "XML Elements: Aggregation Rule."

OverrideRules

References the override aggregation rule for this measure, if any.

Each override aggregation rule is contained in a sub-element called RefOverrideAggrRule. The order of override rules is important.

For more information, see Section 7.13, "XML Elements: Override Aggregation Rule."


Syntax

<MeasureDefn …
     isCommutative="">
   <Rules />
   <OverrideRules />
   <Description />
</MeasureDefn>

Example

<MeasureDefn name="Measure"
     parentName="&quot;SampleApp Lite&quot;.&quot;F0 Revenue Base Measures&quot;
     .&quot;Billed Quantity&quot;"
     parentId="2006:42434"
     parentUid="80cb683b-07d6-0000-714b-e31d00000000"
     id="2048:42595" uid="80cb68dc-0800-0000-714b-e31d00000000"
     isCommutative="false">
   <Rules>
     <RefAggrRule id="2050:43457" uid="80cb6c51-0802-0000-714b-e31d00000000"
     qualifiedName=""SampleApp Lite"."F0 Revenue Base Measures"."Billed Quantity".
     "Measure"."AggRule_2050:434571273647807"" /> 
   </Rules>
</MeasureDefn>

7.12 XML Elements: Aggregation Rule

The aggregation rule element corresponds to the aggregation rule object in the Business Model and Mapping layer.

The aggregation rule tag includes the following attributes:

Table 7-22 Aggregation Rule Tag Attributes

Attribute Name Description

isDefault

If set to true, indicates that this is the default rule for aggregate calculations. This option only applies when there is more than one aggregation rule.


The aggregation rule tag includes the following child elements:

Table 7-23 Aggregation Rule Child Elements

Element Name Description

Expr

Contains the expression on which this aggregation rule is based.

BasedOnDimension

If this aggregation rule is specific to a particular dimension, references the dimension for which this aggregation rule applies.

The dimension is contained in a sub-element called RefDimension.


Syntax

<AggrRule …
     isDefault="">
   <Description />
   <BasedOnDimension …/>
   <Expr>
     <![CDATA[…]]>
   </Expr>
</AggrRule>

Example

<AggrRule name="AggRule_2050:434611273647807"
     parentName="&quot;SampleApp Lite&quot;.&quot;F0 Revenue Base Measures&quot;
     .&quot;# of Products with Orders&quot;.&quot;Measure&quot;"
     parentId="2048:42600" parentUid="80cb68e1-0800-0000-714b-e31d00000000"
     id="2050:43461" uid="80cb6c4b-0802-0000-714b-e31d00000000"
     isDefault="true">
   <Expr>
    <![CDATA[ COUNT(DISTINCT "SampleApp Lite"."F0 Revenue Base Measures".
     "# of Products with Orders")]]>
   </Expr>
</AggrRule>

7.13 XML Elements: Override Aggregation Rule

The override aggregation rule element corresponds to the override aggregation expression for a logical table source in the Business Model and Mapping Layer.

When you select Count Distinct as the default aggregation rule, you can specify an override aggregation expression for specific logical table sources. This option is useful when you have more than one logical table source mapped to a logical column and you want to apply a different aggregation rule to each source.

The override aggregation rule tag includes the following child elements:

Table 7-24 Override Aggregation Rule Child Elements

Element Name Description

RefLogicalTableSource

References the logical table source to which this override aggregation rule applies.

Expr

Contains the expression on which this aggregation rule is based.


The override aggregation rule tag does not include any attributes.

Syntax

<OverrideAggrRule …>
   <Description />
   <RefLogicalTableSource …/>
   <Expr>...</Expr>
</OverrideAggrRule>

Example

<OverrideAggrRule name="OvAggRule_2054:385501246426812"
     parentName="&quot;Core&quot;.&quot;Fact - CRM - Order Item
      &quot;.&quot;# of Accounts with Orders&quot;.&quot;Measure&quot;"
     parentId="2048:31122" parentUid="00225690-0800-0000-714b-e31d00000000"
     id="2054:38550" uid="802ba5d5-0806-0000-714b-e31d00000000">
   <RefLogicalTableSource id="2037:220577"
    uid="002253c3-07f5-0000-714b-e31d00000000"
    qualifiedName="&quot;Core&quot;.&quot;Fact - CRM - Order Item
     &quot;.&quot;Fact_W_ORDER_F&quot;"/>
   <Expr>
     <![CDATA[ COUNT(DISTINCT "Core"."Fact - CRM - Order Item".
      "# of Accounts with Orders")]]>
   </Expr>
</OverrideAggrRule>

7.14 XML Elements: Logical Display Folder

The logical display folder element corresponds to the logical display folder object in the Business Model and Mapping layer.

The logical display folder tag includes the following child elements:

Table 7-25 Logical Display Folder Child Elements

Element Name Description

Dimensions

References the dimensions that belong to this logical display folder.

Each dimension is contained in a sub-element called RefDimension.

Tables

References the logical tables that belong to this logical display folder.

Each table is contained in a sub-element called RefLogicalTable.


The logical display folder element does not include any attributes.

Syntax

<LogicalDisplayFolder …>
   <Description />
   <Dimensions>
     <RefDimension …/>
     <RefDimension …/>
   </Dimensions>
   <Tables>
     <RefLogicalTable …/>
     <RefLogicalTable …/>
   </Tables>
</LogicalDisplayFolder>

Example

<LogicalDisplayFolder name="Resources"
     parentName="&quot;SampleApp&quot;"
     parentId="2000:42377" parentUid="80cb6802-07d0-0000-714b-e31d00000000"
     id="2052:44085" uid="9bf9c250-0c00-1000-835d-0a9702490000">
   <Tables>
     <RefLogicalTable id="2035:42395"
      uid="80cb6814-07f3-0000-714b-e31d00000000"
      qualifiedName="&quot;SampleApp&quot;.&quot;D0 Time&quot;"/>
     <RefLogicalTable id="2035:42562"
      uid="80cb68bb-07f3-0000-714b-e31d00000000"
      qualifiedName="&quot;SampleApp&quot;.&quot;D2 Offices&quot;"/>
   </Tables></LogicalDisplayFolder>