SAP BI Java SDK

Package com.sap.ip.bi.sdk.dac.olap.query.main

Contains the major OLAP query objects that help you build queries to specify multidimensional result sets.

See:
          Description

Interface Summary
IBIAxis Aggregates a list of dimensions and tuples or members of these dimensions.
IBIAxisDimension Represents a dimension object that is oriented along an axis of an OLAP query.
IBIIdentifiable Endows several objects in the OLAP Query Model with the ability to provide an Id and a Label.
IBIMemberSet A subtype of IBISet, collects member items for the associated dimension in a set.
IBIQuery Represents the overall OLAP query.
IBISet Defines the common behavior of MemberSets and TupleSets.
IBISetExpression Defines the common behavior of TupleSetExpressions and MemberSetExpressions.
IBITupleSet A subtype of IBISet, collects tuple items in a set.
 

Package com.sap.ip.bi.sdk.dac.olap.query.main Description

Contains the major OLAP query objects that help you build queries to specify multidimensional result sets. We refer to this as the Main Model, in which many classes in turn form the top-most objects of subsequent sub-models in other OLAP Query Model sub-packages. This package documentation contains the following sections:

Overview

The Main Model is diagrammed below:

Main Model diagram Slot (from Instance) IBIMemberSetExpression (from msx) IBIMemberSet IBIAxisDimension IBITupleSetExpression (from tsx) IBITupleSet IBIAxis IBISet IBIQuery

At the root of the Main Model is the IBIQuery class, which can be regarded as the top most element of a query.

Query and Axes

A multidimensional query is accomplished by distributing dimensions of a cube on different axes, hence a query aggregates a number of axes. There are two different types of axes belonging to a query: regular axes, and a special slicer axis. Correspondingly, note that in the diagram above, IBIQuery has two associations with IBIAxis: the slicer association and the axis association.

There is a one-to-one relationship between a query and its slicer axis: a query always has one, and only one slicer. However, the query can have zero to many regular axes. As you can see from the diagram, IBIQuery therefore aggregates exactly one slicer axis, and zero to many regular axes.

The main difference between the two sets of axes is that the result set for the query will have axes specifications for the non-slicer axes, but none for the slicer axis.

The Slicer

The slicer axis functions like a filter, influencing only the cell values. The query is filtered by all members of the various dimensions populated on the slicer axis. For example, you may want to restrict all sales values returned in a result set to a certain year, in which case you would have the slicer axis define a particular year by selecting only the member for that year.

The concept of a slicer can be illustrated in two different ways:

The slicer axis is sometimes referred to as the page axis or the filter axis.

A slicer axis is not displayed in the visual sense, it simply restricts or filters the values in the result set. On the other hand, the regular axes contribute directly to the result set display. There are only two that can be easily displayed in two dimensions: column and row. However, a query can have an unlimited number of axes to it.

The axes therefore define the geometry of the query by orienting the dimensions of the cube along them. Typically, a tool would display three axes: the slicer (to specify filter values and a subset of data of cube), and columns and rows (the two visible axes), which allows the display of data in tabular, spreadsheet-like fashion. Remember that the query itself, however, is not limited to three axes.

The Cube

A query is based on a cube. The Cube object comes from the CWM OLAP package, and is the main part of a query, referenced by IBIQuery, and aggregating its axes. There is a many-to-one relationship between the query and its cube: one query is based on a one cube, selecting data from that one cube, though a cube can have many queries.

IBIAxisDimensions need to exist and be assigned to axes for all existing dimensions of the referenced cube.

Axis Dimension

An axis can have zero to many ordered IBIAxisDimensions assigned to it, where an AxisDimension is an ordered collection (a subset) of members of a specific dimension. The axis dimension is therefore the specification of selected members which have a certain order, aggregating a subset of members of the dimension that it represents.

AxisDimension and its related classes are further diagrammed below:

AxisDimension diagram IBIInputReference (from input) IBIInputReference (from input) IBICalculatedMember (from member) IBIMember (from member) Attribute (from Core) IBIAxisDimension

There are two ways to populate tuples on axes. One way is to directly specify the ordered collection of tuples -- IBITupleSet -- for an IBIAxis. An additional way is to specify member collections -- IBIMemberSets -- for the IBIAxisDimensions of an IBIAxis. The specified members of different IBIAxisDimensions of one IBIAxis will then be crossjoined, which is what builds tuples.

Both ways can be used at the same time. The crossjoin is evaluated first, and then the tuple set specified by IBITupleSet is joined by union.

ExampleExample:
Let's consider each way and demonstrate how to come to the same result with the two different approaches. As in our query example above, we assign the IBIAxisDimensions for two dimensions -- Country and Product -- to an IBIAxis. The query result set has the following four tuples populated on this particular IBIAxis:

(Country, Product):

1) Direct IBITupleSet specification
Exactly one instance of IBITupleSet is aggregated by an IBIAxis. This instance specifies the collection of tuples by having an ordered zero to many association with IBITupleSetExpression:

- IBIAxis
	- IBITupleSet
		- IBITupleList (sub class of IBITupleSetExpression):
			(USA, Laptop Speedy)
			(USA, Laptop CN2)
			(Germany, Laptop Speedy)
			(Germany, Laptop CN2)

2) IBIMemberSet specification
Exactly one instance of IBIMemberSet is aggregated by an IBIAxisDimension. This instance specifies the collection of members by having an ordered zero to many association with IBIMemberSetExpression:

- IBIAxis
	- IBIAxisDimension (for Dimension Country)
		- IBIMemberSet:
			- IBIMemberList (sub class of IBIMemberSetExpression):
				USA
				Germany
	- IBIAxisDimension (for Dimension Product)
		- IBIMemberSet:
			- IBIMemberList (sub class of IBIMemberSetExpression):
				Laptop Speedy
				Laptop CN2
 

The resulting tuples are calculated by crossjoining the collections of members of the two IBIAxisDimensions:

crossjoin

 

Since:
3.50

SAP BI Java SDK

Copyright © 2004-2006 by SAP AG. All Rights Reserved.
SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, and other SAP products and services mentioned herein as well as their respective logos are trademarks or registered trademarks of SAP AG in Germany and in several other countries all over the world. All other product and service names mentioned are the trademarks of their respective companies. Data contained in this document serves informational purposes only. National product specifications may vary.
These materials are subject to change without notice. These materials are provided by SAP AG and its affiliated companies (SAP Group) for informational purposes only, without representation or warranty of any kind, and SAP Group shall not be liable for errors or omissions with respect to the materials. The only warranties for SAP Group products and services are those that are set forth in the express warranty statements accompanying such products and services, if any. Nothing herein should be construed as constituting an additional warranty.