|
SAP BI Java SDK | |||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
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. |
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:
The Main Model is diagrammed below:
At the root of the Main Model is the IBIQuery
class, which can be regarded
as the top most element of a query.
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 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.
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.
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:
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.
Example:
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
:
|
SAP BI Java SDK | |||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |