IBM Cognos Framework Manager Version 10.1.1: User Guide Ug Fm

User Manual: Pdf

Open the PDF directly: View PDF PDF.
Page Count: 619

DownloadIBM Cognos Framework Manager  Version 10.1.1: User Guide Ug Fm
Open PDF In BrowserView PDF
IBM Cognos Framework Manager
Version 10.1.1

User Guide

򔻐򗗠򙳰

Note
Before using this information and the product it supports, read the information in “Notices” on page 583.

Product Information
This document applies to IBM Cognos Business Intelligence Version 10.1.1 and may also apply to subsequent
releases. To check for newer versions of this document, visit the IBM Cognos Information Centers
(http://publib.boulder.ibm.com/infocenter/cogic/v1r0m0/index.jsp).
Licensed Materials - Property of IBM
© Copyright IBM Corporation 2005, 2011.
US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract
with IBM Corp.

Contents
Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . xi
Chapter 1. What's new? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
New features in 10.1.1 . . . . . . .
Changed features in 10.1.1 . . . . . .
Deprecated features in 10.1.1 . . . . .
Removed features in 10.1.0 . . . . .
New features in 10.1.0 . . . . . . .
Changed features in 10.1.0 . . . . . .
Deprecated features in 10.1.0 . . . . .
Removed features in 10.1.0 . . . . .
New features in 8.4 . . . . . . . .
Changed features in 8.4. . . . . . .
Deprecated features in version 8.4 . . .
New features in version 8.3 . . . . .
Changed features in version 8.3 . . . .
Deprecated features in version 8.3 . . .
Framework Manager security filters for
IQD externalize method . . . . .
Removed features in version 8.3 . . . .

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
SAP BW:
. . .
. . .

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
notice of
. . .
. . .

. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
intent to change
. . . . . .
. . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
the
.
.

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
default
. . .
. . .

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
setting .
. . .
. . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

1
1
2
2
3
4
4
5
5
5
6
7
7
8
8
9
9

Chapter 2. Getting started with Framework Manager . . . . . . . . . . . . . . . . 11
Analyzing the problem . . . . . . . . . . .
Building IBM Cognos Business Intelligence Applications
Objects you will use . . . . . . . . . . . .
Creating projects. . . . . . . . . . . . . .
Opening projects . . . . . . . . . . . . .
The project page . . . . . . . . . . . . . .
The Project Viewer . . . . . . . . . . . .
Changing options for projects . . . . . . . .
Reordering objects . . . . . . . . . . . .
The Explorer tab. . . . . . . . . . . . .
The Diagram tab . . . . . . . . . . . .
The Dimension Map tab . . . . . . . . . .
The Properties pane . . . . . . . . . . .
The Tools pane . . . . . . . . . . . . .
Naming conventions for objects in a project . . . .
Sample models . . . . . . . . . . . . . .
The Great Outdoors Warehouse model . . . . .
The Great Outdoors Sales model . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

11
12
13
16
17
18
18
20
21
22
22
23
24
25
27
28
29
30

Chapter 3. Model Design Accelerator . . . . . . . . . . . . . . . . . . . . . . . 31
Explorer tree . . . . . . . . . .
Explorer diagram . . . . . . . .
The Model Accelerator workspace . . .
Query Subject Diagram . . . . .
Using the Relationship Editing Mode .
Model Warning view . . . . . .
Changing the settings for diagrams . .
Creating a project . . . . . . . .
The star schema . . . . . . . . .
Managing your star schema . . . . .

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.

31
32
33
33
33
34
35
35
36
37

Chapter 4. Importing metadata from data sources . . . . . . . . . . . . . . . . . 39
© Copyright IBM Corp. 2005, 2011

iii

Data sources . . . . . . . . . . . . . . . . . . . . . . . . . .
Data source security . . . . . . . . . . . . . . . . . . . . . . .
Types of data source connections . . . . . . . . . . . . . . . . . . .
Native metadata . . . . . . . . . . . . . . . . . . . . . . . .
Data source connections . . . . . . . . . . . . . . . . . . . . . .
Creating data source connections . . . . . . . . . . . . . . . . . . .
Steps to create a data source connection . . . . . . . . . . . . . . . .
Importing metadata . . . . . . . . . . . . . . . . . . . . . . .
Importing metadata from relational databases . . . . . . . . . . . . . .
Importing metadata from IBM Cognos models . . . . . . . . . . . . .
Importing metadata from Architect models or Impromptu catalogs . . . . . . .
Importing metadata from IBM Cognos DecisionStream or IBM Cognos Data Manager
Importing from IBM metadata sources . . . . . . . . . . . . . . . .
Importing metadata from third party metadata sources . . . . . . . . . . .
Troubleshooting metadata from other sources . . . . . . . . . . . . . .
Importing metadata using XML as a data source . . . . . . . . . . . . .
Importing objects with the same name . . . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

39
39
40
40
41
44
46
46
47
49
49
50
54
57
62
64
64

Chapter 5. Modeling relational metadata . . . . . . . . . . . . . . . . . . . . . 67
Setting up the import view . . . . . . . . . . .
Setting up the business view . . . . . . . . . .
Relationships . . . . . . . . . . . . . . . .
Cardinality . . . . . . . . . . . . . . .
Modifying a relationship . . . . . . . . . . .
Creating complex expressions for a relationship . . .
Creating relationships . . . . . . . . . . . .
Creating a relationship shortcut. . . . . . . . .
Detecting and generating relationships . . . . . .
Query subjects . . . . . . . . . . . . . . .
Data source query subjects . . . . . . . . . .
Model query subjects . . . . . . . . . . . .
Stored procedure query subjects . . . . . . . .
Determinants . . . . . . . . . . . . . . .
Creating model query subjects based on existing objects
Viewing related objects . . . . . . . . . . .
Creating query sets . . . . . . . . . . . . .
Testing query subjects or query sets . . . . . . .
Validating query subjects . . . . . . . . . . .
Updating query subjects . . . . . . . . . . .
Converting query subjects into dimensions . . . . .
Converting model query subjects into data source query
Editing the SQL . . . . . . . . . . . . . .
Changing the type of SQL . . . . . . . . . .
Changing how the SQL is generated. . . . . . .
Dimensions . . . . . . . . . . . . . . . .
Normalized data sources . . . . . . . . . .
Creating regular dimensions . . . . . . . . .
Sorting members of a level . . . . . . . . . .
Roles . . . . . . . . . . . . . . . . .
Creating measure dimensions . . . . . . . . .
Converting measures into query items . . . . . .
Scope relationships . . . . . . . . . . . .
Creating regular dimensions based on existing objects .
Viewing related objects . . . . . . . . . . .
Testing dimensions . . . . . . . . . . . .
Converting regular dimensions into query subjects . .
Multilingual metadata . . . . . . . . . . . .
Supporting multilingual metadata . . . . . . .
Setting up a Multilingual Reporting Environment . .
Modeling with multilingual data sources . . . . .
Using macros to model multilingual data . . . . .

iv

. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
subjects
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .

IBM Cognos Framework Manager Version 10.1.1: User Guide

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

. 67
. 67
. 68
. 69
. 72
. 72
. 73
. 73
. 74
. 75
. 75
. 77
. 78
. 82
. 85
. 86
. 86
. 90
. 92
. 93
. 94
. 94
. 95
. 95
. 100
. 102
. 103
. 103
. 109
. 110
. 112
. 113
. 113
. 114
. 115
. 115
. 118
. 118
. 118
. 119
. 120
. 121

Adding a language to a project . . . . . . . . . .
Exporting translation tables . . . . . . . . . . .
Importing translation tables . . . . . . . . . . .
Example - create multilingual projects for relational metadata
Query items . . . . . . . . . . . . . . . . . .
Modifying how query items are aggregated . . . . . .
Formatting query items . . . . . . . . . . . . .
Defining prompt controls . . . . . . . . . . . .
Converting query items into measures . . . . . . . .
Business rules . . . . . . . . . . . . . . . . .
Creating calculations . . . . . . . . . . . . . .
Creating filters . . . . . . . . . . . . . . . .
Applying filters . . . . . . . . . . . . . . .
Example - showing the currency name for each country . .
Creating parameter maps . . . . . . . . . . . .
Example - Specifying language values for relational metadata
Creating session parameters . . . . . . . . . . .
Using parameters with relational data source query subjects.
Creating prompts with query macros . . . . . . . .
Organizing models . . . . . . . . . . . . . . .
Creating star schema groups . . . . . . . . . . .
Shortcuts . . . . . . . . . . . . . . . . . .
Creating folders or namespaces . . . . . . . . . .
Creating query item folders . . . . . . . . . . .
Creating measure folders . . . . . . . . . . . .
Durable models . . . . . . . . . . . . . . . .
Creating a durable model . . . . . . . . . . . .
Testing a durable model . . . . . . . . . . . . .
Analyzing models . . . . . . . . . . . . . . . .
Steps to analyze a model . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

122
122
123
123
125
128
135
136
141
141
142
144
147
148
149
151
151
153
153
164
164
169
172
173
174
174
175
176
176
181

Chapter 6. SAP BW metadata . . . . . . . . . . . . . . . . . . . . . . . . . 183
Import from an SAP BW data source . . . . . . .
Access to SAP BW metadata and data . . . . . .
SAP BW structures . . . . . . . . . . . .
SAP BW hierarchies . . . . . . . . . . . .
Steps to access a secured InfoCube . . . . . . .
Steps to import from an SAP BW data source . . .
Mapping SAP BW objects to Framework Manager . . .
Dimensions (SAP BW) . . . . . . . . . . . .
Modifying a regular dimension (SAP BW) . . . . .
Roles (SAP BW) . . . . . . . . . . . . .
Modifying a key figures dimension (SAP BW) . . .
Viewing related objects (SAP BW) . . . . . . .
Testing a dimension or other object (SAP BW) . . .
Model query subjects (SAP BW) . . . . . . . .
Query items (SAP BW) . . . . . . . . . . . .
Modifying how query items are aggregated (SAP BW)
Formatting query items (SAP BW) . . . . . . .
Defining a prompt control (SAP BW) . . . . . .
SAP BW variables . . . . . . . . . . . . .
Numeric variable property values (SAP BW) . . . .
Characteristic variable property values (SAP BW) . .
Picklist prompts(SAP BW) . . . . . . . . . .
Adding business rules (SAP BW) . . . . . . . . .
Create a calculation (SAP BW). . . . . . . . .
Creating a filter (SAP BW) . . . . . . . . . .
Applying a filter (SAP BW). . . . . . . . . .
Creating a parameter map (SAP BW) . . . . . .
Create a session parameter (SAP BW) . . . . . .
Organizing the model (SAP BW) . . . . . . . . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

183
184
185
185
187
187
189
189
190
196
198
198
199
202
204
207
210
210
215
219
219
220
221
221
223
225
227
228
230

Contents

v

Shortcuts (SAP BW) . . . . . . . .
Creating folders or namespaces (SAP BW) .

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

.
.

. 230
. 231

Chapter 7. Publishing packages . . . . . . . . . . . . . . . . . . . . . . . . 233
Verifying models or packages . . . . . . . . . .
Creating or modifying packages . . . . . . . . .
Creating a package . . . . . . . . . . . .
Modifying a package . . . . . . . . . . . .
Security . . . . . . . . . . . . . . . . .
Users, groups, and roles . . . . . . . . . . .
Adding data security . . . . . . . . . . . .
Object security . . . . . . . . . . . . . .
Modifying package security . . . . . . . . .
Specifying languages . . . . . . . . . . . . .
Specifying languages for one package . . . . . .
Specifying languages for all packages . . . . . .
Setting suppression options. . . . . . . . . . .
Externalized query subjects and dimensions . . . . .
Publishing packages . . . . . . . . . . . . .
Publishing packages based on OLAP data sources . .
Publishing packages by running scripts . . . . .
Updating reports to use the latest version of packages.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

233
235
236
237
237
238
239
240
242
243
243
244
244
244
247
249
250
251

Chapter 8. Project management . . . . . . . . . . . . . . . . . . . . . . . . 253
Metadata in your model . . . . . . . . . . . . . . .
Exploring packages . . . . . . . . . . . . . . .
Viewing the distribution of objects in packages . . . . . .
Creating model documentation . . . . . . . . . . .
Multiuser modeling . . . . . . . . . . . . . . . .
Branching and merging projects . . . . . . . . . . .
Segmented and linked projects . . . . . . . . . . .
External repository control . . . . . . . . . . . . .
Metadata administration. . . . . . . . . . . . . . .
Copying, moving, renaming, or deleting projects . . . . .
Analyzing the impact of changes to packages . . . . . .
Remapping objects to new sources . . . . . . . . . .
Exporting metadata . . . . . . . . . . . . . . .
Project reuse. . . . . . . . . . . . . . . . . .
Model portability . . . . . . . . . . . . . . . .
Synchronizing projects . . . . . . . . . . . . . . .
Steps to synchronize . . . . . . . . . . . . . . .
Query behavior. . . . . . . . . . . . . . . . . .
Governors . . . . . . . . . . . . . . . . . .
Specifying where aggregate rollups are processed . . . . .
Improving performance by setting the query processing type .
Improving performance by reusing cached data when running a
Selecting function sets . . . . . . . . . . . . . .
Quality of service . . . . . . . . . . . . . . . .
Controlling and optimizing queries . . . . . . . . . .

. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
report
. .
. .
. .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

253
253
254
254
254
255
260
264
265
265
267
269
271
272
273
280
282
282
283
290
291
292
293
294
296

Chapter 9. Guidelines for Modeling Metadata . . . . . . . . . . . . . . . . . . . 299
Understanding IBM Cognos Modeling Concepts. . . .
Relational Modeling Concepts . . . . . . . . .
Model Design Considerations . . . . . . . . .
Dimensional Modeling Concepts . . . . . . . .
Building the Relational Model . . . . . . . . . .
Defining the Relational Modeling Foundation . . .
Defining the Dimensional Representation of the Model
Organizing the Model . . . . . . . . . . .

vi

.
.
.
.
.
.
.
.

IBM Cognos Framework Manager Version 10.1.1: User Guide

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

299
299
309
317
319
319
328
332

Chapter 10. The SQL Generated by IBM Cognos Software . . . . . . . . . . . . . 335
Understanding Dimensional Queries . . . . . . . . . . .
Single Fact Query . . . . . . . . . . . . . . . . .
Multiple-fact, Multiple-grain Query on Conformed Dimensions .
Modeling 1-n Relationships as 1-1 Relationships . . . . . . .
Multiple-fact, Multiple-grain Query on Non-Conformed Dimensions
Resolving Ambiguously Identified Dimensions and Facts. . . . .
Query Subjects That Represent a Level of Hierarchy . . . . .
Resolving Queries That Should Not Have Been Split . . . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

335
335
337
339
341
345
345
347

Chapter 11. Upgrading models . . . . . . . . . . . . . . . . . . . . . . . . . 351
Verifying the models before upgrading . . . . . . . . . . . . . . .
Opening and upgrading the models . . . . . . . . . . . . . . . .
Upgrade and governors . . . . . . . . . . . . . . . . . . .
Upgrade and data types . . . . . . . . . . . . . . . . . . .
Upgrade and query subjects that are based on SAP BW metadata . . . . .
Verifying and repairing the upgraded IBM Cognos ReportNet models . . . .
Converting dimension information to either determinants or dimensions . .
Selecting and repairing objects in the upgraded IBM Cognos ReportNet models
Upgrading segmented and linked projects . . . . . . . . . . . . . .

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.

351
351
352
352
353
353
354
357
358

Appendix A. Troubleshooting . . . . . . . . . . . . . . . . . . . . . . . . . 359
Unable to Compare Two CLOBs in Oracle . . . . . . . . . . . . . . . . . .
An Out of Memory Error with ERWin Imported Metadata . . . . . . . . . . . .
Framework Manager Cannot Access the Gateway URI . . . . . . . . . . . . .
Object Names Appear in the Wrong Language . . . . . . . . . . . . . . . .
Full Outer Joins in Oracle Return Incorrect Results . . . . . . . . . . . . . . .
Error When Testing Query Subjects in a Model Imported from Teradata . . . . . . . .
Error for Type-In SQL Query Subject . . . . . . . . . . . . . . . . . . .
QE-DEF-0259 Error . . . . . . . . . . . . . . . . . . . . . . . . .
Externalized Key Figures Dimension Retains Old Prompt Value . . . . . . . . . .
Older Models Display Level Object Security . . . . . . . . . . . . . . . . .
Exporting a Framework Manager Model to a CWM File Fails With Error MILOG.TXT was not
Difference in SQL for Inner Joins After Upgrading to IBM Cognos BI, Version 8.3 and Later .
Full Outer Joins Not Sent to Oracle 9i and 10GR1 . . . . . . . . . . . . . . .
Unexplained Discrepancies in Number Calculations . . . . . . . . . . . . . .

. .
. .
. .
. .
. .
. .
. .
. .
. .
. .
found
. .
. .
. .

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.

359
359
359
360
360
360
360
361
361
362
362
362
363
363

Appendix B. Using the expression editor . . . . . . . . . . . . . . . . . . . . 365
Searching for values may return
Calculation components . . .
Operators . . . . . .
Summaries . . . . . .
Member summaries . . .
Constants . . . . . .
Constructs . . . . . .
Business date/time functions
Block functions . . . . .
Macro functions . . . .
Common Functions . . .
Dimensional functions . .
Aster . . . . . . . .
DB2 . . . . . . . .
Informix . . . . . . .
MS Access . . . . . .
Netezza . . . . . . .
Oracle . . . . . . . .
Red Brick. . . . . . .
SQL Server . . . . . .
Teradata . . . . . . .
SAP BW . . . . . . .

unexpected
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .

results
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .
. . .

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

Contents

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

365
365
365
372
383
386
387
388
392
393
403
410
431
436
451
457
464
470
478
483
490
495

vii

Sybase. . . .
Postgres . . .
Vertica. . . .
Paraccel . . .
MySQL . . .
Greenplum . .
Report functions

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

.
.
.
.
.
.
.

497
504
510
515
518
522
527

Appendix C. Accessibility features . . . . . . . . . . . . . . . . . . . . . . . 545
Accessibility features in Framework Manager. . .
Keyboard shortcuts for Framework Manager . . .
Keyboard shortcuts for Model Design Accelerator
IBM and accessibility . . . . . . . . . . .

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

.
.
.
.

545
545
545
546

Appendix D. Data formatting reference . . . . . . . . . . . . . . . . . . . . . 547
Data Formatting Properties . . .
"Not Applicable" Characters .
Any Error Characters. . . .
Calendar Type . . . . . .
Clock . . . . . . . . .
Currency . . . . . . . .
Currency Display . . . . .
Currency Symbol . . . . .
Currency Symbol Position . .
Date Ordering . . . . . .
Date Separator . . . . . .
Date Style . . . . . . .
Decimal Separator . . . . .
Display AM / PM Symbols. .
Display As Exponent . . . .
Display Days . . . . . .
Display Eras. . . . . . .
Display Hours . . . . . .
Display Milliseconds . . . .
Display Minutes . . . . .
Display Months . . . . .
Display Months . . . . .
Display Seconds . . . . .
Display Time Zone . . . .
Display Weekdays . . . . .
Display Years . . . . . .
Display Years . . . . . .
Divide By Zero Characters . .
Exponent Symbol . . . . .
Group Size (digits) . . . .
International Currency Symbol
Mantissa (digits) . . . . .
Maximum No. of Digits . . .
Minimum No. of Digits . . .
Missing Value Characters . .
Negative Pattern . . . . .
Negative Sign Position . . .
Negative Sign Symbol . . .
No. of Decimal Places . . .
Numeric Overflow Characters .
Padding Character. . . . .
Pattern . . . . . . . .
Percentage Symbol . . . .
Percent Scale (integer) . . .
Scale . . . . . . . . .

viii

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

IBM Cognos Framework Manager Version 10.1.1: User Guide

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

547
547
547
547
547
547
547
548
548
548
548
548
548
548
548
548
548
549
549
549
549
549
549
549
549
549
549
549
550
550
550
550
550
550
550
550
550
550
551
551
551
551
551
551
551

Secondary Group Size (digits) .
Security Error Characters . .
Thousands Separator . . . .
Time Separator . . . . . .
Time Style . . . . . . .
Time Unit . . . . . . .
Use Thousands Separator . .
Zero Value Characters . . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

551
551
552
552
552
552
552
552

Appendix E. Using Patterns to Format Data . . . . . . . . . . . . . . . . . . . 553
Pattern Guidelines. . .
Date and Time Symbols .
Decimal Format Symbols

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

.
.
.

. 553
. 554
. 559

Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer . . . . 561
Working with SAP BW Data Using a Package in Framework Manager .
Creating a BW Query in SAP Business Explorer Query Designer . .
Creating a Package in Framework Manager . . . . . . . . .
Creating a Model in Transformer . . . . . . . . . . . . .
Working with SAP BW Data Using Externalized CSV Files in Framework
SAP BW Query Requirements . . . . . . . . . . . . . .
Framework Manager Considerations . . . . . . . . . . .
Building PowerCubes from SAP BW Data . . . . . . . . . .

. . .
. . .
. . .
. . .
Manager
. . .
. . .
. . .

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.

561
562
565
570
572
574
575
576

Appendix G. Reserved words . . . . . . . . . . . . . . . . . . . . . . . . . 579
Appendix H. XML data types . . . . . . . . . . . . . . . . . . . . . . . . . . 581
Notices . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 583
Glossary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 587
A
B
C
D
E
F
G
H
I.
J.
L
M
N
O
P
Q
R
S
T
U
W

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.
.

587
587
588
589
589
590
590
590
590
590
590
590
591
591
592
592
592
593
593
594
594

Index . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 595

Contents

ix

x

IBM Cognos Framework Manager Version 10.1.1: User Guide

Introduction
IBM® Cognos® Framework Manager is a metadata modeling tool. A model is a
business presentation of the information in one or more data sources. When you
add security and multilingual capabilities to this business presentation, one model
can serve the needs of many groups of users around the globe.
This document includes the procedures, examples, notes, tips, and other
background information to help you prepare a model for reporting and deploying
a package.

Audience
This document is intended to help data modelers use IBM Cognos Framework
Manager. Before using Framework Manager, you should understand data modeling
and how to write queries.

Finding information
To find IBM Cognos product documentation on the web, including all translated
documentation, access one of the IBM Cognos Information Centers. Release Notes
are published directly to Information Centers, and include links to the latest
technotes and APARs.
You can also read PDF versions of the product release notes and installation guides
directly from IBM Cognos product disks.

Forward-looking statements
This documentation describes the current functionality of the product. References
to items that are not currently available may be included. No implication of any
future availability should be inferred. Any such references are not a commitment,
promise, or legal obligation to deliver any material, code, or functionality. The
development, release, and timing of features or functionality remain at the sole
discretion of IBM.

Samples disclaimer
The Great Outdoors Company, GO Sales, any variation of the Great Outdoors
name, and Planning Sample depict fictitious business operations with sample data
used to develop sample applications for IBM and IBM customers. These fictitious
records include sample data for sales transactions, product distribution, finance,
and human resources. Any resemblance to actual names, addresses, contact
numbers, or transaction values is coincidental. Other sample files may contain
fictional data manually or machine generated, factual data compiled from
academic or public sources, or data used with permission of the copyright holder,
for use as sample data to develop sample applications. Product names referenced
may be the trademarks of their respective owners. Unauthorized duplication is
prohibited.

© Copyright IBM Corp. 2005, 2011

xi

Accessibility Features
Accessibility features help users who have a physical disability, such as restricted
mobility or limited vision, to use information technology products. IBM Cognos
Framework Manager has accessibility features. For information on these features,
see the accessibility section in this document.

xii

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 1. What's new?
This section contains a list of new, changed, deprecated and removed features for
this release of IBM Cognos Framework Manager. It also includes a cumulative list
of similar information for previous releases. It will help you plan your upgrade
and application deployment strategies and the training requirements for your
users.
For information about upgrading, see the IBM Cognos Installation and Configuration
Guide and Chapter 11, “Upgrading models,” on page 351.
For information about new features for this release, see the IBM Cognos New
Features Guide.
To review an up-to-date list of environments supported by IBM Cognos products,
such as operating systems, patches, browsers, Web servers, directory servers,
database servers, and application servers, visit http://www.ibm.com/.

New features in 10.1.1
Listed below are new features since the last release.

Validating model objects
In this release, you have increased flexibility regarding validation of model objects.
A new Validate button has been added for items such as query items,
relationships, and dimensions. This can assist your modeling effort as you can
validate in place when you create or modify an individual definition. The Validate
button and the Validate Object command on the Tools menu perform the same
function.
In the previous release, the Validate Automatically option of the Tools menu was
set for automatic validation. In this release, the default setting is no automatic
validation.
If Validate Automatically option is enabled, the OK button rechecks validation
and saves the object in one action.

New vendor-specific functions
Functions that are specific to Aster Data now display in the expression editor in
the Vendor Specific Functions folder.

Changed features in 10.1.1
Listed below are changes to features since the last release. Links to directly-related
topics are included.

© Copyright IBM Corp. 2005, 2011

1

Specifying query mode for a project
When you create a new project in IBM Cognos Framework Manager, you can now
specify which Query Mode the project will use. On the New Project dialog, there
is a check box that allows you to specify dynamic query mode. By default, a new
project uses compatible query mode.
You can also change from one mode to another within the project. On the
Properties pane for the project, you can modify the Query Mode property.
For more information, see the IBM Cognos Dynamic Query Guide.

Controlling dynamic query mode using governors
IBM Cognos Framework Manager provides a new set of governors to control
certain dynamic query mode functionality.
For more information, see the IBM Cognos Dynamic Query Guide.

Importing relational metadata to Framework Manager
The Import relational metadata capability in IBM Cognos Administration specifies
that a group has the ability to import relational metadata into an IBM Cognos
Framework Manager project using dynamic query mode.
By default, the System Administrator, Directory Administrator and Report
Administrators groups belong to the Import relational metadata capability.
To perform relational imports to a dynamic query mode project, other groups must
to be manually added to the capability. For example, if you create an IBM Cognos
Framework Manager Users group and add your IBM Cognos Framework Manager
users to that group, you also need to add the group to the Import relational
metadata capability. The users must have traverse and execute permissions.

Renaming of menu items
Two menu items have been renamed; their functionality remains the same. The
Auto Evaluate command on the Project menu is now called Validate
Automatically. The Evaluate Object on the Tools menu is now called Validate
Object.

Deprecated features in 10.1.1
A deprecated feature is one that is being replaced by a newer version or a better
implementation. The intent is to discontinue the use of the feature and provide
information about adapting to this change over multiple releases.
Listed below are deprecated features:

Removed features in 10.1.0
The functionality listed below has been removed from version 10.1.1

2

IBM Cognos Framework Manager Version 10.1.1: User Guide

New features in 10.1.0
Listed below are new features since the last release. Links to directly-related topics
are included.

Model Design Accelerator
The Model Design Accelerator is a graphical utility designed to guide both novice
and experienced modelers through a simplified modeling process. Novice modelers
will have the capability of easily building powerful models without extensive
experience and training. Experienced modelers can accelerate the modeling process
so that the overall time to build a model is reduced. For more information, see
Chapter 3, “Model Design Accelerator,” on page 31

Durable models
When you create an IBM Cognos Framework Manager model using the durable
model capability, you can rename the query items in your model without breaking
references to the changed names in existing reports. For more information, see
“Durable models” on page 174.

Dynamic query mode
In IBM Cognos Framework Manager, you can specify that a package based on a
supported data source can use the new dynamic query mode, which is an
enhanced Java-based query execution mode. This mode offers improved query
performance and functionality, security-aware caching, and native data interfaces
to leverage 64-bit technology. For more information about supported data sources,
see the Dynamic Query Guide.
Use dynamic query mode by setting the Use Dynamic Query Mode switch on the
Options page of the Publish Wizard. For more information, see “Publishing
packages” on page 247.

More Information about Dynamic Query Mode
For more information about dynamic query mode, see the documents listed in the
following table.
What are you looking for?

Where to find the information

An overview of the dynamic query mode, its IBM Cognos Business Intelligence Dynamic
benefits, and considerations when using it.
Query Guide
Detailed information about techniques and
product behaviors of the dynamic query
mode.

IBM Cognos 10 Dynamic Query Cookbook in
the Proven Practices section of the IBM
Cognos Customer Center
(http://www.ibm.com/software/data/
cognos/customercenter/).

Information about enabling connectivity for
data sources supported by the dynamic
query mode.

Installation and Configuration Guide

Information about query service
administration, including caching and query
service properties.

Administration and Security Guide

Chapter 1. What's new?

3

What are you looking for?

Where to find the information

Information about publishing packages for
the dynamic query mode.

Framework Manager User Guide

Information about testing reports in the
dynamic query mode prior to upgrade.

Lifecycle Manager User Guide

Information about using the IBM Cognos
Software Development Kit to administer
query service properties and develop client
applications to use dynamic query mode.

IBM Cognos Software Development Kit
Developer Guide

Creating packages for SAP BW data sources
You can create packages for SAP BW cubes and queries directly in IBM Cognos
Connection. This does not change the Framework Manager functionality for
creating and publishing SAP BW packages. Regardless of where the packages are
created, they are identical and can be used in the same way by the IBM Cognos
studios.
For more information, see the section about packages in the Administration and
Security Guide.

Using SAP BW time-dependent hierarchies
Time-dependant hierarchies now automatically reflect hierarchy or structure
changes. When a structure is imported into Framework Manager, each SAP BW
time hierarchy is depicted as an individual level. Report Studio users can use these
structures to report on and compare levels that are valid for a specific time period.

Function description improvements
The functions that you can use to create calculations now include improved
descriptions and more examples. The descriptions and examples display in the
Framework Manager user interface and in this user guide.

New vendor-specific functions
Functions that are specific to Postgres, Vertica, Netezza®, Paraccel, MySQL, and
Greenplum now display in the expression editor in the Vendor Specific Functions
folder.

Changed features in 10.1.0
Listed below are changes to features since the last release. Links to directly-related
topics are included.

Deprecated features in 10.1.0
A deprecated feature is one that is being replaced by a newer version or a better
implementation. The intent is to discontinue the use of the feature and provide
information about adapting to this change over multiple releases.
Listed below are deprecated features:

4

IBM Cognos Framework Manager Version 10.1.1: User Guide

Removed features in 10.1.0
The functionality listed below has been removed from version 10.1.

Repository control
Native support for CVS and Microsoft Visual SourceSafe repositories was removed
from this release. If you use this feature, and still require project versioning
functionality, read the section “External repository control” on page 264. This
section explains how to maintain project versioning outside the modeling
application, and is applicable for use with all version control systems.

Conformed dimensions on SAP BW data sources
Support for conformed dimensions generated by IBM Cognos Framework Manager
for SAP BW data sources has been removed from this release.

New features in 8.4
Listed below are new features since the last release. Links to directly-related topics
are included.
v Options for configuring global test options are now available “Changing options
for projects” on page 20.
v You can configure IBM Cognos Framework Manager to automatically save
projects at defined time intervals “Changing options for projects” on page 20.
v You can reorder root namespace objects listed in the Project Viewer. Objects can
be reordered in ascending or descending order, based on their names
“Reordering objects” on page 21. You can choose to include children or all
descendants when reordering objects.
v The project folder includes new files “Projects” on page 13. These files include
archive-log.xml, customdata.xml, session-log.xml, and session-log-backup.xml.
The project folder no longer includes the persistence.txt file.
v You can do screen captures in the content explorer as well as in the Diagram.
v Over time, log files for a project can become large. For improved performance,
you can now archive entries in log files “Archiving log file entries” on page 280.
v You can print diagrams in the Context Explorer, preview before printing, and
change page layout options using Page Setup.
v You can set suppression options for published packages “Setting suppression
options” on page 244.
v For dimensionally modeled relational metadata, you can specify sort
characteristics on a dimension. You can now also specify sorting on individual
levels within the dimension “Sorting members of a level” on page 109.
v New governors have been added to allow further control of system resources
and performance “Governors” on page 283.
v A new property, Allocation Rule, allows you specify the type of allocation
defined for the measure “Query items” on page 125.

Changed features in 8.4
Listed below are changes to features since the last release. Links to directly-related
topics are included.
v You can upgrade segmented projects via the main project. The child segments
are automatically upgraded.
Chapter 1. What's new?

5

v Query reuse is the default setting in IBM Cognos Framework Manager models
and IBM Cognos Report Studio reports. To disable query reuse, change the
Allow Usage of Local Cache governor.
v You can use Visual Source Safe 2005 as a repository to manage your projects in
Framework Manager.
v Prompt types set on attributes are now processed. The report user will see the
prompt that matches the prompt type on the attribute. Because prompt types on
attributes were not processed in the previous release, some differences may
occur.
v Many commands are available from shortcut menus. For example, to quickly
rename a project, right-click the project name in the Project Viewer and click
Rename. Many commands on shortcut menus have been reorganized to make
them easier to find and use. Some examples include:
– In the Diagram tab of the Project Viewer, you can cut, copy, paste, and delete
a selected model object. In the previous release, the commands for these
actions were listed on the first level of the right-click menu. In this release,
these commands are grouped using an Edit command. For example, to copy a
model object, right-click the object and click Edit, Copy.
– In the Explorer tab of the Project Viewer, you can view details about a
selected object. In the previous release, the Diagram Settings command was
listed on the first level of the right-click menu. In this release, this command
displays under a Navigate Diagram command, along with related commands
for working with diagrams.

Composite Information Server is replaced by IBM Cognos 8
Virtual View Manager
Composite Information Server was available with earlier releases of IBM Cognos 8.
In the current release, Composite Information Server is replaced by IBM Cognos 8
Virtual View Manager, which is an IBM proprietary product that is based on a new
version of Composite Information Server. In this release, the default repository is
changed, from Microsoft SQL Server to IBM Informix®. If you have Composite data
sources defined in IBM Cognos Connection, you must migrate the existing
repository to the new default repository. For more information about migrating the
repository, see the Virtual View Manager User Guide. For more information about
data source connections, see the Administration and Security Guide.

Deprecated features in version 8.4
A deprecated feature is one that is being replaced by a newer version or a better
implementation. The intent is to discontinue the use of the feature and provide
information about adapting to this change over multiple releases.
Listed below are deprecated features:

Conformed dimensions on SAP BW data sources
Conformed dimensions on SAP BW data sources generated by IBM Cognos
Framework Manager will continue to be supported in this release, but will not be
enhanced. Support for conformed dimensions on SAP BW data sources generated
by Framework Manager will be deprecated in the next major release of IBM
Cognos 8.

6

IBM Cognos Framework Manager Version 10.1.1: User Guide

New features in version 8.3
Listed below are new features since the last release. Links to directly-related topics
are included.
v You can analyze the metadata in a model by using the Model Advisor, an
automated tool that applies current modeling guidelines and identifies
inconsistencies and areas in your model that you need to examine. For more
information, see “Analyzing models” on page 176.
v You can specify the behavior of shortcuts by using the Shortcut Processing
governor and the Treat As property. For more information, see “Governors” on
page 283 and “Shortcuts” on page 169.
v You can minimize the effect of model changes and data source changes by using
the Remap To New Source command. This command remaps higher-level
model objects so that they continue to run and return correct data. You can
remap query items, measures, calculations, and filters. You can remap individual
objects manually or you can remap multiple objects at the same time. For more
information, see “Remapping objects to new sources” on page 269.
v You can understand the full impact of potential changes in the model by using
the Show Object Dependencies command to find the objects that depend on an
object. For more information, see “Showing object dependencies” on page 269.
v You can branch and distribute a model for development and later collect and
merge the changes made by multiple modelers by using the Branch to and
Merge from commands. For more information, see “Branching and merging
projects” on page 255.
v You can import SAP BW queries that contain dual structures and use the
structures in IBM Cognos 8 queries to control the amount and order of
information that your users see by using the SAP BW Dual Structures Support
check box. For more information, see “SAP BW structures” on page 185.

Changed features in version 8.3
Listed below are changes to features since the last release. Links to directly-related
topics are included.
v You can now publish packages from IBM Cognos Framework Manager into any
folder in IBM Cognos Connection.
v With the appropriate capabilities and permissions, your users can now add
PowerCubes directly from IBM Cognos Connection without having to access
Framework Manager.
v Before publishing a package and running reports, you can now see more
information about how the changes you make to a model will affect the package
and the reports that use it by using the Analyze Publish Impact command. For
more information, see “Analyzing the impact of changes to packages” on page
267.
v The Verify Model dialog box is improved. You can now select the level of
verification that you want to perform. You can sort and group the reported items
by type and by severity of the message. For more information, see “Verifying
models or packages” on page 233.
v Diagrams in the Diagram tab are improved for performance, stability, and
usability. You can now control the settings for diagrams and the Context
Explorer. For more information, see “The Diagram tab” on page 22 and
“Changing the settings for diagrams” on page 23.
v Search and replace is improved so that you can do bulk searching and replacing.
Use the Search tab to quickly find objects by applying different search criteria,
Chapter 1. What's new?

7

such as the location, class, condition, or property. Text properties such as Name,
Description, and Screen Tip, are writable so you can easily replace multiple
values. For more information, see “Using the Search tab” on page 26 and
“Replacing multiple property values” on page 24.

Deprecated features in version 8.3
A deprecated feature is one that is being replaced by a newer version or a better
implementation. The intent is to discontinue the use of the feature and provide
information about adapting to this change over multiple releases.
Listed below are deprecated features.

Framework Manager security filters for SAP BW: notice of
intent to change the default setting
As of IBM Cognos 8.3, there will be a new default setting for security filters for
SAP BW metadata in Framework Manager.
In all shipped versions of IBM Cognos ReportNet® and IBM Cognos 8 including
IBM Cognos 8.2, the following behavior has been enabled by default.
Multiple security filters defined within IBM Cognos Framework Manager on
metadata imported from SAP BW sources are combined using 'AND' logic,
effectively an intersection of a particular user's permissions. This behavior is
contradictory to corresponding behavior on relational data sources where similar
filters are combined using 'IN' and 'OR' (union) logic to facilitate cases where users
belong to one or more group and require a union of their permissions. The current
default behavior for SAP BW data sources has been determined to be a product
defect and will be changed in the IBM Cognos 8.3 release to align with the
behavior of relational data sources. In the IBM Cognos 8.1 Mr2 and IBM
Cognos 8.2 releases, it will be possible to get the union of filters behavior by
modifying the following switches in the qfs_config.xml configuration file. Under
, add the following new
 element:


Effect
When multiple security filters are defined in the Data Security setting in
Framework Manager for a query subject, if a user belongs to more than one user
group associated with these filters, the effect of this switch is to perform a union of
these filters instead of an intersection. For example, if a user Joe belongs to a
corporate group allowing him to see data for Asia, Europe, and America, and also
belongs to a regional group allowing him only to see data for Europe, the effect of
the switch will be to let Joe see data for Asia, Europe, and America (as compared
to just Europe) when logging on to IBM Cognos 8 and authoring or running a
report. Note that security filters that are based on other security filters in the Data
Security settings for a query subject continue to be intersected, just as before,
independent of whether or not the new switch is activated.
As of IBM Cognos 8.3, this behavior will become the new default for SAP BW
metadata in Framework Manager. There will be no change to the behavior of
security filters applied on relational sources. The switch will continue to be
available and can be set to false by your administrator if required to maintain
existing application behavior.

8

IBM Cognos Framework Manager Version 10.1.1: User Guide

IQD externalize method
IQDs generated by Framework Manager will continue to be supported in this
release, but will not be enhanced. Support for IQDs generated by Framework
Manager will be deprecated in the next major release of IBM Cognos 8.
Transformer will continue to support IQDs generated by Impromptu® in the next
major release.

Removed features in version 8.3
The functionality listed below has been removed from version 8.3.
v The Embedded externalize method has been removed from the current release.
There is no impact on product functionality.

Chapter 1. What's new?

9

10

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 2. Getting started with Framework Manager
IBM Cognos Framework Manager is a metadata modeling tool that drives query
generation for IBM Cognos software. A model is a collection of metadata that
includes physical information and business information for one or more data
sources. IBM Cognos software enables performance management on normalized
and denormalized relational data sources and a variety of OLAP data sources.
When you add security and multilingual capabilities, one model can serve the
reporting, ad hoc querying, and analysis needs of many groups of users around
the globe.
Before doing anything in IBM Cognos Framework Manager, you should
thoroughly understand the reporting problem that you want to solve.
To get started, do the following:

Procedure
1. Analyze the reporting problem.
2. Learn about the objects you will use.
3. Create or open a project.
4. Explore the panes in Framework Manager.
5. Explore the sample models included with Framework Manager.

Analyzing the problem
Before you start, you must understand the reporting problem that you are trying to
solve and what data is available to solve it.
If you cannot address the following questions, talk to your users about their
reporting requirements:

Procedure
1. Do you and your users agree on the reporting requirements?
Issues to resolve can include multilingualism, performance, security, and how
to organize and combine query items and filters.
2. Does the data source contain the data and metadata that you need?
Without metadata such as primary keys, indexes, and foreign keys, your
reports may take too long to run, or may produce incorrect results. If the data
source does not contain the data and metadata that you need, will it be
changed, or will you work around it?
3. Does the same data exist in more than one source?
If so, choose the data source that most closely fits your reporting requirements.
If a data warehouse is available, it is typically a better choice than an
operational database. A data warehouse based on a star schema is ideal. If this
does not exist, and you expect that your reporting application will be heavily
used, consider arranging for one to be created.
4. Which data source tables are the fact tables, which are the dimensions, and
which are both fact table and dimension?
5. What are the keys and attributes of each dimension?
© Copyright IBM Corp. 2005, 2011

11

6. Which relationships are required?
7. Are there multiple relationship paths between tables?
If so, what does each path represent? You must define the preferred path for
each.

Results
Then you should review the names of data sources, tables, and columns in your
data source to ensure that you are not using names reserved by IBM Cognos. If
you must use a reserved word, enclose the word in quotes in the SQL specification.
For example, select Orderdate, "Timezone". For more information, see
Appendix G, “Reserved words,” on page 579.

Building IBM Cognos Business Intelligence Applications
You use the IBM Cognos Business Intelligence components to build reporting and
analysis applications.
The lifetime of an IBM Cognos Business Intelligence application can be months, or
even years. During that time, data may change and new requirements appear. As
the underlying data changes, authors must modify existing content and develop
new content. Administrators must also update models and data sources over time.
For more information about using data sources, see the IBM Cognos Business
Intelligence Administration and Security Guide and the IBM Cognos Framework
Manager User Guide.

Before you begin
In a working application, the technical and security infrastructure and the portal
are in place, as well as processes for change management, data control, and so on.
For information about the workflow associated with creating IBM Cognos BI
content, see the IBM Cognos Business Intelligence Architecture and Deployment Guide.
For additional information, see the IBM Cognos Solutions Implementation
Methodology toolkit, which includes implementation roadmaps and supporting
documents. Information about the toolkit is available on http://www.ibm.com.
The following graphic provides an overview for how to use IBM Cognos BI to
build applications across all of your IBM Cognos BI components.

Procedure
1. Locate and prepare data sources and models
IBM Cognos BI can report from a wide variety of data sources, both relational
and dimensional. Database connections are created in the Web administration
interface, and are used for modeling, for authoring, and for running the
application.

12

IBM Cognos Framework Manager Version 10.1.1: User Guide

To use data for authoring and viewing, the business intelligence studios need a
subset of a model of the metadata (called a package). The metadata may need
extensive modeling in Framework Manager.
2. Build and publish the content
Reports, scorecards, analysis, workspaces and more are created in the business
intelligence studios of IBM Cognos BI. Which studio you use depends on the
content, life span, and audience of the report, and whether the data is modeled
dimensionally or relationally. For example, self-service reporting and analysis
are done through IBM Cognos Business Insight Advanced, IBM Cognos Query
Studio, and IBM Cognos Analysis Studio, and scheduled reports are created in
IBM Cognos Report Studio. Report Studio reports and scorecards are usually
prepared for a wider audience, published to IBM Cognos Connection or
another portal, and scheduled there for bursting, distribution, and so on. You
can also use Report Studio to prepare templates for self-service reporting.
3. Deliver and view the information
You deliver content from the IBM Cognos portal or other supported portals,
and view information that has been saved to portals, or delivered by other
mechanisms. You can also run reports, analyses, scorecards, and more from
within the business intelligence studio in which they were created.
For information about tuning and performance, see the IBM Cognos Business
Intelligence Administration and Security Guide and http://www.ibm.com.

Objects you will use
When you work in IBM Cognos Framework Manager, you work with a number of
objects that are contained in a project.

Projects
A project contains a model, namespaces, packages, data sources, and related
information for maintaining and sharing model information. A single project can
span many data sources or tables.
An IBM Cognos Framework Manager project displays as a folder that contains a
project file (.cpf) and the specific .xml files that define the project. The files in a
project folder are unique to each project. The project and its associated files are
contained in a project folder.
In general, do not add secondary files to the project folder because they may be
affected by actions such as move, rename, and delete commands on the Manage
Projects menu. If you decide to add secondary files to the project folders, the files
are added with absolute paths. If they are moved from the original location, they
must be retargeted.
These are the contents of a project folder.
File name

Description

.cpf

The Framework Manager project file, which references the
.xsd and .xml files that define a project.

archive-log.xml

This file contains the portion of the main log file that was
archived.

Chapter 2. Getting started with Framework Manager

13

File name

Description

customdata.xml

This file contains the layout information for the diagram.
If this file is deleted, layout information is lost. An
automatic layout will be applied.

IDLog.xml

This file tracks objects for models that use branching and
merging.

log.xml

A list of all modifications made to the model.

mda_metadata.xml

A Model Design Accelerator file, which contains the
metadata imported from data sources.

mda_engine_project.xml

A Model Design Accelerator file, which contains the
definition of the star schema.

model.xml

The actual model data created by Framework Manager
users.

preferences.xml

The preferences for Framework Manager projects.

session-log.xml

A list of unsaved transactions in the model. When the
project is saved, this list is deleted. View contents of this
file using View Transaction History.
When Framework Manager is started, the existing
session-log.xml file is renamed to session-log-backup.xml.

session-log-backup.xml

The session-log.xml from the previous session. Using this
file, a modeler can run a script to restore the unsaved
model transactions in the event of an unexpected
interruption in the current session.
This file is deleted each time Framework Manager is
started. Ensure you make a copy of this file before exiting
the current Framework Manager session if you want to
keep a copy.

repository.xml

The logged version history for each project or segment that
was added to a repository; this file exists only if you added
projects to a repository.

upgradeReport.htm

The content of the upgrade summary message that is
displayed after upgrade.

Models
A model is the set of related dimensions, query subjects, and other objects required
for one or more related reporting applications.
The Framework Manager model is a metadata layer that adds value to a data
source in several ways. Most importantly, it provides a business view of the
information in the source data to simplify building reports, analyses, and queries.
The business view can

14

IBM Cognos Framework Manager Version 10.1.1: User Guide

v Organize items in folders that represent business areas for reporting
v Format items using numeric, currency, date, time, and other formats
v Present multilingual folder and item names, descriptions, tips, and data so that
users can operate in their language of choice
v Automate the generation of SQL queries sent to the relational data source
v Specify default prompting
This can include having IBM Cognos software prompt the user using a
descriptive name while actually filtering on a code or key value for improved
query performance.
In particular, you can modify the Framework Manager model to ensure that
queries sent to the data source are efficient, well formed, and secure. You can
specify the rules governing query generation, restrict user access to specific rows or
columns of data, and model data relationships to hide the complexity of data from
your users.

Namespaces
A namespace uniquely identifies query items, dimensions, query subjects, and
other objects. You import different databases into separate namespaces to avoid
duplicate names.

Packages
A package is a subset of the dimensions, query subjects, and other objects defined
in the project. A package is what is actually published to the IBM Cognos BI
server, and it is used to create reports, analyses, and ad hoc queries.

Dimensions
A dimension is a broad grouping of data about a major aspect of a business, such
as products, dates, or markets.
The types of dimensions that you can work with in IBM Cognos Framework
Manager are regular dimensions and measure dimensions. In SAP BW, measure
dimensions are called key figures.

Query subjects
A query subject is a set of query items that have an inherent relationship.
In most cases, query subjects behave like tables. Query subjects produce the same
set of rows regardless of which columns were queried.
There are different types of query subjects:
v Data source
Data source query subjects directly reference data in a single data source. IBM
Cognos Framework Manager automatically creates a relational data source query
subject for each table and view that you import into your model.
v Model
Model query subjects are not generated directly from a data source but are
based on query items in other query subjects or dimensions, including other
model query subjects. By using model query subjects, you can create a more
abstract, business-oriented view of a data source.
Chapter 2. Getting started with Framework Manager

15

v Stored procedure
Stored procedure query subjects are generated when you import a procedure
from a relational data source. IBM Cognos Framework Manager supports only
user-defined stored procedures. System stored procedures are not supported.

Query Items
A query item is the smallest piece of the model that can be placed in a report. It
represents a single characteristic of something, such as the date that a product was
introduced.
Query items are contained in query subjects or dimensions. For example, a query
subject that references an entire table contains query items that represent each
column in the table.
For your users, query items are the most important objects for creating reports.
They use query item properties of query items to build their reports.

Creating projects
In IBM Cognos Framework Manager, you work in the context of a project. The
project contains objects that you organize for your users according to the business
model and business rules of your organization. You view these objects in the
project page.

Before you begin
Before you can import metadata, you must create a project.
For information about creating a project segment, see “Creating segments” on page
263.
For information about creating a project using the Model Design Accelerator, see
“Creating a project” on page 35.

Procedure
1. From the Welcome page, click Create a new project.
Tip: If you are in Framework Manager, click File, New.
2. In the New Project page, specify a name and location for the project, and click
OK.
To use dynamic query mode, check the Use Dynamic Query Mode checkbox.
By default, a new project uses compatible query mode. For more information,
see the IBM Cognos Dynamic Query Guide.
3. In the Select Language page, click the design language for the project.
You cannot change the language you select after you click OK, but you can add
other project languages. For more information, see “Adding a language to a
project” on page 122.
For more information about choosing the proper design language for durable
models, see “Durable models” on page 174.
Note: If an SAP BW server does not support the selected language, it uses the
content locale mapping in IBM Cognos Configuration. If a mapping is not
defined, Framework Manager uses the default language of the SAP BW server.
4. Click OK to select the design language.

16

IBM Cognos Framework Manager Version 10.1.1: User Guide

The Metadata Wizard displays.
5. Choose whether to import your metadata now or later:
v To import now, select the import source and click Next.
v To delay importing metadata, click Cancel.
6. If you chose to import the metadata now, follow the instructions in the
Metadata Wizard:
v Select a data source connection and click Next.
If the data source connection you want is not listed, you must first create it.
For more information, see “Creating data source connections” on page 44.
v Select the check boxes for the objects you want to import.
v Specify how the import should handle duplicate object names. Choose
whether to import and create a unique name. If you choose to create a
unique name, the imported object displays with a number. For example, you
see QuerySubject and QuerySubject1 in your project.
v If you want to import system objects, select the Show System Objects check
box, and then select the system objects that you want to import.
v Specify the criteria to use to create relationships and click Import.
For more information, see “Relationships” on page 68.
You see a list of objects that could not be imported and a count of objects that
were imported.
7. Click Finish.
Save the project file (.cpf) and all related files in one folder. When you save a
project with a different name or format, ensure that you save the project in a
separate folder.

Opening projects
You must open a project before you can import metadata or make changes to
existing metadata.
If the project was created using a model schema that is older than the currently
supported version, you may be prompted to upgrade the model.
If your model is checked into a repository, you cannot upgrade it. Manually check
the model out of the source control system and then open it in the new version of
IBM Cognos Framework Manager.
If you upgrade a segmented model, you must open and upgrade each segment
individually. After upgrading each segment, you can then upgrade the top level, or
master, project.

Procedure
1. From the Welcome page, click Open a project.
Tip: If you are in Framework Manager, click File, Open.
2. Browse to locate the project folder and click the .cpf file.
3. Click OK.

Chapter 2. Getting started with Framework Manager

17

The project page
After you create or open a project, the project page displays. The project page is
where you design, package, and publish project metadata. This page contains
several panes and views that you can use to view and modify the objects in a
project.

The Project Viewer
The Project Viewer shows the objects in a project in a hierarchical view. You can
use the Project Viewer to view, modify, and create objects.
Relationships are shown in both the Diagram and Explorer tabs. Imported
functions are shown in the Explorer tab.
The Project Viewer uses the following icons to represent objects and states. A
project may use some or all of the icons.
Icon

Object
Project

Root namespace or any other namespace in the project

Data source folder

Data source

Parameter map folder

Parameter map

Package

Packages folder

Published package

Calculation

Calculation whose Usage property is set to Attribute

Calculation whose Usage property is set to Identifier

Embedded calculation

18

IBM Cognos Framework Manager Version 10.1.1: User Guide

Icon

Object
Calculation whose Usage property set to Fact

Model dimension based on existing model objects

Dimension that is imported from a data source

Dimension that is not valid. This dimension is imported
from a data source.
Filter

Hierarchy

Level in a hierarchy

Measure

Semi-additive measure

Measure dimension based on existing model objects.

Measure dimension imported from a data source.

Invalid measure dimension. This dimension is imported
from a data source.
Query item

Query item whose Usage property is set to Identifier

Query item whose Usage property is set to Fact

Query item that is located under a shortcut query subject

Query subject based on existing model objects

Query subject imported from a data source

Invalid query subject. This query subject is imported from
a data source.

Chapter 2. Getting started with Framework Manager

19

Icon

Object
Query subject based on multidimensional data

Query subject that contains query items whose Usage
property is set to Fact. This query subject is based on
existing model objects.
Query subject that contains query items whose Usage
property is set to Fact. This query subject is imported from
a data source.
Query subject that contains query items whose Usage
property is set to Fact. This query subject is imported from
a data source and is not valid.
Relationship

Linked segment or project that was updated. This icon
displays over other icons.
Linked object. This icon displays over other icons.

Shortcut. This icon displays over other icons.

Invalid object. This icon displays over other icons.

Changing options for projects
You can change one or more options for testing projects and saving changes
automatically.
Test options apply globally to all tests run for this project. For information about
testing selected objects, see Chapter 5, “Modeling relational metadata,” on page 67
or Chapter 6, “SAP BW metadata,” on page 183.
Saving projects automatically may help prevent loss of data if an unexpected
interruption, such as a power outage, occurs. If you choose to save projects
automatically, you can choose the time interval between save operations.
If you choose to use the auto save feature, IBM Cognos Framework Manager
cannot save changes when a dialog box is open if that dialog box locks other areas
of Framework Manager. For example, when using the dialog boxes presented by
the Create Folder wizard, you cannot access commands from the menu bar. After
you close the dialog box, Framework Manager will save changes automatically
after the specified auto save interval has elapsed.

Procedure
1. Click Project, Options.
2. On the Test Options tab, choose the options that you want.

20

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Persistence

Limit the number of rows
retrieved

Select the Restrict the
maximum number of rows
to be returned check box
and type the required
number of rows.

This setting applies to all
dimensions, query subjects,
and query sets in the model.

This setting does not
improve performance for
retrieving data when testing
dimensions, query subjects,
and query sets.

This setting is saved and
used in your next session
with any project.

This setting is saved and
used in your next session
with this project.

Specify the level of detail

Drag the Level of
Information shown in
Query Information slider to
the location that represents
the amount of detail you
require.

Apply relevant design mode
filters

Select the Apply all relevant This setting is saved and
design mode filters when
used in your next session
with any project.
testing check box.
This applies all relevant
filters whose usage is set to
design mode in another
dimension, query subject, or
query set.

3. If you want projects saved automatically, on the Auto Save tab, select On and
type the number that represents the frequency, in minutes, that you want
projects saved automatically.
4. Click OK.

Reordering objects
By default, root namespace objects listed in the Project Viewer display in the order
they were added. You can change the order of objects based on their names.
Objects may be reordered in ascending or descending order.
When selecting objects to reorder, all selections must be at the same level in the
metadata tree. However, you can reorder only some of the objects on a level. The
location of the reordered objects relative to the objects that were not selected is
based on position of the first object in the reordered list. For example, when
reordering in ascending order, the object with the name that begins with the letter
closest to "A" remains in its current position in the Project Viewer, followed by the
other selected objects.
You can include the children when reordering selected objects. For example,
assume that two query subjects, Retailers West and Retailers East display on one
level. Each query subject has children, which display one level below their parents.
If you reorder Retailers West and Retailers East and choose to include their
children, the Project Viewer lists Retailers East and then Retailers West on one
level. The children of each query subject are grouped below their parent, and are
listed in ascending order.
Chapter 2. Getting started with Framework Manager

21

You can also choose to include the descendant of child objects. The time required
to reorder objects may increase depending on the type and number of selected
objects.
If selections include read-only objects or levels in hierarchies, IBM Cognos
Framework Manager displays a message indicating that these items cannot be
reordered.

Procedure
1. In the Project Viewer, select the root namespace objects you want to reorder.
Ensure that selected objects are at the same level.
You can also select objects in the Explorer tab, or Diagram tab.
2. Click Tools, Reorder.
3. Click whether to reorder objects by name in ascending order or descending
order.
4. Select whether to reorder the selected objects only, or to reorder the selected
objects and their children.
If you choose to reorder children of selected objects, you can also include all
descendants of the child objects.
5. Click OK.

The Explorer tab
The Explorer tab shows the contents of a project, similar to any file system.
Arrange objects by name, class, or description.
If you have a large number of objects in a project, it may be easier to locate them
in the Explorer tab.
You can use the Explorer tab to view, create, and modify objects and relationships.
You can also create folders and namespaces to group objects.

The Diagram tab
Use the Diagram tab to show the relationships between objects in a project.
Relationships between objects are shown as lines with cardinality notation. You can
expand objects and namespaces to show the object hierarchy and the relationships
between objects.
Tip: You can also control the model area that is visible in the diagram. Click and
hold the overview button in the bottom right corner and drag the pointer over the
diagram

.

In the Diagram tab, you can do any of the following:
View, create, and modify objects and relationships.
Create folders and namespaces to group objects.
Change the settings for the diagrams.
Change the layout of objects to either star layout or standard layout by clicking
Diagram, Auto Layout.
v Focus on an object by clicking Diagram, Set Focal Point.
v Find an object by right-clicking the object in the Project Viewer, and clicking
Locate in Diagram.

v
v
v
v

22

IBM Cognos Framework Manager Version 10.1.1: User Guide

v Zoom in or out by clicking Diagram, Zoom.
v Expand or collapse all objects from the Diagram menu.
v Save the diagram for printing by clicking Diagram, Screen capture, and
specifying the name of the picture.
v Launch the Context Explorer by right-clicking an object in the Diagram tab, and
clicking Launch Context Explorer.
v Print the diagram in the Context Explorer by right-clicking the Context Explorer
background, and click Print. A Print button is also available from the Context
Explorer toolbar. This right-click menu also includes commands for previewing
the diagram using Print Preview and changing page layout options using Page
Setup.

Changing the settings for diagrams
You can change one or more settings for diagrams. The Diagram Settings tab
defines the settings for the main diagram. The Context Explorer tab defines how
context diagrams are populated and displayed.

Procedure
1. Click Diagram, Diagram settings.
2. Set the level of detail.
You can select query items, relationships, scope relationships, cardinality, and
descriptions.
3. Select the type of notation.
You can use Merise or Crowsfeet notation. By default, IBM Cognos Framework
Manager uses Merise notation. Merise notation marks each end of the
relationship with the minimum and maximum cardinality of that end. You can
also use Crowsfeet notation, which provides a pictorial representation of the
relationship.
4. To align objects more easily, turn the Snap options on.
5. To have a network of evenly spaced lines in the background, select the Display
grid check box.
6. Select the font and color for text.
7. Select whether you want these settings to be the default for all new projects.
8. Click OK.

The Dimension Map tab
You can use the Dimension Map tab to view, create, and modify hierarchies and
levels for the dimension you selected in the Project Viewer. You can also view and
modify scope relationships.
The Measures and Attributes tabs display after you click the Dimension Map tab.
Use the Measures tab to view or modify all the measures and scope relationships
that are available in the model. Use the Attributes tab to view or modify the role
of the selected query item.
You can also embed calculations in the query item.
Tip: The best way to view SAP BW metadata is in the star layout. From the
Diagram menu, click Auto Layout Diagram, Star.

Chapter 2. Getting started with Framework Manager

23

The Properties pane
The Properties pane shows the properties of the objects that you last selected in
the Project Viewer, Explorer tab, Diagram tab, Dimension Map tab,
Dependencies tab, Search pane, or Summary pane. Object properties are set
during import, and some property values can be modified during modeling. You
can use the Properties pane to add, modify, or delete the properties of objects.
You can modify the properties for multiple objects at one time. If you select more
than one object, IBM Cognos Framework Manager shows only the properties that
are common to all the objects. You can
v Sort property values by double-clicking the property heading
An arrow displays to indicate the direction in which values are sorted. You can
toggle between ascending and descending order.
v Filter property values by clicking the arrow to the right of the property heading
You can either click a value, or click Custom to define the criteria for the rows
that you want to view.
v Apply a property value to multiple objects by clicking the arrow next to the
property and dragging the highlighted area over the properties to which you
want to apply that value
v Resize the width of the rows and columns by right-clicking the object name in
the property pane
If you need more room, you can resize the Properties pane or move it so that it
floats in the window. For example, if you have more than one monitor, you can
then move the Properties pane to another monitor.

Replacing multiple property values
You can replace multiple values for each text string property.
When you replace multiple property values, IBM Cognos Framework Manager
automatically updates elements that are dependent on the values you replaced. If
any dependencies cannot be updated, such as data source and parameter map
names, you must validate the model manually.
You can match either the entire property value, or part of the value. By matching
part of the property value, you can perform multiple replacements on a single text
property. For example, if you search for "nation" and replace it with "region", the
property value "This nation and that nation" is replaced with "This region and that
region". However, "national" will be replaced with "regional".
Tip: Before replacing property values, enlarge the Properties pane and widen the
column of the property whose value you want to replace.

Procedure
1. In the Project Viewer window, select multiple objects.
Tip: To reduce the set of properties to search for before performing the replace,
filter the properties first. On the Properties tab, right-click the column heading
you want to filter on and click Set Autofilter.
2. Choose one of the following:
v If your model contains multiple languages, click the Language tab.
v If your model contains only one language, click the Properties tab.

24

IBM Cognos Framework Manager Version 10.1.1: User Guide

3. Right-click the column heading for the property whose values you want to
replace, and click Bulk Replace.
4. In the Search for and Replace with boxes, type the search and replace text
strings.
Tip: To replace empty properties, leave the Search for box blank.
5. To perform a case-sensitive search, select the Match case check box.
6. To search for the complete property text, select the Match entire cell contents
check box.
Tip: To replace all property fields, regardless of the text they contain, type one
asterisk in the Search for box and select the Match entire cell contents check
box.
7. Do one or more of the following:
v Click Replace to replace the currently selected object and find the next
match.
v Click Next to select the next matching object.
v Click Replace All to replace all matching properties, starting from the first
matching property in the list.
v Click Close if you are finished replacing.
As the changes to a property are made, the results display on the tab.
When the bulk replace reaches the last object in the list, a message displays
showing the number of replacements.

The Tools pane
The Tools pane contains the Summary tab, the Search tab, and the Dependencies
tab.
You can change the Tools pane into a separate window. To do this, click the title
bar of the pane and drag it in any direction until the outline of pane becomes a
thick line. You can now drag the Tools window to any location on your desktop.
To change the window back to a pane inside the IBM Cognos Framework Manager
window, drag it to one of the Framework Manager borders until the window
outline becomes a thin line.

The Summary tab
The Summary tab shows the language, statistics, and tasks available for the
selected object in the Project Viewer.
The Project section shows the design language and the active language. You can
change the active language.
The Statistics section shows the number of objects, by class, located in the
currently selected object. If the selected object contains a folder, the contents of the
folder are included in the number count. Selected objects include projects,
namespaces, and folders. The default selected object is the project.
The Tasks section shows actions that are applicable to the currently selected object,
based on the object class. If you select a folder, actions for the folder are listed. If
you select an object in that folder, the list includes actions for both the object and
the folder.

Chapter 2. Getting started with Framework Manager

25

For more information about the object classes, see the c10_location\templates\bmt\
CR1Model\BMTModelSpecification.xsd file.

Using the Search tab
When you are working with a large project, it can be difficult to locate the objects
that you need to complete a task. Use the Search tab to quickly find objects by
applying different search criteria, such as the location, the class, a condition, or a
property.

Before you begin
If your model contains multiple languages, ensure that you specify the Active
language value in the Define Languages dialog box before searching for objects.

Procedure
1. Click Tools, Search.
Tips:
v If the Tools pane is not visible, click View, Tools. You can drag the Tools
pane to the bottom of the Framework Manager window and resize it to
have a better view of the search results.
v To reduce the set of search properties, filter the properties first. On the
Properties tab, right-click the column header you want to filter on, and
click Set Autofilter.
2. In the Search String box, type the text that you want to find.
You can use uppercase, lowercase, or mixed case strings. The search is not
case sensitive. Valid wildcard characters are "*" and "?".
to show the search criteria boxes.
3. Click the double down arrow button
4. In the Condition list, select a condition to apply to the search string.
The Condition box determines how the Search string value is matched with
text in the model. It contains a list of possible search conditions. If you want
to search using wildcard characters, use the equals condition.
A regular expression is a complex and powerful method for matching text
strings. To search using a regular expression, use the regular expression
condition. A regular expression search is case sensitive. For example, to find
all objects that contain the word "Car" search for the string "\Car", without the
quotation marks.
The value for the Condition box is saved from session to session.
5. In the Search in list, select the part of the model hierarchy that you want to
search.
The value for the Search in box is saved from session to session.
6. In the Class list, select the single class of objects that you want to search.
7. In the Property list, select the type of property that you want to search.
The (All Properties) property searches all properties. The Object Name
property restricts the search to the name of each object. The Text Properties
property searches the set of properties that contain text strings, such as
Description or Screen Tip, but not including the object name.
The value for the Property box is saved from session to session.
8. Click Search.
The results are listed at the bottom of the Search tab. Search results can
contain multiple values, such as text properties, for a single object. When you

26

IBM Cognos Framework Manager Version 10.1.1: User Guide

click an object that has multiple values, all the values that belong to that
object are selected. If your model contains multiple languages, the search
results include properties for each language in the model.
After you do one search, the Subset check box becomes available. If you select
the Subset check box, the next search operates on the existing search results.
The Subset check box is cleared after each search. You can do successive
subset searches by selecting the Subset check box.
9. To see an object in the Project Viewer, click an object in the Search tab.
10. To see an object in the diagram, right-click an object in the Search tab and
click Locate in Diagram.

Results
The Bulk Replace button on the Search tab allows you to do a search and replace
operation on the set of objects in the search results. When you click the Bulk
Replace button, the result set displays in the Properties tab and the Bulk Replace
dialog displays. From there, you can select the property to apply the search and
replace operation.
You can also initiate a bulk replace from the Properties pane. For more
information, see “Replacing multiple property values” on page 24.

The Dependencies tab
The Dependencies tab shows the objects that are dependent on a selected object.

Naming conventions for objects in a project
All objects in a project must have a unique identifier. The reference can consist of
one or more parts, depending upon the type of object. The parts include an object
name and a location in the project hierarchy, as expressed in the default language
of the project.
Note: If you want two dimensions or query subjects to have the same name in a
project, they must be in different namespaces.

One-part identifiers
Some objects in a project have a one-part identifier. The one-part identifier must be
unique across the entire project, even if the namespace contains other namespaces.
These objects have a one-part identifier:
v
v
v
v

Namespaces
Functions
Shortcuts to namespaces
Shortcuts to folders

Two-part identifiers
Some objects in a project have a two-part identifier consisting of the name of the
containing namespace and the name of the object. The object name must be unique
in the containing namespace. These objects have a two-part identifier:
v Regular dimensions
v Measure dimensions
v Query subjects
Chapter 2. Getting started with Framework Manager

27

v Shortcuts to query subjects
For example, a go_sales namespace contains a query subject named Product. The
Product query subject has the following name, where the square brackets and
periods are the syntax that Framework Manager uses for object identifiers:
[go_sales].[Product]

Three-part identifiers
Some objects in a project have a three-part identifier based on the identifier of the
containing query subject. Each name must be unique in the containing query
subject. These objects have a three-part identifier:
v Hierarchies
v Measures
v Query items
For example, a go_sales namespace contains a query subject named Product, and a
query item named Product Code. The Product Code query item has the following
name, where the square brackets and periods are the syntax IBM Cognos
Framework Manager uses for object identifiers:
[go_sales].[Product].[Product Code]

Four-part identifiers
Levels in a project have a four-part identifier consisting of the namespace name,
the dimension name, the hierarchy name, and the level name.
For example, a go_data_warehouse namespace contains a dimension named
Account. A hierarchy in Account is Balance sheet, which contains a level named
Account. The Account level has the following name, where the square brackets and
periods are the syntax Framework Manager uses for object identifiers:
[go_data_warehouse].[Account dimension].[Balance sheet].[Account]

Five-part identifiers
Some objects in a project have a five-part identifier consisting of the namespace
name, the dimension name, the hierarchy name, the level name, and the query
item name. Five-part identifiers are also used for captions and business keys in
member unique names. For more information, see “Member Unique Names” on
page 108.
For example, a go_data_warehouse namespace contains a dimension named
Account. A hierarchy in Account is Balance sheet, which contains a level named
Account. The Account level contains a query item named Account name. The
Account name query item has the following name, where the square brackets and
periods are the syntax Framework Manager uses for object identifiers:
[go_data_warehouse].[Account dimension].[Balance sheet].[Account].[Account
name]

Sample models
Several sample models are included with IBM Cognos Framework Manager for
you to explore. The sample models have been created using the guidelines for
modeling metadata.

28

IBM Cognos Framework Manager Version 10.1.1: User Guide

In each sample model, the query items have default formatting defined. Names
and descriptions were translated into many different languages. By using the
Language_lookup parameter map, each user automatically sees folder and item
names and descriptions in their preferred language.
For more information about sample reports and packages, see the Report Studio
User Guide.

The Great Outdoors Warehouse model
This model contains financial information and human resources information for the
fictional company, The Great Outdoors. The model accesses a dimensional
relational data source.
This sample model is located in c10_location\webcontent\samples\models\
great_outdoors_warehouse.
The sample model contains these views:
v Database view
Contains the objects that were imported from the data source. These objects are
grouped into namespaces for each business area and one named GO for the
tables that are common to all business areas.
In addition, model query subjects, shortcuts, and filters are organized into
namespaces. The namespaces display as folders to your users. This organization
of information into relevant business categories helps users to locate the
information that they require.
All joins and determinants are defined in this view.
A few model query subjects were added for those that required determinants
and for lookup tables.
v Business view
Contains model query subjects that represent data in terms of business or
application needs.
Calculations, including ones for language, are defined in this view.
This view improves model portability and prevents the metadata queries that
occur when calculations are made directly into the data source query subjects.
v Dimensional view
Contains regular dimensions, measure dimensions, and scope relationships that
were created in Framework Manager.
v Analysis view
Contains the part of the model that is visible in the studios for the analysis
(dimensional) package.
Shortcuts to the regular and measure dimensions in the Dimensional view are
grouped in star schemas and placed in the root of the model in folders, one for
each business area. They are clearly marked with "(analysis)" at the end of the
name. They are not in a separate namespace because that would add another
level in the metadata tree in the studios.
v Query view
Contains the part of the model that is visible in the studios for the query and
reporting package.
Shortcuts to the model query subjects in the Dimensional view are grouped in
star schemas and are placed in folders, one for each business area. They are
clearly marked with "(query)" at the end of the name in the root of the model.
Chapter 2. Getting started with Framework Manager

29

In addition, there are packages in the sample model: one for analysis and one for
query and reporting. You cannot use the query and reporting package in IBM
Cognos Analysis Studio.

The Great Outdoors Sales model
This model contains sales analysis information for the fictional company, The Great
Outdoors. The model accesses a transactional system.
This sample model is located in c10_location\webcontent\samples\models\
great_outdoors_sales.
The sample model contains these views:
v Database view
Contains the query subjects that were imported from the data source. Because
this is a transactional data source, most of the fact tables do not have keys. In
some cases, we used multiple-part keys and in other cases, model query subjects
were added to calculate the keys and to resolve ambiguous cardinality.
All joins and determinants are defined in this view.
v Business view
Contains model query subjects and reference shortcuts that represent the data in
terms of business or application needs. Calculations, including ones for
language, are defined in this view.
v Dimensional view
Contains regular dimensions, measure dimensions, and scope relationships. The
dimensions are based on the model query subjects in the Business view.
This is also where the query subjects are renamed, if needed.
v Analysis view
Contains the part of the model that is visible in the studios for the analysis
(dimensional) package.
Shortcuts to the regular and measure dimensions in the Dimensional view are
grouped in star schemas and placed in the root of the model in folders, one for
each business area. They are clearly marked with "(analysis)" at the end of the
name. They are not in a separate namespace because that would add another
level in the metadata tree in the studios.
v Query view
Contains the part of the model that is visible in the studios for the query and
reporting package.
Shortcuts to the model query subjects in the Dimensional view are grouped in
star schemas and are placed in folders, one for each business area. They are
clearly marked with "(query)" at the end of the name in the root of the model.
In addition, there are packages in the sample model: one for analysis and one for
query and reporting. You cannot use the query and reporting package in IBM
Cognos Analysis Studio.

30

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 3. Model Design Accelerator
Model Design Accelerator is an extension of IBM Cognos Framework Manager that
simplifies the creation of relational star schema models. It helps the modeler create
a single fact table relational star schema that follows proven modeling practices.
Novice modelers can build models without extensive experience and training.
Experienced modelers could reduce the overall time to build a model. Model
Design Accelerator evaluates each design step to identify and help you resolve
potential issues.
Before starting to design a model, it is necessary to understand the reporting
problem you are trying to solve and what data is available to solve it.
To get started with Model Design Accelerator, do the following:
v Create a project and select a data source.
v Explore the user interface of Model Design Accelerator.
v Create a star schema model.
v Review how to manage your star schema model.
Model Design Accelerator has several views and dialog boxes to help you create
your model.
v Explorer Tree
v Explorer Diagram
v Model Accelerator
v Query Subject Diagram
v Relationship Editing Mode
v Model Warning
v Options
To access pop-up menus in each view, right-click in the view. The Options dialog
box is available from all pop-up menus.

Explorer tree
Use the Explorer Tree to view objects that you selected using the Metadata Wizard.
The data source objects are shown in a hierarchical view, similar to other file
systems.
To see a graphical view of your data source, use the Explorer Diagram. If the data
source contains a large number of objects, it may be easier to locate an object using
the Explorer Tree.
The Explorer Tree uses the following icons to represent objects.
Icon

Object
Project
Table in the data source

© Copyright IBM Corp. 2005, 2011

31

Icon

Object
Column in the data source
The data type property of the column identifies it as a
measure.
Column in the data source
The properties of the column identify it as a key.
Column in the data source
The properties of the column do not identify it as either a
measure or a key.
Data source

Explorer diagram
The Explorer Diagram shows a graphical view of your data source metadata. Use
the Explorer Diagram to explore your metadata and view the relationships
between objects.
To access the Explorer Diagram, select one or more objects in the Explorer Tree.
Then, click the Explorer Diagram icon

located above the Explorer Tree.

In the Explorer Diagram window, you can do the following:
v View objects and relationships.
v Change the layout of objects to either star layout or standard tree layout.
v Create a preliminary star schema based on any table containing facts.
v Zoom in or out
v Change the settings for the diagrams.
There are two ways of using the Explorer Diagram. From the Explorer Tree, you
can select a subset of objects that you are interested in and add them to the
Explorer Diagram. From the Explorer Tree, you can also add all the objects to the
Explorer Diagram. You can then keep the objects you are interested in and remove
the rest. Use the Show Related Tables and Remove Tables menu items to create a
view of just the objects you want to explore. The diagram is a read-only view of
your data source metadata. When you add or remove tables, you are only
modifying the diagram. You are not making changes to the data source.
Use the diagram menu options to explore relationships to other objects. To access
diagram menu options, select an object in the Explorer Diagram and right-click or
use the toolbar. Right-click a table to select the option to view the diagram as a
star or tree layout around that table. You can also access some of the diagram
menu options using the icons.
You can create a preliminary star schema by selecting any one table in the Explorer
Diagram. Right-click on it and select Generate a Star Schema from this Table to
create a full star schema design.
You can dock the Explorer Diagram onto the workspace by clicking the docking
button. From the docked window, you have the option of splitting your screen
horizontally or vertically.

32

IBM Cognos Framework Manager Version 10.1.1: User Guide

Use the Options dialog box to customize the default diagram settings. For
example, if your tables contain many columns or use long names, the data in the
diagrams may not be fully displayed. Adjust the maximum table size options on
the General tab to ensure that all your data is displayed. Use the Colors tab to
modify default colors used to identify diagram characteristics.

The Model Accelerator workspace
After you create a project, you start work in a Model Design Accelerator session.
The Model Accelerator is the graphical workspace where you build your star
schema.
To build your star schema, design the fact query subject using the measures that
you want to include in your reports. Then, build model query subjects to provide
context and describe those measures. The lines that join query subjects indicate
that relationships exist. Use the Query Subject Diagram to view the data source
tables that were used to create the selected query subject.
Model Design Accelerator evaluates each design step against modeling proven
practices to identify and help you resolve potential issues. If your actions result in
a potential issue, the Model Warning view displays.
After you complete your star schema, generate a model. You can refine the model
in Framework Manager. Create a package and publish the model to IBM Cognos
Connection to begin authoring reports in the studios.

Query Subject Diagram
Use the Query Subject Diagram to show the data source tables that were used to
create the star schema. These tables are imported into Framework Manager as part
of your generated model. To access the Query Subject Diagram, double-click a
query subject in the Model Accelerator workspace.
In the Query Subject Diagram window, you can do the following:
v View the data source tables that were used to create the selected query subject.
v Create, modify, delete or override relationships using the Relationship Editing
Mode.
v Change the settings for the diagrams using the Options Dialog.
Use the Options dialog box to customize the default diagram settings. For
example, if your tables contain numerous columns or use long names, the data in
the diagrams may not be fully displayed. Adjust the maximum table size options
in the Options dialog box to ensure all your data is displayed. Another option
controls the default colors that are used to identify diagram characteristics.

Using the Relationship Editing Mode
Use Relationship Editing Mode to create, modify, delete, or override model joins.
You can access Relationship Editing Mode in two ways:
v If Model Design Accelerator detects a potential issue, the Model Warning
window displays. The option Manually re-draw the joins between tables
activates the functionality of Relationship Editing Mode from the Model
Warning view.

Chapter 3. Model Design Accelerator

33

v You can double-click a query subject in the Model Accelerator workspace to
access the Query Subject Diagram. From there, click Enter Relationship
Creation Mode.

Procedure
1. Select two tables that you want to join.
If you cannot create a direct join between two tables, use intermediate tables.
To add intermediate tables, drag the tables from the Explorer Tree onto the
Query Subject Diagram. Then, create the required joins by linking the tables
through the intermediate tables.
Tip: An intermediate table has a dashed outline.
.
2. Click the Create a Model Relationship icon
The Modify the Relationship dialog box is displayed. A new join line is
displayed.
3. Select a column from each table to create the new relationship.
4. Select the appropriate relationship cardinality.
5. Click OK twice to return to the Model Accelerator workspace.
If your action results in an invalid model, the Model Warning view displays.

Results
Alternatively, from Relationship Editing Mode, you can select the columns you
. The Modify
wish to join and then click the Create a Model Relationship icon
the Relationship dialog box displays with the join displayed between the selected
columns.

Model Warning view
The Model Warning view displays when Model Design Accelerator detects a
potential issue. To help you build a valid model, Model Design Accelerator
evaluates each of your actions. The Model Warning view describes the action that
caused an issue and, when applicable, provides options for fixing it.
Some presented options are performed automatically when you select them and
click OK. Other options require you to make manual changes, either within Model
Design Accelerator or in the generated model in Framework Manager.
Because Model Design Accelerator cannot always determine the intent of your
actions, you must sometimes resolve an issue by creating manual joins. If it is
available, the option Manually re-draw the joins between tables activates the
functionality of Relationship Editing Mode from the Model Warning view.
When you select Manually re-draw the joins between tables, join icons display at
the top left of the Model Warning view. You can create manual joins as required to
resolve the identified issue.
For more information, see “Using the Relationship Editing Mode” on page 33.
If there is a series of dependent modeling options, click Cancel to undo your last
action. If there are no modeling options, click Cancel to undo the last action and
return to the Model Accelerator workspace.

34

IBM Cognos Framework Manager Version 10.1.1: User Guide

Changing the settings for diagrams
You can change one or more settings for the diagram views using the Options
dialog box. There are three diagram views in Model Design Accelerator. They are
the Model Accelerator workspace, the Explorer Diagram, and the Query Subject
Diagram.

Procedure
1. From any of the diagram views, right-click to access the pop-up menu. Select
Options and click the General tab.
2. Select the type of notation to represent relationships.
You can use Simplified Crowsfeet, Standard Crowsfeet, or Numeric Cardinality
notation. By default, Model Design Accelerator uses Simplified Crowsfeet
notation which provides a pictorial representation of the relationship.
Set a maximum table size for the Explorer and Query Subject diagrams.
Set a maximum table size for the Model Accelerator workspace.
Select whether you want a text description displayed beside each tool icon.
Select whether you want the introductory screen displayed every time you start
Model Design Accelerator.
7. Click the Colors tab to change the colors of diagram objects.
Default colors are assigned to the different characteristics of diagram objects.
Change the colors to customize your display.
3.
4.
5.
6.

The View Background Color indicates that changes made in the active window
will result in changes to the star schema design. This allows you to easily
identify windows used for editing and windows used only for viewing.
8. Click OK.

Creating a project
In Model Design Accelerator, you work in the context of a project.

Procedure
1. From the Welcome page of IBM Cognos Framework Manager, click Create a
new project using Model Design Accelerator.

2.
3.
4.

5.

If you are in Framework Manager, you can select Run Model Design
Accelerator from the Tools menu. In this case, a new project is not created. The
star schema is associated with the open project and the generated model is
added to that project.
In the New Project page, specify a name and location for the project, and click
OK.
In the Select Language page, click the design language for the project.
Click OK to select the design language.
You cannot change the design language but you can add other languages in
Framework Manager.
The Metadata Wizard displays.
To choose your data source, follow the instructions in the Metadata Wizard:
v Select a data source and click Next.
If the data source you want is not listed, you must first create it. For more
information, see “Creating data source connections” on page 44.

Chapter 3. Model Design Accelerator

35

You can import from only one data source at a time. If you want to import
from more than one data source, you must perform multiple imports.
v Select the check boxes for the objects you want to use.
You can select as many or as few objects as you wish. All selected metadata
is available for you to work with in your star schema design. Only the
objects required for the model will be imported into Framework Manager
when you generate the model.
v Click Continue to enter Model Design Accelerator.
You may see an introductory screen that gives you an overview of the design
steps. Close the introductory screen to begin using Model Design Accelerator.
6. Create your star schema model using the objects you selected from the data
source.
7. Do one of the following:
Click Save to save the contents of the session and continue working.
Click Close to save the contents of the session and enter Framework Manager.
Click Generate Model to generate a model based on your star schema design
and enter Framework Manager.
You can save and close your design as often as you wish without generating a
model. For more information, see “The star schema”

The star schema
Creating a star schema using Model Design Accelerator is a three-step process:
v Build the fact query subject with the measures you want in your reports.
v Build related query subjects to give context to the measures.
v Generate the model.
At any time, you can hover pause the pointer mouse over an object to view its
properties. The properties show the origin of the object in the data source. In the
Explorer Diagram view, you are also shown if the item is used in the star schema.
You can right click on a join to view the Relationship Dialog.
You should save your design as you work. If you exit Model Design Accelerator
and then return, you can resume working on the saved star schema.
Note: When you return to Model Design Accelerator, it opens to your last work
session. You cannot browse to other projects from Model Design Accelerator.

Build the fact query subject
Use the Explorer Tree to explore the tables and columns in your data source. Select
the measures that you want to include in your reports and add them to the fact
query subject in the Model Accelerator workspace. Measures are numeric columns
in a database table or view that can be grouped or aggregated. Examples of
measures are Production Cost or Quantity. Model Design Accelerator tracks the
required keys and automatically includes them in the model. There is no
requirement to add keys. Select only the measures you want report authors to see
in your package.
Select measures in the Explorer Tree and drag them onto the fact query subject in
the Model Accelerator workspace. You can also make your selections from the
Explorer Diagram.

36

IBM Cognos Framework Manager Version 10.1.1: User Guide

All the measures being added must be from the same table in your data source. If
you try to add measures from multiple tables, or add query items that are not
measures, the Model Warning dialog box will display. This is because Model
Design Accelerator supports only a single fact table star schema model.

Build related query subjects
Use objects from the Explorer Tree to build the query subjects in the star schema
model. Select columns from the Explorer Tree and add them to the appropriate
query subjects in the Model Accelerator workspace. You can add or remove query
subjects or columns from the workspace as required.
To help you build the query subjects, use the Explorer Diagram to examine the
metadata for the tables and views that you selected from the data source. You can
create query subjects from either the Explorer View or the Explorer Diagram.
From the Explorer Diagram, you can select one query subject or many and view
the relationships.

Generate your model
When your star schema is complete or ready for testing, click Generate Model to
build the model and enter IBM Cognos Framework Manager.
The Model Advisor tests are applied to the resulting model. In the Verify Model
Results tab, review the issues that are identified. There is a description of each
issue and a list of objects that are impacted by the issue. For more information on
the Model Advisor, see “Analyzing models” on page 176.
The star schema model that you created will usually contain only a subset of query
items from the data source. When you generate a model, only the metadata that is
required to support your star schema model is imported into Framework Manager.
Each time you generate a model, new namespaces are created in the open
Framework Manager project. The Physical View contains only the tables that were
imported to support the star schema model. The Business View contains model
query subjects with only the columns you selected when building the query
subjects. These are the objects you built in Model Design Accelerator. The
Presentation View contains a collection of shortcuts referencing the model query
subjects in the Business View.
From Framework Manager, you can enhance the model by adding calculations,
filters, additional languages, and dimensional structures. However, each time you
generate a new model, new namespaces are created and your enhancements are
not applied to the new namespaces.
You can return to Model Design Accelerator at any time to edit your star schema.
You must publish the model in Framework Manager to use it in the IBM Cognos
studios.

Managing your star schema
One way to design a star schema is by creating a stand-alone model. To do this,
create a project, build a star schema in Model Design Accelerator, generate a model
and save the model in the IBM Cognos Framework Manager project.

Chapter 3. Model Design Accelerator

37

You can save and close your star schema model design as often as you wish
without generating a model. After generating a model, you can return to Model
Design Accelerator by selecting Run Model Design Accelerator from the Tools
menu. You can do one of the following:
v Edit the current star schema, if one exists.
v Create a new star schema using the same imported data source metadata.
The Model Design Accelerator metadata is saved in the mda_metadata.xml file in
the project folder. You can move the star schema to another project by copying the
mda_metadata.xml file into a different project folder.
Each time you generate a model, namespaces are created in the open Framework
Manager project. The Physical View contains only the tables that were needed to
support the star schema model.The Business View contains model query subjects
with only the columns you selected when building the query subjects. These are
the objects you built in Model Design Accelerator. The Presentation View contains
a series of shortcuts to the model query subjects you created in the Business View.
For each subsequent model generated, a new set of namespaces is created in the
Framework Manager project. A number is appended to each namespace name to
distinguish it from the previous version. For example, the first model contains a
namespace entitled Physical View. The second model will contain Physical View1.
When your star schema design is complete, you can enhance the resulting model
in Framework Manager by adding calculations, filters, additional languages, and
dimensional structures. If you change the star schema and regenerate a model,
your original design and any enhancements are not overwritten.

38

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 4. Importing metadata from data sources
Before modeling in IBM Cognos Framework Manager, you must import metadata.
You can import metadata from a variety of data sources, both relational and
dimensional. You can import into a new model or into an existing one. Before
importing, it is important that you determine that the data source contains the data
and metadata that satisfy your reporting needs.
To import metadata, do the following:

Procedure
1. Define data sources.
2. Set data source security.
3. Learn about the types of data source connections.
4. Learn how to work with data source connections.
5. Create a data source connection.
6. Import metadata.

Data sources
Before you can create models and import metadata, you must define data sources.
A data source connection supplies the information that IBM Cognos BI needs to
connect to a database.
Each data source can contain one or more physical connections to databases. The
data source connection specifies the parameters needed to connect to the database,
such as the location of the database and the timeout duration. A connection can
include credential information and signons.
You can secure data sources using IBM Cognos authentication. IBM Cognos
authentication respects any security that is also defined within the data source. You
can create data source signons to isolate the database logon process from the end
users. The signon stores the user ID and password required to access the database.
You can also deploy data sources.
For more information about data source connections, see the IBM Cognos
Administration and Security Guide.

Data source security
You can define security for data sources using IBM Cognos authentication or data
source-specific security. Defining IBM Cognos authentication for a data source does
not override any database vendor-specific security.
Depending on the data source, one or more of the following types of IBM Cognos
authentication are available:
v No authentication
IBM Cognos BI logs on to the data source without providing any signon
credentials.
v IBM Cognos service credentials
© Copyright IBM Corp. 2005, 2011

39

IBM Cognos BI logs on to the data source using the logon specified for the IBM
Cognos service. Users do not require individual database signons. For
production environments, however, individual database signons are generally
more appropriate.
v External namespace
IBM Cognos BI logs on to the data source with the same credentials used to
authenticate to the specified external authentication namespace. The namespace
specified must be active, users must be logged on to it prior to accessing the
data source, and the credentials used for the namespace authentication must be
relevant for the data source authentication.
All data sources also support data source signons defined for the Everyone group
or for individual users, groups, or roles. If the data source requires a data source
signon, but you don't have access to a signon for this data source, you will be
prompted to log on each time you access the data source.
IBM Cognos BI also respects any security defined for the data source. For example,
for IBM Cognos cubes, the security may be set at the cube level. For Microsoft
Analysis Services data sources, the security may be set using cube roles.

Types of data source connections
IBM Cognos supports many different types of data sources. The data source
connection information may vary for each type of data source you use.
For detailed information about connections for specific data sources, see the IBM
Cognos Administration and Security Guide. If you require additional information
about the parameters to connect to your specific data source, see the vendor
documentation for the data source you are using.
In a Framework Manager model, catalogs and schemas are properties that are
associated with a data source object. If present, these properties qualify any object
that is generated in an SQL statement at run time.
When switching the data source against which a model is mapped, qualification
levels are often removed. The Relational Database Management System (RDBMS)
applies appropriate name space searches as it prepares the SQL statements it
receives. Depending on the vendor, the RDBMS may look in up to two places to
resolve a reference to an object. An error results if a reference cannot be resolved.
IBM Cognos Framework Manager preserves the names of tables and columns as
presented by the RDBMS. These names display in generated Cognos SQL
statements. Cognos SQL uses quotes for the names to preserve case and to avoid
conflicts with special characters or keywords.

Native metadata
IBM Cognos supports OLAP data sources as well as relational data sources. The
term native metadata refers to objects such as models, packages, and queries that
are based on an OLAP data source. A namespace that contains native metadata
to indicate that it is different from namespaces containing other
uses this icon
types of metadata.

40

IBM Cognos Framework Manager Version 10.1.1: User Guide

OLAP data sources are metadata rich data sources. Explicit modeling for these data
sources is not enabled in Framework Manager and the package is published
directly to the portal. For more information, see “Publishing packages based on
OLAP data sources” on page 249.
Levels are created using the generation names in the labels. If you want to alter the
way levels are named, you can do this by changing the dimension build settings in
the application that generated the cube. For more information, see the vendor
documentation.
Relational data sources require dimensional modeling to enable them to work in
IBM Cognos Analysis Studio and to work with drill capabilities in the other
studios. For more information about dimensional modeling, see “Dimensions” on
page 102.
If you installed IBM Cognos components on UNIX servers, locate the file-based
data source on a UNIX server. You should then use a UNIX path, such as
/servername/cubes/Great Outdoors Company.mdc to access the file. For more
information, see “Creating data source connections” on page 44.
Compound packages contain both OLAP and relational metadata.

Data source connections
You can customize data source connections to meet the needs of users.

Multiple data source connections
If you have access to more than one data source connection in a data source, you
are prompted to select a data source connection when you open an IBM Cognos
Framework Manager project. You can use multiple data source connections in a
single data source to facilitate the migration from one environment to another and
maintain the integrity of a project.
For example, you can use multiple data source connections to work with metadata
from a test data source. Create a new project, using the GoSales data source
connection. Create and modify the objects you want in the project, and test to
ensure that the project is modeled the way you want. After you close the session,
and reopen the Framework Manager project, you can select the production data
source connection. When you publish the package to the IBM Cognos server, your
users choose which data source connection they want to use in their report.
Multiple connections to the same data source must be defined in IBM Cognos
Connection. If you want to support multiple connections for each data source, clear
the data source catalog and schema names, and create a connection for each
database in IBM Cognos Connection.
Note: If you are working with multiple cubes containing unlike metadata, use
separate data sources for each cube. To be able to expand an OLAP package in the
Studios, the internal name of both cubes must be the same. If you want to run
saved reports that use different data source connections, the cube name, as well as
the dimension, hierarchy, level and attribute names, must be the same in both
cubes. If you use a single data source with a separate connection for each cube, the
internal names of all the cubes must be the same.

Chapter 4. Importing metadata from data sources

41

For more information about data source connections, see the IBM Cognos
Administration and Security Guide.

Isolation levels
The isolation level specifies how transactions that modify the database are handled.
By default, the default object gateway is used. Not all types of databases support
each isolation level. Some database vendors use different names for the isolation
levels.
Queries that are executed by reports and analysis are intended to be read-only
operations. The queries execute with a unit of work at the data source known as a
transaction with either a default or administrator-defined isolation level. Report
authors should not assume that queries that execute stored procedures commit any
data written by the procedure. In some environments, changes made by a
procedure may be committed due to features of the database. A stored procedure
that is marked for-write in Framework Manager commits changes but can only be
used by Event Studio.
If you need specific queries to run with different isolation levels, you must define
different database connections.
For OLAP data sources, including SAP BW, the transaction unit of work is
read-only.
The following isolation levels are in increasing order of isolation:
v Read Uncommitted
Changes made by other transactions are immediately available to a transaction.
Database type

Equivalent isolation level

Oracle

Not applicable

DB2®

Uncommitted read

Microsoft SQL Server

Read uncommitted

Sybase Adaptive Server Enterprise

Read uncommitted

Informix

Dirty read

v Read Committed
A transaction can access only rows committed by other transactions.

42

Database type

Equivalent isolation level

Oracle

Read committed

DB2

Cursor stability

Microsoft SQL Server

Read committed

Sybase Adaptive Server Enterprise

Read committed

IBM Cognos Framework Manager Version 10.1.1: User Guide

Database type

Equivalent isolation level

Informix

Committed read

v Cursor Stability
Other transactions cannot update the row in which a transaction is positioned.
Database type

Equivalent isolation level

Oracle

Not applicable

DB2

Not applicable

Microsoft SQL Server

Not applicable

Sybase Adaptive Server Enterprise

Not applicable

Informix

Cursor stability

v Reproducible Read
Rows selected or updated by a transaction cannot be changed by another
transaction until the transaction is complete.
Database type

Equivalent isolation level

Oracle

Not applicable

DB2

Read stability

Microsoft SQL Server

Repeatable read

Sybase Adaptive Server Enterprise

Repeatable read

Informix

Repeatable read

v Phantom Protection
A transaction cannot access rows inserted or deleted since the start of the
transaction.
Database type

Equivalent isolation level

Oracle

Not applicable

DB2

Not applicable

Microsoft SQL Server

Not applicable

Sybase Adaptive Server Enterprise

Not applicable

Informix

Not applicable

Chapter 4. Importing metadata from data sources

43

v Serializable
A set of transactions executed concurrently produces the same result as if they
were performed sequentially.
Database Type

Equivalent isolation level

Oracle

Serializable

DB2

Repeated read

Microsoft SQL Server

Serializable

Sybase Adaptive Server Enterprise

Serializable

Informix

Not applicable

Creating data source connections
A data source defines the physical connection to a database. A data source
connection specifies the parameters needed to connect to a database, such as the
location of the database and the timeout duration. These parameters form a
connection string for the data source.
You can create data sources in the portal or in Framework Manager. Because they
are stored on the server, data sources appear in both places, regardless of where
they were created. Existing data source connections can be edited only in the
portal.
If you are an administrator, you can set up all required data sources before models
are created in Framework Manager so that all connections are available in the
Framework Manager Metadata wizard.
Data sources are stored in the Cognos namespace and must have unique names.
For example, you cannot use the same name for a data source and a group.
You can include authentication information for the database in the data source
connection by creating a signon. Users need not enter database authentication
information each time the connection is used because the authentication
information is encrypted and stored on the server. The signon produced when you
create a data source is available to the Everyone group. Later, you can modify who
can use the signon or create more signons.
Before creating data sources, you must have write permissions to the folder where
you want to save the data source and to the Cognos namespace. You must also
have execute permissions for the Data Source Connections secured feature.

Recommendation - Use Network Paths For File-Based Data
Sources
If you have a distributed installation with several servers, we recommend that you
use network paths for all file-based data sources rather than local paths. This
ensures that the data sources can be accessed by the services that require them,
regardless of which server requires the data.

44

IBM Cognos Framework Manager Version 10.1.1: User Guide

When you create a connection to a file-based data source, such as a PowerCube,
you enter a path and file name. To point to the file, use a local path, such as
C:\cubes\Great Outdoors Company.mdc, or a network path, such as
\\servername\cubes\Great Outdoors Company.mdc.
In a distributed installation, where report servers are running on different
computers, using a local path requires that the file and path be valid on each
computer where a report server is running. Alternatively, if you use a network
path to point to a file, each report server points to the same file on the network
without having the file available locally. Also, to ensure that the file is always
available, we recommend that you store it in a shared directory that can be
accessed on your network.
If you installed IBM Cognos Business Intelligence components on UNIX operating
system servers, we recommend that you also locate the file-based data source on a
UNIX server. You should then use a UNIX path, such as /servername/cubes/Great
Outdoors Company.mdc to access the file.
If you have installed all components on a single computer, you can use local paths,
but you must ensure that the services requesting the data have the appropriate
access to the data files on the computer.
For Microsoft Windows operating system distributed installations, we recommend
that you use UNC paths to shared directories for any file based data source, such
as PowerCubes or XML files.

Connections to specific data sources
To create a connection to a data source, you should first review the pertinent
information in the IBM Cognos Administration and Security Guide. For each of the
following data source types, you will find detailed information about the required
connection parameters and authentication.
v IBM DB2
v IBM Cognos Cubes
v Oracle Essbase
v
v
v
v
v

IBM Infosphere Warehouse Cubing Services
IBM Informix
Microsoft Analysis Services
Microsoft SQL Server
ODBC Connections

v Oracle
v SAP BW
v Sybase Adaptive Server Enterprise
v IBM Cognos TM1®
v XML
Depending on the type of database you are connecting to, you may also need to
review information about isolation levels. For more information, see “Isolation
levels” on page 42.

Chapter 4. Importing metadata from data sources

45

Steps to create a data source connection
Procedure
1.
2.
3.
4.

5.
6.

7.
8.

Click the namespace, folder, or segment you want to import into.
Click Actions, Run Metadata Wizard.
In the Select Metadata Source window, click Data Sources, Next.
In the Select Data Source window, click New.
This runs the New Data Source Wizard that is also available from Cognos
Connection.
From the New Data Source Wizard, you can access the IBM Cognos
Administration and Security Guide from the online help system.
In the name and description page, type a unique name for the connection and,
optionally, a description and screen tip, and then select Next.
In the connection page, from the Type drop-down list, select the type of data
source you want to create.
If your data source is not listed, select Other type.
If necessary, specify an isolation level for your data source.
Enter any parameters that make up the connection string, and specify any other
settings, such as a signon or a timeout.
In the IBM Cognos Administration and Security Guide, you will find detailed
information about the required connection parameters and authentication.

9. Click Test the connection, Test to test whether parameters are correct.
If prompted, type a user ID and password or select a signon, and then click
OK. If you are testing an ODBC connection to a User DSN, you must be logged
on as the creator of the DSN for the test to succeed.
In the Status column, you can see if the connection was successful. If it was
unsuccessful, select Close, return to the previous steps and verify your
connection parameters.

Results
You can also test the data source connection from the Data Sources folder in the
Project Viewer. Right-click the data source, and click Test.

Importing metadata
You can import metadata into a new project or an existing project. Importing
metadata is an operation that can be performed many times to extend the project.
You can also export your model to a Common Warehouse Metamodel (CWM).
IBM Cognos Framework Manager can use the metadata and data from external
data sources to build a project.
To import metadata, you must indicate which sources you want and where they
are located. You can import from only one data source at a time. If you want to
import from more than one data source, you must perform multiple imports.
You can import metadata from
v Relational databases, such as Oracle, IBM DB2, and Microsoft SQL Server
v SAP BW data sources
v

46

IBM Cognos models

IBM Cognos Framework Manager Version 10.1.1: User Guide

v
v
v
v
v

Architect models and Impromptu catalogs
IBM Cognos DecisionStream or Data Manager models
IBM metadata sources
Third party metadata sources
XML as a data source

For information about the supported data source types, access one of the IBM
Cognos Information Centers at http://www.ibm.com/software/data/support/
cognos_crc.html.
For information about working with data source connections, see “Data source
connections” on page 41.

Duplicate object names
When you import metadata, you can select how you want the import to handle
duplicate object names. You have the option of not importing the object, or
importing and creating a unique name. The advantage of importing everything
except these duplicate objects is that you can add new database objects to the
project without specifying them individually, and without going through
synchronization. To import metadata that has the same table names, you must
create two namespaces and import each table into a different namespace.
When you import SAP BW metadata, IBM Cognos Framework Manager assigns a
unique name to each object. Therefore, if you rename an object in the model and
then reimport it, Framework Manager recognizes that it already exists. To reimport
an object with a different unique name, you can create a new namespace and
reimport the object into this namespace.
You can also import objects that have the same name.

Importing metadata from relational databases
When you import metadata from a relational database, you can import all the
metadata or select particular object types such as tables, columns, views,
synonyms, stored procedures, and functions. You can also import system objects
from a relational source. System stored procedures are not supported. IBM Cognos
Framework Manager supports only user-defined stored procedures.
The following table shows the database objects that are mapped to Framework
Manager objects.
Database object

Framework Manager object

table

query subject

column

query item

view

query subject

synonym

query subject

procedure

query subject

Chapter 4. Importing metadata from data sources

47

Database object

Framework Manager object

function

project function

Named sets imported from Microsoft SQL Server and Microsoft Analysis Server
stored as read-only calculations in the Framework Manager model. The calculation
has a flag that identifies it as a named set, and a property that contains the
dimension name.

Procedure
1. Click the namespace, folder, or segment that you want to import into.
2. Click Actions, Run Metadata Wizard.
3. From the Select Metadata Source dialog box, choose the type of metadata that
you want to import.
The Data Sources option provides a list of data sources defined in the IBM
Cognos software.
v Select the specific relational metadata source to import.
v Select a data source connection, and click Next.
If the data source connection that you want is not listed, you must first
create it. For more information, see “Creating data source connections” on
page 44.
v Select the check boxes for the objects that you want to import.
v Specify how the import should handle duplicate object names. Choose either
to import and create a unique name, or not to import. If you choose to create
a unique name, the imported object displays with a number. For example,
you see QuerySubject and QuerySubject1 in your project.
v If you want to import system objects, select the Show System Objects check
box, and then select the system objects that you want to import.
v Specify the criteria to use to create relationships.
v If you want to convert all cardinalities to 1, clear the Fact detection enabled
check box. Removing n cardinalities disables fact detection and the ability to
automatically prevent double-counting. For more information, see “Modeling
1-n Relationships as 1-1 Relationships” on page 339.
4. Click Import.
Import statistics including a list of objects that could not be imported and a
count of objects that were imported are shown.
5. Click Finish.

What to do next
After importing metadata, you must check the imported metadata for the
following areas:
v Relationships and cardinality. See “Verifying Imported Metadata” on page 320.
v Determinants. See “Determinants” on page 82.
v The Usage property for query items. See “Formatting query items” on page 135.
v The Regular Aggregate property for query items. See “Formatting query items”
on page 135.

48

IBM Cognos Framework Manager Version 10.1.1: User Guide

Importing metadata from IBM Cognos models
You can import metadata from an existing IBM Cognos model.
Note: If you import from another IBM Cognos Framework Manager project,
expression syntax is not adjusted for each language. For example, you create a
Framework Manager project using French as the design language and you use
French-specific syntax in calculations and filters. You then create a new project
using English as the design language and you import the French project into the
new project. Expressions defined in the calculations and filters are not valid. You
must manually modify the expression after importing the metadata.

Procedure
1.
2.
3.
4.

Click the namespace, folder, or segment you want to import into.
Click Actions, Run Metadata Wizard.
Click IBM Cognos Model, Next.
Locate the model (.cpf file) that you want, and click Open, Next.

5. Follow the instructions in the Import wizard:
v Select the check boxes for the objects that you want to import.
v Specify how the import should handle duplicate object names.
Choose either to import and create a unique name, or not to import. If you
choose to create a unique name, the imported object displays with a number.
For example, you see QuerySubject and QuerySubject1 in your project.
6. Click Next, Finish.

Importing metadata from Architect models or Impromptu
catalogs
To import metadata from an IBM Cognos Architect model or an Impromptu
catalog, you must first convert it to XML files. Because of differences between IBM
Cognos Series 7 and IBM Cognos BI, after you import the migrated metadata in
IBM Cognos Framework Manager, additional work is required to test and refine
the metadata.
For information about the migration of Series 7, see the IBM Cognos Migration
Assistant User Guide on one of the IBM Cognos Information Centers at
http://publib.boulder.ibm.com/infocenter/cogic/v1r0m0/index.jsp.

Procedure
1. Ensure that you exported the Architect model or Impromptu catalog.
2. Click the namespace, folder, or segment you want to import into.
3. Click Actions, Run Metadata Wizard.
4. Click either IBM Cognos Architect (.xml) or IBM Cognos Impromptu (.xml),
and click Next.
5. Locate the Architect or Impromptu XML file that contains the metadata to
import.
A message in the XML Preview window confirms that you chose a valid XML
file.
6. Click Open.
7. Select the namespace containing your Series 7 security information.
8. Click Import.
A list of created objects displays.
Chapter 4. Importing metadata from data sources

49

9. If you want to verify the imported metadata, click the Verify after import
check box.
10. Click Finish.

Importing metadata from IBM Cognos DecisionStream or IBM
Cognos Data Manager
You can use IBM Cognos Framework Manager to import metadata from an XML
file created by IBM Cognos DecisionStream or IBM Cognos Data Manager.
You can import
v A physical layer residing in the Physical Metadata namespace
This layer contains data source query subjects representing the imported tables.
The physical layer contains query subjects and physical relationships between
query subjects. These physical relationships are inferred from the relationships
defined in the import file. Imported tables become Framework Manager query
subjects, and surrogate keys become Framework Manager determinants.
v A dimensional layer residing in the Dimensions namespace
This layer contains regular dimensions, measure dimensions, and scope
relationships. The regular dimensions may be conformed or non-conformed. The
measure dimension objects correspond to the imported stars. The scope
relationships are inferred from the relationships defined in the import file.
v A logical layer residing in the Business View namespace
This layer contains shortcuts to the regular and measure dimensions in the
Dimension namespace. The shortcuts are organized as star schema groupings,
which are namespaces with the same name as the stars from the import file.
The following diagram shows how objects from DecisionStream and Data Manager
are mapped to Framework Manager objects.

50

IBM Cognos Framework Manager Version 10.1.1: User Guide

Facts
A star maps to a Framework Manager query subject in the Physical Metadata
namespace or as a measure dimension in the Dimensions namespace. The
following fact attributes are included in the model.
Attribute name

Framework Manager mapping

Table name

Name of the database query subject on
which the model query representing the fact
is based

Short name

Query subject description

Business name

Custom property

Description

Query subject description

Column name

Query item name

Column type

Query item data type

Column length

Query item size

Column short name

Custom property

Column business name

Custom property

Chapter 4. Importing metadata from data sources

51

Attribute name

Framework Manager mapping

Column description

Query item description

Column type

Query item usage

Table keys

Determinants in the Physical Metadata
namespace

Connections
A connection maps to a Framework Manager data source.
Note: A data source connection is not automatically created in IBM Cognos
Connection. You must manually create the connection in IBM Cognos Connection
as explained in the import procedure steps. For more information, see “Importing
metadata from IBM Cognos DecisionStream or IBM Cognos Data Manager” on
page 50.
The following data source attributes are included in the model.
Attribute name

Framework Manager mapping

Connection short name

Custom property

Connection business name

Data source name

Connection description

Data source description

Connectivity

type.interface property

Connection string

Custom property

Dimension builds
A dimension build maps to Framework Manager as a top-level namespace.

Hierarchies
A dimension containing hierarchies, levels, and columns maps to a Framework
Manager regular dimension containing hierarchies, levels, and query items.

Conformed stars
Conformed stars map to a Framework Manager namespace that resides in the
Business View namespace. It contains shortcuts referencing the dimensions.
The following conformed star attributes are included in the model.

52

IBM Cognos Framework Manager Version 10.1.1: User Guide

Attribute name

Framework Manager mapping

Star short name

The name of the namespace representing the
star

Star business name

The name of the measure dimension
representing the fact

Star description

The description of the measure dimension
representing the fact

Facts

Shortcuts to a measure dimension

Dimensions

Shortcuts to regular dimensions

Hierarchies

Hierarchies in the regular dimension
representing the DecisionStream dimensions

Model properties
The export file contains the following model properties.
Attribute name

Framework Manager mapping

Schema version

Not mapped

Catalog version

Custom property

Model short name

The name of the namespace representing the
top-level model object

Model business name

Custom property

Model description

The description of the namespace
representing the top-level model object

Steps to import from IBM Cognos DecisionStream or IBM
Cognos Data Manager
Procedure
1. Click the namespace, folder, or segment that you want to import into.
2. Click Actions, Run Metadata Wizard.
3. Click IBM Cognos DecisionStream (.xml) or IBM Cognos Data Manager
(.xml), and click Next.
4. Locate the XML file that contains the metadata to import.
A message in the XML Preview window confirms that you chose a valid XML
file.
5. Click Open, Import.
A list of created objects displays.

Chapter 4. Importing metadata from data sources

53

If you want to verify the imported metadata, click the Verify after import
check box.
7. Click Finish.
8. Create the data source connection in IBM Cognos Connection. The name you
define in IBM Cognos Connection must be the same as the data source name
shown in the Data Sources folder in Framework Manager.
6.

For information about how to create a data source connection, see “Creating
data source connections” on page 44.

Importing from IBM metadata sources
You can use IBM Cognos Framework Manager to import metadata from IBM data
sources such as IBM InfoSphere™ DataStage®. Similar to third party data sources,
metadata is extracted using the Meta Integration Model Bridge (MIMB).
For more information, see “Importing metadata from third party metadata sources”
on page 57.

IBM metadata source import options
The options that you see are based on the selected data source. Not all options
apply to Framework Manager.

Framework Manager options
The IBM Cognos Framework Manager options available are the same regardless of
the type of metadata source that you select. This table shows the options used to
create objects in Framework Manager.
Framework Manager options

Description

Logical/Physical representation

Specifies how logical and physical objects
are represented.
Integrated represents the logical and
physical objects as one integrated object.
Separated represents the logical and
physical objects as two related objects. This
is the default.
Separated (verbose) represents the logical
and physical objects as two distinct objects.

Dimensional/Logical representation

Integrated represents the dimensional object
as one integrated object. This is the default.
Separated represents the dimensional object
as one dimensional and one logical object.

54

IBM Cognos Framework Manager Version 10.1.1: User Guide

Framework Manager options

Description

Diagram representation

Specifies how diagrams are represented in
the project.
As Namespaces indicates that diagrams are
represented as namespaces.
As Packages indicates that diagrams are
represented as packages.
Both indicates that diagrams are represented
as both namespaces and packages. This is
the default.
None indicates that diagrams are not
represented in the project.

Namespace hierarchy

Specifies where the hierarchy of packages is
kept.
All indicates the hierarchy of packages is
kept in all the namespaces. This is the
default.
None indicates that the hierarchy of
packages is not retained.
Dimensional level only indicates the
hierarchy of packages is kept in the
dimensional namespace only
Logical level only indicates the hierarchy of
packages is kept in the logical namespace
only.
Physical level only indicates the hierarchy
of packages is kept in the physical
namespace only.

Logical only classes

Specifies whether the logical only classes are
represented.
Ignore indicates that logical only classes are
ignored.
Show indicates that logical only classes are
shown along with all their attributes. This is
the default.

Chapter 4. Importing metadata from data sources

55

Framework Manager options

Description

Logical only attributes

Specify whether the logical only attributes
are represented. This option does not affect
logical only attributes in a logical only class.
See the Logical Only Classes option.)
Drop indicates that logical information of a
class is not shown if it contains a logical
only attribute.
Ignore indicates logical only attributes are
ignored.
Show indicates that logical only attributes
are shown. This is the default.

Unreferenced dimension attributes

Specifies how unreferenced dimension
attributes are represented in the project. An
unreferenced dimension attribute is one that
does not participate in a level and is not
referenced by any other dimension attribute.
Ignore All indicates that all unreferenced
dimension attributes are ignored.
Ignore Join indicates that only unreferenced
dimension attributes participating in a join
are ignored.
Show All indicates that all unreferenced
dimension attributes are shown. This is the
default.
Show Join indicates that only unreferenced
dimension attributes participating in a join
are shown

Dimensions without dimensional
information

Specifies how to represent dimensions that
do not contain any dimensional information.
Dimension creates a dimension and a
default hierarchy and level. This is the
default.
Model Query creates a modelQuery.

Create cubes

Specifies whether the import can create
cubes. A cube is represented as a namespace
containing all the information necessary to
build the cube.

Populate screentip

Specifies whether the import uses the
description field as a screenTip.
True allows the content of the description
field to be seen as a screentip in IBM
Cognos Report Studio, Query Studio or IBM
Cognos Business Insight Advanced.

56

IBM Cognos Framework Manager Version 10.1.1: User Guide

Framework Manager options

Description

Name of the namespace containing the
dimensional information

Specifies the namespace that contains the
dimensional information. The default is
"Dimensional Model".

Name of the namespace containing the
logical information

Specifies the namespace that contains the
logical information. The default is "Logical
Model".

Name of the namespace containing the
physical information

Specifies the namespace that contains the
physical information. The default is
"Physical Model".

Name of the namespace containing the
subject areas

Specifies the namespace that contains the
subject areas. The default is "Subject Area".

Consistency Check

Specifies the consistency check level.
Basic is the typical consistency check level.
Extensive performs a more thorough
validation of the model.
None indicates that no validation is
performed.

Importing metadata from third party metadata sources
You can use IBM Cognos Framework Manager to import metadata from other
sources, including relational. Metadata is imported using a metadata bridge.
You can import both relational and other metadata into the same model. You can
start with a new Framework Manager model and import the other metadata before
the relational metadata. This avoids conflicts if you import objects that have the
same name.
When you import other metadata, data sources are created based on information
provided through the import wizard. If at least one physical object in the other
source references a database schema or catalog or both, one Framework Manager
data source is created with its catalog or schema properties set to the names of the
catalog or schema defined in the metadata. A generic data source is created for
those physical objects that do not reference a catalog or schema.
If you want to access metadata from another data source, you must perform a
physical model import.
Not all data sources contain metadata that is appropriate for business intelligence
reporting and not all concepts map to Framework Manager. The metadata import
is tailored to Framework Manager and only compatible metadata will be imported.
All metadata bridges deliver a physical layer that provides the basis for further
modeling. The richness of the resulting Framework Manager model is directly
related to the richness of the metadata source.

Chapter 4. Importing metadata from data sources

57

Multiple databases
Other metadata sources can be based on multiple databases. The best way to
import these multiple data sources into Framework Manager is to perform
multiple imports. For each import, you select the items that correspond to that
specific data source.
For example, the first time that you import from another metadata source, you
select datasource1 and all the items that correspond to that data source. The next
time, you select datasource2 and the items that correspond to that data source. You
continue to import until you have imported all the data sources and their
corresponding items.

Third party specific import options
Metadata is extracted from the third party data sources by the Meta Integration
Model Bridge (MIMB). Not all options apply to Framework Manager. For
information about supported tools and object mappings, see the Meta Integration
Web site.
The options that you see during import are based on the selected data source.

Framework Manager options
The IBM Cognos Framework Manager options available are the same regardless of
the type of metadata source that you select. This table shows the options used to
create objects in Framework Manager.
Framework Manager options

Description

Logical/Physical representation

Specifies how logical and physical objects
are represented.
Integrated represents the logical and
physical objects as one integrated object.
Separated represents the logical and
physical objects as two related objects. This
is the default.
Separated (verbose) represents the logical
and physical objects as two distinct objects.

Dimensional/Logical representation

Integrated represents the dimensional object
as one integrated object. This is the default.
Separated represents the dimensional object
as one dimensional and one logical object.

58

IBM Cognos Framework Manager Version 10.1.1: User Guide

Framework Manager options

Description

Diagram representation

Specifies how diagrams are represented in
the project.
As Namespaces indicates that diagrams are
represented as namespaces.
As Packages indicates that diagrams are
represented as packages.
Both indicates that diagrams are represented
as both namespaces and packages. This is
the default.
None indicates that diagrams are not
represented in the project.

Namespace hierarchy

Specifies where the hierarchy of packages is
kept.
All indicates the hierarchy of packages is
kept in all the namespaces. This is the
default.
None indicates that the hierarchy of
packages is not retained.
Dimensional level only indicates the
hierarchy of packages is kept in the
dimensional namespace only
Logical level only indicates the hierarchy of
packages is kept in the logical namespace
only.
Physical level only indicates the hierarchy
of packages is kept in the physical
namespace only.

Logical only classes

Specifies whether the logical only classes are
represented.
Ignore indicates that logical only classes are
ignored.
Show indicates that logical only classes are
shown along with all their attributes. This is
the default.

Chapter 4. Importing metadata from data sources

59

Framework Manager options

Description

Logical only attributes

Specify whether the logical only attributes
are represented. This option does not affect
logical only attributes in a logical only class.
See the Logical Only Classes option.)
Drop indicates that logical information of a
class is not shown if it contains a logical
only attribute.
Ignore indicates logical only attributes are
ignored.
Show indicates that logical only attributes
are shown. This is the default.

Unreferenced dimension attributes

Specifies how unreferenced dimension
attributes are represented in the project. An
unreferenced dimension attribute is one that
does not participate in a level and is not
referenced by any other dimension attribute.
Ignore All indicates that all unreferenced
dimension attributes are ignored.
Ignore Join indicates that only unreferenced
dimension attributes participating in a join
are ignored.
Show All indicates that all unreferenced
dimension attributes are shown. This is the
default.
Show Join indicates that only unreferenced
dimension attributes participating in a join
are shown

Dimensions without dimensional
information

Specifies how to represent dimensions that
do not contain any dimensional information.
Dimension creates a dimension and a
default hierarchy and level. This is the
default.
Model Query creates a modelQuery.

Create cubes

Specifies whether the import can create
cubes. A cube is represented as a namespace
containing all the information necessary to
build the cube.

Populate screentip

Specifies whether the import uses the
description field as a screenTip.
True allows the content of the description
field to be seen as a screentip in IBM
Cognos Report Studio, Query Studio or IBM
Cognos Business Insight Advanced.

60

IBM Cognos Framework Manager Version 10.1.1: User Guide

Framework Manager options

Description

Name of the namespace containing the
dimensional information

Specifies the namespace that contains the
dimensional information. The default is
"Dimensional Model".

Name of the namespace containing the
logical information

Specifies the namespace that contains the
logical information. The default is "Logical
Model".

Name of the namespace containing the
physical information

Specifies the namespace that contains the
physical information. The default is
"Physical Model".

Name of the namespace containing the
subject areas

Specifies the namespace that contains the
subject areas. The default is "Subject Area".

Consistency Check

Specifies the consistency check level.
Basic is the typical consistency check level.
Extensive performs a more thorough
validation of the model.
None indicates that no validation is
performed.

Steps to import from third party metadata sources
Before you begin
Before you can import metadata, there must be a connection to the data source.

Procedure
1. Click the namespace, folder, or segment you want to import into.
2. Click Actions, Run Metadata Wizard.
3. Click Third Party Metadata Sources, Next.
4. Click the metadata type to import.
5. In the Third Party Specific Import Options dialog box, use the File option to
identify the file that contains the metadata to import.
Click the other options that you want. The options that you see are based on
the selected data source.
Note: Use the default options. These options optimize the metadata import. If
you change the options, you may see unexpected results. To revert back to the
default options, click Use Defaults.
6. Click Next.
7. In the Framework Manager Specific Import Options dialog box, click the
options that you want, and click Next.
8. Follow the instructions in the Metadata Wizard:
v Select a data source connection, and click Next.
If the data source connection you want is not listed, you must first create it.
For more information, see “Creating data source connections” on page 44.
Chapter 4. Importing metadata from data sources

61

v Select the check boxes for the objects you want to import.
v Specify how the import should handle duplicate object names. Choose either
to import and create a unique name, or not to import. If you choose to create
a unique name, the imported object displays with a number. For example,
you see QuerySubject and QuerySubject1 in your project.
v Specify the criteria to use to create relationships, and click Import.
For more information, see “Relationships” on page 68.
Import statistics including a list of objects that could not be imported and a
count of objects that were imported are shown.
9. Click Finish.
Modeling After the Import:
The source metadata has a logical structure that is compatible with IBM Cognos BI.
During the import, this structure is preserved for higher fidelity with the source
model.
After the import, only the physical metadata is available.
Procedure
1. Analyze and review the model. See “Analyzing models” on page 176.
2. Set the determinants.
3. Set the Usage property.
Some bridges require facts to be set manually because this is not available from
the metadata source.
4. Verify the relationships and cardinality.
5. Resolve ambiguous relationships, such as multiple valid relationships, reflexive
relationships, and recursive relationships.

Troubleshooting metadata from other sources
This section describes issues that you can encounter when working with metadata
that you have imported into IBM Cognos Framework Manager.

Relationships involving table views are not imported from an
Oracle Designer file
Primary key and foreign key relationships involving at least one table view are not
imported from an Oracle Designer file into Framework Manager.
Create the primary key and foreign key relationships manually.

Cannot test a query subject from another source
You cannot test a query subject that you have imported from another data source.
For example, you test a query subject and get this error message:
QE-DEF-0177 An error occurred while performing operation
'sqlPrepareWithOptions' status='-201'.
UDA-SQL-0196 The table or view
"GOSALES1.COGNOS.COM.GOSALES.CONVERSION_RATE" was not found in
the dictionary.
To resolve this problem, ensure that the following conditions exist:

62

IBM Cognos Framework Manager Version 10.1.1: User Guide

v The Framework Manager data source object created by the import, and
referenced by the query subject, has an identically named corresponding data
source in the IBM Cognos Business Intelligence content store.
v The corresponding content store data source is valid and the connection
information is correct.
v The optional schema or catalog properties of the data source object that the
import created and the query subject references are correct. For the databases
accepting case-sensitive identifiers, ensure that the case is also correct.
v The database object (table or view) represented by the query subject exists in the
database with the identical name, and is accessible within the current
connection.
v The Query Type is valid. An invalid Query Type can exist if you import a query
subject from SAP BW and change the value of the Query Type property for the
data source. By default the value of Query Type is multidimensional. Do not
change it.

Some expressions imported from other metadata sources are not
valid
Support for expression parsing was improved in the MIMB in IBM Cognos BI.
Functions that are equivalent between other metadata sources and IBM Cognos BI
are parsed.
Exceptions to this include
v Functions with no mapping between IBM Cognos BI and the other metadata
source
v Expressions that use a specialized syntax
Solution:
If you have functions with no mapping between IBM Cognos BI and the other
metadata source, after importing expressions from other metadata sources, edit
these expressions manually in Framework Manager to conform to the equivalent
Framework Manager syntax.
If you have expressions that use a specialized syntax, do the following:
Procedure
1. In Framework Manager, identify all imported query items that represent
embedded calculations using references such as $$1, $$2, and so on.
2. In the Properties pane, find the information provided in the patternMapping
property for each query item.
The patternMapping property indicates the mapping between the parameters
in the imported calculation and the actual object references in the original
model.
3. Double-click a broken query subject.
4. Double-click the embedded calculation corresponding to the query item
identified in step 1.
5. If the calculation was assigned a default name ("Calculation..."), replace it with
the actual query item name.
6. Replace the imported parameters with the actual Framework Manager object
references that these parameters represent.
7. Repeat these steps for each broken query subject.
Chapter 4. Importing metadata from data sources

63

Importing metadata using XML as a data source
You can import an XML file as a tabular data source in IBM Cognos Framework
Manager. You can import it locally or from a remote site through a valid URL. In
Framework Manager the XML file is used to model metadata and create a package.
The XML file is validated and parsed at run time, when the query is processed by
either Report Studio, Query Studio or IBM Cognos Business Insight Advanced. If
you add the VALIDATE=ON option to the connection string, Framework Manager
partially validates the XML file in the  tag that describes the
metadata. For information about supported data types, see Appendix H, “XML
data types,” on page 581.
You must use the xmldata.xsd schema to validate the XML file. The schema is
located in the \c10\bin folder. It is not necessary to specify the location of the
schema in the XML file itself.
To use XML as a data source, ensure that:
v You do not use Native SQL to access data in an XML file
v You do not access Binary Large Objects (BLOB)
v You use only sqlColumns() and sqlTables() metadata calls
Other calls return an unsupported function error.
v The XML file is well-formed and valid

Before you begin
Before you can import metadata, there must be a connection to the data source. If
the XML data source is on another computer, you must use an account that has
permissions to access the data source.
After you create a connection to an XML data source, the data source displays in
the list of data sources.
To use XML as a data source, you must understand XML, schemas, and other
XML-related technology.

Procedure
1. Click the namespace, folder, or segment that you want to import into.
2. Click Actions, Run Metadata Wizard.
3. Click the XML data source that you want to import, and click Next.

Importing objects with the same name
Namespaces are containers like folders. Objects in an IBM Cognos Framework
Manager project must be uniquely identifiable. If you have two objects that have
the same name, they must reside in two separate namespaces.
For example, you have a database that contains financial data. One set of tables
represents Forecast and Actual information. Both the Forecast and Actual
information have tables named Accounts Payable and Accounts Receivable. To
import these tables into Framework Manager and use the same table names in the
project, you must create two namespaces. You can name one namespace Forecast,
and the other namespace Actual.

64

IBM Cognos Framework Manager Version 10.1.1: User Guide

Procedure
1. Click the model or root namespace, and click Actions, Create, Namespace.
2. Right-click the namespace, click Rename, and type a descriptive name.

Chapter 4. Importing metadata from data sources

65

66

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 5. Modeling relational metadata
Note: Information on SAP BW metadata is in separate topics.
After importing metadata, you must ensure that it is set up to meet your users'
reporting requirements, and provide any additional information that they require.
Enhancements you make in IBM Cognos Framework Manager do not affect the
original data source.
Tip: To verify that the model meets the reporting requirements, you can select
objects that will display in a report and test them. The test results show you the
report that your users will see as well as the SQL and messages from the IBM
Cognos software, if any. Or you can publish a package at any time and then use
the package to create reports.
You can check the project at any time to ensure that the references between the
objects it contains are valid. See “Verifying models or packages” on page 233.
Create at least two views: the import view and the business view. Using two, or
more, views makes it easier to remap items to a new data source.

Setting up the import view
The import view contains the metadata you imported from the data source.
To ensure that the metadata is set up correctly in the import view, do the
following:

Procedure
1. Ensure that the relationships reflect the reporting requirements.
2. Optimize and customize the data retrieved by query subjects.
3. Optimize and customize the data retrieved by dimensions. You may want to
store dimensions in a separate dimensional view.
4. Handle support for multilingual metadata.
5. Control how data is used and formatted by checking query item properties.

Setting up the business view
The business view provides a layer to the information in the source data so that it
is easier for your users to build reports.
To enhance the metadata in the business view, do the following:

Procedure
1. Add business rules, such as calculations and filters, that define the information
users can retrieve.
2. Organize the model by creating separate views for each user group that reflect
the business concepts familiar to your users.
3. Create a durable model that can withstand later changes to query item names
with no impact on existing reports, and report authors.
© Copyright IBM Corp. 2005, 2011

67

Results
You can analyze the metadata to ensure that the model is following current
modeling guidelines by using the Model Advisor.

Relationships
A relationship describes how to create a relational query for multiple objects in the
model. Without relationships, these objects are isolated sets of data.
Relationships work in both directions. You often must examine both directions to
fully understand the relationship.
The different types of relationships are
v One-to-one
One-to-one relationships occur when one instance of data in a query subject
relates to exactly one instance of another. For example, each student has one
student number.
v One-to-many or zero-to-many
One-to-many or zero-to-many relationships occur when one instance of data in a
query subject relates to many instances of another. For example, each teacher has
many students.
v Many-to-many
Many-to-many relationships occur when many instances of data in a query
subject relate to many instances of another. For example, many students have
many teachers.
When importing metadata, IBM Cognos Framework Manager can create
relationships between objects in the model based on the primary and foreign keys
in the data source. You can create or remove relationships in the model so that the
model better represents the logical structure of your business.
After you import metadata, verify that the relationships you require exist in the
project and that the cardinality is set correctly. The data source may have been
designed without using referential integrity. Often, many primary and unique key
constraints are not specified. Without these constraints, Framework Manager
cannot generate the necessary relationships between fact tables and dimension
tables.
Framework Manager stores relationships in the nearest common parent of the
objects that participate in the relationship. The parent can be either a folder or a
namespace. If you move one of the participating objects outside the common
parent, the relationship moves to the next namespace that is common to both ends
of the relationship. If you move a relationship to a different folder or namespace,
the participating objects also move to the same folder or namespace.
Tip: Use the Search tab (Tools pane) to find an object of class Relationship whose
name matches a specified pattern. For example, if you search for a relationship
whose name contains Order Header, Framework Manager finds all relationships
that have Order Header as one end. If you renamed a relationship, a search of this
type may not find it.

68

IBM Cognos Framework Manager Version 10.1.1: User Guide

Cardinality
Relationships exist between two query subjects. The cardinality of a relationship is
the number of related rows for each of the two query subjects. The rows are
related by the expression of the relationship; this expression usually refers to the
primary and foreign keys of the underlying tables.
IBM Cognos software uses the cardinality of a relationship in the following ways:
v
v
v
v

to
to
to
to

avoid double-counting fact data
support loop joins that are common in star schema models
optimize access to the underlying data source system
identify query subjects that behave as facts or dimensions

A query that uses multiple facts from different underlying tables is split into
separate queries for each underlying fact table. Each single fact query refers to its
respective fact table as well as to the dimensional tables related to that fact table.
Another query is used to merge these individual queries into one result set. This
latter operation is generally referred to as a stitched query. You know that you
have a stitched query when you see coalesce and a full outer join.
A stitched query also allows IBM Cognos software to properly relate data at
different levels of granularity. See “Multiple-fact, Multiple-grain Queries” on page
306.
You must ensure that all relationships and cardinality correctly reflect your users'
reporting requirements.
For more information, see “Cardinality in Generated Queries” on page 300 and
“Cardinality in the Context of a Query” on page 301.

Detecting cardinality from the data source
When importing from a relational data source, cardinality is detected based on a
set of rules that you specify.
The available options are
v Use primary and foreign keys
v Use matching query item names that represent uniquely indexed columns
v Use matching query item names
The most common situation is to use primary and foreign keys as well as matching
query items that represent uniquely indexed columns. The information is used to
set some properties of query items as well as to generate relationships.
To view the index and key information that was imported, right-click a query
subject and click Edit Definition. For a query subject, you can change the
information in the Determinants tab.
Optional relationships, full outer joins, and many-to-many relationships can be
imported from your data source. IBM Cognos Framework Manager will run them
as queries.
Note: All regular dimensions begin as query subjects. If you converted a query
subject to a regular dimension, note that determinant information for the query

Chapter 5. Modeling relational metadata

69

subject is leveraged as a starting point to define the levels of a single hierarchy.
Review the levels and keys created in the hierarchy of the dimension.

Notation
By default, Framework Manager uses Merise notation. Merise notation marks each
end of the relationship with the minimum and maximum cardinality of that end.
You can also use Crowsfeet notation, which provides a pictorial representation of
the relationship.
For information about how to change the notation, see “Changing the settings for
diagrams” on page 23.
When you interpret cardinality, you must consider the notation that displays at
both ends of the relationship.
Possible end labels are
v 0..1 (zero or one match)
v 1..1 (exactly one match)
v 0..n (zero or more matches)
v 1..n (one or more matches)
The first part of the notation specifies the type of join for this relationship:
v An inner join (1)
An inner join shows all matching rows from both objects.
v An outer join (0)
An outer join shows everything from both objects, including the items that do
not match. An outer join can be qualified as full, left, or right. Left and right
outer joins take everything from the left or right side of the relationship
respectively and only what matches from the other side.
Your users see a different report depending on whether you use an inner or outer
join. For example, your users want a report that lists salespeople and orders. If you
use an outer join to connect salespeople and orders, the report shows all
salespeople, regardless of whether they have any orders. If you use an inner join,
the report shows only the salespeople who have placed orders.
Data in one object might have no match in the other object. However, if the
relationship has a minimum cardinality of 1, an inner join is always used and these
records are ignored. Conversely, if all the items match but the relationship in the
model has a minimum cardinality of 0, an outer join is always used, although the
results are the same with an inner join. For example, the underlying table for one
object contains a mandatory (non-NULLable) foreign key for the other. Ensure that
the data and cardinalities match.
The second part of the notation defines the relationship of query items between the
objects.

Cardinality in generated queries
IBM Cognos software supports both minimum-maximum cardinality and optional
cardinality.
In 0:1, 0 is the minimum cardinality, 1 is the maximum cardinality.

70

IBM Cognos Framework Manager Version 10.1.1: User Guide

In 1:n, 1 is the minimum cardinality, n is the maximum cardinality.
A relationship with cardinality specified as 1:1 to 1:n is commonly referred to as 1
to n when focusing on the maximum cardinalities.
A minimum cardinality of 0 indicates that the relationship is optional. You specify
a minimum cardinality of 0 if you want the query to retain the information on the
other side of the relationship in the absence of a match. For example, a relationship
between customer and actual sales may be specified as 1:1 to 0:n. This indicates
that reports will show the requested customer information even though there may
not be any sales data present.
Therefore a 1 to n relationship can also be specified as:
v
v

0:1 to 0:n
0:1 to 1:n

v
v

1:1 to 0:n
1:1 to 1:n

Use the Relationship impact statement in the Relationship Definition dialog box
to help you understand cardinality. For example, Sales Staff (1:1) is joined to
Orders (0:n).

It is important to ensure that the cardinality is correctly captured in the model
because it determines the detection of fact query subjects and it is used to avoid
double-counting factual data.
When generating queries, IBM Cognos software follows these basic rules to apply
cardinality:
v Cardinality is applied in the context of a query.
v 1 to n cardinality implies fact data on the n side and implies dimension data on
the 1 side.
v A query subject may behave as a fact query subject or as a dimensional query
subject, depending on the relationships that are required to answer a particular
query.

Sparse data
When modeling for analysis or reporting, it is important to consider the nature of
the business questions versus the nature of the data source.
A common scenario is that a relationship between a dimension and a fact table in a
star schema is optional. This means that not every dimensional member is
mandatory in the fact table. OLAP engines compensate for this by inserting an
appropriate value when creating the OLAP structure for any dimensional
intersection points that do not have data.
For example, an Analysis Studio user wants to create this report:

Chapter 5. Modeling relational metadata

71

Region

2005

Canada

2006
1,000,000

Mexico

500,000

750,000

United States

1,000,000

1,250,000

When modeling, it is common to override optional relationships between
dimensions and facts for improved performance. However, when performing
analysis or reporting on sparse data where you require information about
dimensional members that have no facts, outer joins must be enabled to ensure
that data is returned for valid dimensional intersection points.
To enable outer joins, do the following:
v Check with your database administrator to ensure that the data source can
support full outer joins.
v Import metadata with outer joins enabled.

Modifying a relationship
After you import data or create a relationship in IBM Cognos Framework Manager,
you can rename the relationship and redefine cardinality.
You can create custom relationship expressions by selecting an operator from the
list or by manually changing the expression in the expression editor.
You can also create a complex expression for the relationship.
You can view the relationships that already exist for an object by selecting the
object and clicking Launch Context Explorer from the Tools menu.

Procedure
1. Click a relationship and, click Actions, Edit Definition.
2. To modify existing elements, on the Relationship Expression tab, select the
query items, cardinalities, and operator you want.
The query items must have the same data type.
3. To create an additional join, on the Relationship Expression tab, click New
Link, and define the new relationship.
4. To test the relationship, on the Relationship SQL tab, identify the number of
rows you want returned and click Test.
5. Click OK.
If your metadata is from an OLAP data source, click Close.

Creating complex expressions for a relationship
You can create complex expressions for relationships by using functions,
parameters, and objects from the model.

Procedure
1. Click a relationship and, click Actions, Edit Definition.
2. On the Relationship Expression tab, click the ellipses(...) button next to the
Expression box.

72

IBM Cognos Framework Manager Version 10.1.1: User Guide

3. Define the expression.
If you insert session parameters or prompts and you want to specify the values
.

that they represent when you test the expression, click the options button
4. Click OK.

Creating relationships
You create a relationship to join logically related objects that your users want to
combine in a single report. This is useful for relationships between objects that
were not selected during metadata import, were not joined in the data source, or
are from multiple sources.
You can directly create a relationship between the query items.
You can also create a complex expression for the relationship.
You can also use IBM Cognos Framework Manager to automatically generate
relationships between objects based on selected criteria.
You can view the relationships that already exist for an object by selecting the
object and clicking Launch Context Explorer from the Tools menu.

Procedure
1. Ctrl+click one or two dimensions, query subjects, or query items.
2. Click Actions, Create, Relationship.
If this relationship is a valid target for a relationship shortcut, Framework
Manager asks if you want to create a shortcut to that relationship. For more
information, see “Creating a relationship shortcut.”
3. Click OK.
The Relationship Definition dialog box displays. You can use this dialog box
to modify the relationship.

Creating a relationship shortcut
A relationship shortcut is a pointer to an existing relationship. You can use
relationship shortcuts to reuse the definition of an existing relationship. Any
changes to the source relationship are automatically reflected in the shortcut. You
can also use relationship shortcuts to resolve ambiguous relationships between
query subjects.
IBM Cognos Framework Manager asks whether you want to create a relationship
shortcut whenever you create a relationship and both of the following conditions
apply:
v At least one end for the new relationship is a shortcut.
v A relationship exists between the original objects.

Procedure
1. Ctrl+click the objects that you want to participate in the relationship shortcut.
2. Click Actions, Create, Relationship.
Framework Manager asks if you want to create a shortcut to that relationship.
3. Click Yes.
A list displays of all relationships in which one end is a model object and the
other end is either another model object or a shortcut to another model object.
Chapter 5. Modeling relational metadata

73

4. To retrieve all relationships in which both ends can be either a model object or
a shortcut to a model object, click Find All.
5. Click the relationship that you want to be the target of the relationship
shortcut.
6. Click OK.

Detecting and generating relationships
You can use IBM Cognos Framework Manager to detect and generate relationships
between two or more existing objects in your model. This is useful when you
import metadata in stages, or when you want to change the criteria that apply to
existing relationships, such as whether they include outer joins.
When importing star schema metadata, avoid generating relationships based on
matching column or query item names unless you have naming conventions in
place. Data warehouses often apply naming standards to columns, such as
surr_key as the default column name for surrogate keys in dimensions. In this
case, generating relationships that are based on matching column names generates
inappropriate relationships between all dimension tables.

Procedure
1. Ctrl+click two or more objects.
2. Click Tools, Detect Relationships.
3. Select the rules you want to apply to each pair of tables.
Rule

Result

Use primary and foreign keys

Creates joins that are based on primary key
and foreign key relationships. The query
item names do not have to match.

Use matching query item names that
represent uniquely indexed columns

Creates joins between query items whose
names and data types match, if one or both
of the underlying columns are uniquely
indexed.

Use matching query item names

Creates joins between query items whose
names and data types match. This generates
as many relationships as possible.

4. Indicate whether you want Framework Manager to detect and generate
relationships between
v The selected objects
v Each selected object and every object in the project that is not selected
v The selected objects and every other object in the project
5. Identify whether you want Framework Manager to create outer joins or inner
joins based on outer joins that exist in the data source.
6. If you want to disable the automatic prevention of double-counting, convert all
n cardinalities to 1 by clearing the Fact detection enabled check box.
For more information, see Chapter 9, “Guidelines for Modeling Metadata,” on
page 299.
7. Click OK.

74

IBM Cognos Framework Manager Version 10.1.1: User Guide

Query subjects
A query subject is a set of query items that have an inherent relationship.
You use IBM Cognos Framework Manager to modify query subjects to optimize
and customize the data that they retrieve. For example, you can add filters or
calculations. When you change the definition of a query subject, Framework
Manager regenerates the associated query items, ensuring that any changes to
query subject properties are reflected in all query items for that query subject.
There are different types of query subjects in Framework Manager:
v Data source query subjects
v Model query subjects
v Stored procedure query subjects
You may also be interested in “Query Subjects vs. Dimensions” on page 312.

Data source query subjects
Query subjects that are based on relational metadata are defined by SQL
statements that describe how to retrieve data from the data source.
Data source query subjects directly reference data in a single data source. IBM
Cognos Framework Manager automatically creates a data source query subject for
each table and view that you import into your model.
For example, you import the Employee detail fact table from the Great Outdoors
Warehouse sample database. Framework Manager then creates a query subject
using the following SQL statement:
Select * from [go_data_warehouse].EMPLOYEE_DETAIL_FACT

Framework Manager generates query subjects that represent tabular data from the
data source. For example, a query subject that references an entire table contains
query items that represent each column in the table. If the SQL selects only specific
columns, only those columns are represented as query items.
Each data source query subject can reference data from only one data source at a
time. However, the advantage of data source query subjects is that you can directly
edit the SQL that defines the data to be retrieved. This means that you can insert
parameters that control the data that the query retrieves and create query subjects
based on arbitrary SQL.
You may have created SQL statements for query subjects without enclosing
references to columns and tables in quotes. This works in relational data source
environments that do not use a case-sensitive lookup against the metadata tables
they parse. The SQL statement for the query subject may be Cognos SQL, native
SQL, or pass-through SQL. Native and pass-through SQL statements must be
completely self-contained and must not reference anything outside that SQL, such
as database prompts, variables, or native formatting that would normally be
supplied by the calling application. Cognos SQL statements, however, are analyzed
using metadata from either the model or the relational data source. By default,
Cognos SQL is case-sensitive, so it looks up metadata using the names as they
display in the SQL statement.

Chapter 5. Modeling relational metadata

75

To use multiple data sources for a query subject, use a model query subject that
accesses the data source query subjects or other model query subjects.

Creating data source query subjects
Data source query subjects directly reference data in a single data source. IBM
Cognos Framework Manager automatically creates a data source query subject for
each table and view that you import into your model. You can create additional
data source query subjects.
You can add any combination of objects to a query subject, such as query items,
other query subjects, or dimensions. You can add stand-alone calculations and
filters, and you can also embed calculations and filters in the query subject.
You can also create model query subjects, which are based on metadata that exists
in your model, and stored procedure query subjects, which are generated from the
stored procedures in a relational data source.

Procedure
1. Select the namespace folder, and click Actions, Create, Query Subject.
2. In the Name box, type a name for the new query subject.
3. Click Data Source, OK.
4. Complete all the steps in the New Query Subject wizard.
To ensure that the data source is uniquely identified for a data source query
subject, do not exit the wizard before the Finish button displays.
5. Click Finish.
6. Right-click the query subject you created and click Edit Definition.
7. Click the SQL tab, and from the Available database objects box, drag objects
to the SQL box.
If your project contains multiple data sources and you want to add objects
from different data sources to the query subject, click Insert Data Source,
select the required data source, and click OK.
You can also insert a macro, embed a calculation, and embed a filter. For more
information, see “Creating calculations” on page 142 or“Creating filters” on
page 144.
8. Choose the action you want:
Goal

Action

Provide control over granularity

Click the Determinants tab. See
“Determinants” on page 82.

Test the query subject

Click the Test tab. See “Testing query
subjects or query sets” on page 90.

View the SQL

Click the Query Information tab.
See“Editing the SQL” on page 95.

View the system tables from the data source

Select the Show System Objects check box.

9. Click OK.
A warning displays if any modifications invalidated relationships, other query
subjects, calculations, or filters.

76

IBM Cognos Framework Manager Version 10.1.1: User Guide

10. Ensure that the Usage and Regular Aggregate properties are set correctly. See
“Modifying how query items are aggregated” on page 128.

Model query subjects
Model query subjects are not generated directly from a data source but are based
on query items in other query subjects or dimensions, including other model query
subjects. By using model query subjects, you can create a more abstract,
business-oriented view of a data source.
Usually, model query subjects are created in the business view, not the import
view. For information about the business view, see “Organizing models” on page
164.
Because model query subjects are based on the metadata in your model, they let
you
v Reuse complex SQL statements that exist in the model
v Reference objects from different data sources in the same query subject
If you import a model query subject from another model, the model query subject
will not work unless you also import the data source query subjects that the model
query subject references.
If you want to edit the SQL, you must convert the model query subject into a data
source query subject.

Creating model query subject for relational metadata
Model query subjects are based on query items in other query subjects or
dimensions, including other model query subjects. By using model query subjects,
you can create a more abstract, business-oriented view of a data source.
You can add any combination of objects to a query subject, such as query items,
other query subjects, or dimensions. You can add stand-alone calculations and
filters, and you can also embed calculations and filters in the query subject.
You can create a new model query subject by merging existing query subjects and
query items “Creating model query subjects based on existing objects” on page 85.
You can also create data source query subjects, which directly reference data in a
single data source “Data source query subjects” on page 75, and stored procedure
query subjects, which are generated from the stored procedures in a relational data
source “Stored procedure query subjects” on page 78.
When you use a model query subject in the IBM Cognos studios, IBM Cognos BI
uses the relationships you have defined for the model query subject, not the
relationships defined for the underlying data source query subjects. If you want to
ensure that the relationships defined for the underlying data source query subjects
are used, do not define relationships or determinants for the model query subject.

Procedure
1.
2.
3.
4.

Select the namespace folder, and click Actions, Create, Query Subject.
In the Name box, type a name for the new query subject.
Click Model, OK.
Click the Query Subject Definition tab.

Chapter 5. Modeling relational metadata

77

5. To add items to the model query subject, drag items from the Available Model
Objects box to the Query Items and Calculations box.
You can change the order of items and calculations. However, if the query
subject contains a query item folder, you can change the order only in the
Project Viewer.
6. You can also embed a filter.
If you add calculations or filters to a model query subject, Framework Manager
must go to the data source instead of simply accessing the model.
7. If you want to test the query subject, click the Test tab.
8. Click OK.
A warning displays if any modifications invalidated relationships, other query
subjects, calculations, or filters.
9. Ensure that the Usage and Regular Aggregate properties are set correctly.

Results
You may be interested in the following related topics:
v Embedded calculations “Create a calculation (SAP BW)” on page 221
v Embedded filters “Creating a filter (SAP BW)” on page 223
v Testing and setting test options “Testing a dimension or other object (SAP BW)”
on page 199
v Modifying the properties for multiple query subjects at the same time
“Replacing multiple property values” on page 24

Stored procedure query subjects
Stored procedure query subjects are generated when you import a procedure from
a relational data source. IBM Cognos Framework Manager supports only
user-defined stored procedures. System stored procedures are not supported.
The procedure must be run in Framework Manager to get a description of the
result set that the procedure may return.
The stored procedure must return a single uniform result set. IBM Cognos BI
supports only the first result set that is returned. If the procedure could
conditionally return a different result set, the format must be consistent with the
one used to define the metadata in Framework Manager.
Each result set must return the same form, such as the same number, types, and
names of columns. Overloaded signatures are supported by IBM Cognos BI, but
each procedure must be defined as a uniquely named procedure with a separate
query subject for each result set.
Output parameters are not supported.
After you import or create a stored procedure query subject, it displays as a broken
object. You must run it to validate the underlying stored procedure and specify the
projection list. Static metadata often does not exist for the stored procedure in the
relational data source that describes what a result set may look like. The result set
may be known only at run time. When a stored procedure is updated in the data
source, running the stored procedure in Framework Manager updates the query
subject using the newly generated query items.

78

IBM Cognos Framework Manager Version 10.1.1: User Guide

Sometimes functions are imported as stored procedure query subjects. Review the
stored procedure definition to determine what the procedure expects to be passed
and what it attempts to return. Edit and test each stored procedure query subject
that you think could be a function. If the test fails, the query subject is a function
and must be deleted.
For more information, see “Creating or modifying stored procedure query
subjects.”

Stored procedures from Informix data sources
If you have stored procedures from Informix Dynamic or Parallel Server data
sources, you must edit the parameters. Refer to the original source of the stored
procedures to ensure that they are mapped correctly.
Informix 7.x and 8.x provide only the name of the stored procedure to Framework
Manager. You must provide all parameters, such as the parameter name, data type,
mode, size, precision, scale, and value so that a result set can be obtained. Informix
9.x provides metadata for stored procedures and user defined functions with
default parameter values. Check all parameters before using them, especially the
mode attribute.
Informix functions are imported as stored procedures. After you import them, you
must change them to functions by clicking the f(x) button in the Edit Definition
dialog box. This button is enabled only for these functions. Then select the
argument that represents the results or use the values obtained from the test
results.

Stored procedures from Composite Information Server
If you have stored procedures from Composite Information server, refer to the
original source of the stored procedures to ensure that they are mapped correctly.
Composite functions are imported as stored procedures. After you import them,
you must change them to functions by clicking the f(x) button in the Edit
Definition dialog box. This button is enabled only for these functions. Then select
the argument that represents the results or use the values obtained from the test
results.

Creating or modifying stored procedure query subjects
After you import or create a stored procedure query subject, you can modify it. To
avoid inconsistencies, the modified query subject should return the same result set
structure as the original stored procedure.
IBM Cognos Framework Manager supports only user-defined stored procedures.
System stored procedures are not supported.
There are different types of stored procedures:

Chapter 5. Modeling relational metadata

79

Type of Stored Procedure

Description

Data Query

Issues a read-only transaction
If you have a stored procedure with its type
set to Data Query, the stored procedure
issues a read-only transaction. When you
run the stored procedure in Event Studio, an
error message says that the stored procedure
wants to update the database. The reason for
the error is that the stored procedure
contains a passive transaction that is
supported by the underlying database. The
solution is to click OK so that the stored
procedure updates the database. No other
action is required.

Data Modification

Writes a record to the data source. Use this
type when you want to use the stored
procedure in Event Studio.
If you want Event Studio users to be able to
select a parameter in a task, you must put
quotation marks around the parameter.
Warning: Testing a data modification stored
procedure in the Edit Definition dialog box
results in data being written to the data
source. You cannot roll back transactions to
the data source in Framework Manager. If
undesired data is written to the data source
as a result of testing the stored procedure, a
rollback can be done by the database
administrator if the data source is
configured to support it. To test the stored
procedure without data being written to the
data source, click Test from the Tools menu.

You can also create data source query subjects, which directly reference data in a
single data source “Data source query subjects” on page 75, and model query
subjects, which are based on metadata that exists in your model “Model query
subjects” on page 77.

Procedure
1. Do the following:
Goal

Action

Create a stored procedure query subject

Select the namespace folder and, from the
Actions menu, click Create, Query Subject.
In the Name box, type a name for the new
query subject.
Click Stored Procedure, and click OK.
Complete all the steps in the New Query
Subject wizard.

80

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Modify a stored procedure query subject

Select the stored procedure query subject
that you want to modify.
From the Actions menu, click Edit
Definition.

2. Click the Definition tab and choose the action that you want.
Goal

Action

Use a different stored procedure

In the Stored Procedure Name box, type the
name of the stored procedure.

Change the type of the stored procedure

From the Type box, select Data Query or
Data Modification.

Change which data source the stored
procedure is in

Click the ellipsis (...) button next to the Data
Source box.
When you import a stored procedure, a new
data source is created. You can point to the
original data source and delete the new one.

Edit an argument

Click the argument and click the ellipsis (...)
button.
The Syntax box in the Query Subject
Definition dialog box shows the correct
syntax to use.

Generate the projected query items

Click the Test tab. See “Testing query
subjects or query sets” on page 90.

3. Click OK.
Framework Manager runs the stored procedure and, if the query subject
returns a result set, validates the query subject.
If the stored procedure does not return a result set, the query subject becomes
an invalid query subject if saved in the model. If the invalid query subject is
included in the published package, the invalid query subject cannot be used in
a report.
4. Ensure that the Usage and Regular Aggregate properties are set correctly for
each newly created query item.
For example, a query item may be set as a fact when it is an identifier.

Results
You can update the stored procedure query subject if the data source changes. See
“Updating query subjects” on page 93.

Example - using prompts with a stored procedure
If you define prompts for stored procedure variables, your users can set the
variables in reports.

Chapter 5. Modeling relational metadata

81

Procedure
1. Create a stored procedure query subject that uses the sp_FIND_ORDER_DATE
stored procedure.
The Query Subject Definition dialog box displays.
2. On the Definition tab, select the @order_number argument, and click the ellipsis
(...) button.
3. In the Value box, type the following macro syntax and then click OK:
#prompt(’Order Number’,’integer’)#
Note: Framework Manager removes anything that is outside the number signs
when running the macro.
4. If you want to test the prompt for the variable, do the following:
v Click Test, Test Sample.
The Prompt Values dialog box displays.
v In the Name column, click Order Number.
v In the Value field, type 1234 and click OK.
One record is returned, showing the date for Order Number 1234.
Framework Manager uses this value for the duration of the current session
or until you clear the prompt value.
5. Click OK.

Determinants
Determinants reflect granularity by representing subsets or groups of data in a
query subject and are used to ensure correct aggregation of this repeated data.
Determinants are most closely related to the concept of keys and indexes in the
data source and are imported based on unique key and index information in the
data source. We recommend that you always review the determinants that are
imported and, if necessary, modify them or create additional ones. By modifying
determinants, you can override the index and key information in your data source,
replacing it with information that is better aligned with your reporting and
analysis needs. By adding determinants, you can represent groups of repeated data
that are relevant for your application.
An example of a unique determinant is Day in the Time example below. An
example of a non-unique determinant is Month; the key in Month is repeated for
the number of days in a particular month. When you define a non-unique
determinant, you should specify Group By. This indicates to IBM Cognos software
that when the keys or attributes associated with that determinant are repeated in
the data, it should apply aggregate functions and grouping to avoid
double-counting. It is not recommended that you specify determinants that have
both Uniquely Identified and Group By selected or have neither selected.
Year Key

Month Key

Month Name

Day Key

Day Name

2006

200601

January 06

20060101

Sunday, January
1, 2006

2006

200601

January 06

20060102

Monday, January
2, 2006

You can define three determinants for this data set as follows -- two Group By
determinants (Year and Month) and one unique determinant (Day). The concept is
similar but not identical to the concept of levels and hierarchies.

82

IBM Cognos Framework Manager Version 10.1.1: User Guide

Name of the
Determinant

Key

Attributes

Uniquely
Identified

Group By

Year

Year Key

None

No

Yes

Month

Month Key

Month Name

No

Yes

Day

Day Key

Day Name

Yes

No

Month Key
Month Name
Year Key

In this case, we use only one key for each determinant because each key contains
enough information to identify a group within the data. Often Month is a
challenge if the key does not contain enough information to clarify which year the
month belongs to. In this case, however, the Month key includes the Year key and
so, by itself, is enough to identify months as a sub-grouping of years.
Note: While you can create a determinant that groups months without the context
of years, this is a less common choice for reporting because all data for February of
all years would be grouped together instead of all data for February 2006 being
grouped together.

When to Use Determinants
While determinants can be used to solve a variety of problems related to data
granularity, you should always use them in the following primary cases:
v A query subject that behaves as a dimension has multiple levels of granularity
and will be joined on different sets of keys to fact data.
For example, Time has multiple levels, and it is joined to Inventory on the
Month Key and to Sales on the Day Key. For more information, see
“Multiple-fact, Multiple-grain Queries” on page 306.
v There is a need to count or perform other aggregate functions on a key or
attribute that is repeated.
For example, Time has a Month Key and an attribute, Days in the month, that is
repeated for each day. If you want to use Days in the month in a report, you do
not want the sum of Days in the month for each day in the month. Instead, you
want the unique value of Days in the month for the chosen Month Key. In SQL,
that is XMIN(Days in the month for Month_Key). There is also a Group by clause
in the Cognos SQL.
There are less common cases when you need to use determinants:
v You want to uniquely identify the row of data when retrieving text BLOB data
from the data source.
Querying blobs requires additional key or index type information. If this
information is not present in the data source, you can add it using determinants.
Override the determinants imported from the data source that conflict with
relationships created for reporting.
You cannot use multiple-segment keys when the query subject accesses blob
data. With summary queries, blob data must be retrieved separately from the
summary portion of the query. To do this, you need a key that uniquely
identifies the row and the key must not have multiple segments.

Chapter 5. Modeling relational metadata

83

v A join is specified that uses fewer keys than a unique determinant that is
specified for a query subject.
If your join is built on a subset of the columns that are referenced by the keys of
a unique determinant on the 0..1 or 1..1 side of the relationships, there will be
a conflict. Resolve this conflict by modifying the relationship to fully agree with
the determinant or by modifying the determinant to support the relationship.
v You want to override the determinants imported from the data source that
conflict with relationships created for reporting.
For example, there are determinants on two query subjects for multiple columns
but the relationship between the query subjects uses only a subset of these
columns. Modify the determinant information of the query subject if it is not
appropriate to use the additional columns in the relationship.

Specifying determinants
Determinants provide control over granularity for query subjects.
If a query subject has determinants, each query item of the query subject must be
included in one of the determinants.
Determinants are processed in the order in which they are specified in the model.
You can change the order of the determinants. If a query subject has more than one
determinant, the first one that covers all the requested items is used. Determinants
are evaluated in the context of each required join as well as the context of
requested items.
Data source query subjects are imported with determinants defined for them.
These default determinants are generated based on keys and indexes in the data
source.
Model query subjects do not have determinants defined for them automatically. If
determinants are needed, you must define them manually.
Stored procedure query subjects do not have determinants.
You cannot use determinants with user-entered SQL that was specified in a query
defined in Report Studio.

Procedure
1. Click the query subject you want, and click Actions, Edit Definition.
2. Click the Determinants tab.
3. Click Add under the Determinants box.
The entry New Determinant displays in the box. To give this entry a
meaningful name, right-click it, and click Rename.
4. To define a key, right-click a query item in the Available items box and click
Add as Key.
Tip: You can also drag query items to the Key box.
5. To identify which query items should be associated with this determinant,
right-click query items in the Available items box, and click Add as Attributes.
Tip: You can also drag query items to the Attributes box.
You can have a determinant with no attributes defined for it. Framework
Manager uses this type of determinant to indicate which query items are
indexed.

84

IBM Cognos Framework Manager Version 10.1.1: User Guide

6. To specify that the selected determinant should be used as the unique identifier,
select the Uniquely Identified check box.
Do this only if the data in this item is unique for every row in the underlying
data source.
You can specify more than one unique determinant if they are truly unique. At
query time, the relationship being used will determine which unique
determinant to use.
7. Select the Group By check box to indicate that when keys or attributes
associated with that determinant are repeated in the data, IBM Cognos BI
should apply aggregate functions and grouping to avoid double-counting.
8. If you want to change the order of the determinants, use the arrow buttons.
Determinants are processed in the order in which they are specified in the
model.
9. Click OK.

Results
For more information, see “Determinants” on page 302 and Chapter 10, “The SQL
Generated by IBM Cognos Software,” on page 335.

The effect of determinants on SQL
It is important to understand the effect that determinants have on the SQL that is
generated. Determinants affect the grouping and aggregation of data, including
other query subjects that have relationships with the query subject as well as the
query subject itself.
For example, consider the following information. Each Product Line contains many
occurrences of Product Type. Each Product Type contains many occurrences of
Product. For Product, Product Key is a surrogate key and Product Number is a
business key that is used as an attribute. Data joined on Product Key is aggregated
correctly when reported by Product Line or Product Type or both.
Uniquely
identified

Determinant

Key

Group by

Product line

Product line
code

Yes

Product line

Product type

Product type
code

Yes

Product type

Product

Product key

Yes

Attributes

Cost
Margin
Product name
Product number

Creating model query subjects based on existing objects
You can select existing model objects and merge them into a new model query
subject. This means that you can reuse existing metadata to quickly create query
subjects.
Information about SAP BW model query subjects displays in a different topic
“Creating model query subjects based on existing objects (SAP BW)” on page 203.
Chapter 5. Modeling relational metadata

85

About this task
The objects that you can merge include
v Relational data source query subjects and their shortcuts
v Model query subjects and their shortcuts
v Query items, filters, and calculations in model and data source query subjects
v Relationships and relationship shortcuts between model and data source query
subjects
You can merge any number of the same type of objects into a new query in a
single operation. The merge always creates a new model query subject.
The new query subject contains any filters that exist in the original query subject.

Procedure
1. Ctrl+click the objects that you want to merge into a single query subject.
2. Click Actions, Merge in New Query Subject.

Viewing related objects
You can hide an object in the Context Explorer. You can also change the layout, fit
all objects in the Context Explorer, zoom in and out, print, preview diagrams
before printing, and change the page setup.
You can also use the Dimension Map tab to explore dimensions.

Procedure
1. Select one or more objects that you want to explore.
2. From the Tools menu, click Launch Context Explorer.
3. To see the connected objects, click one or more objects and click the appropriate
button.
Goal

Button

View the objects that are related to the selected object.
View the immediate references for the objects.
View all references for the objects.

4. If you want to see details about an object, such as its relationships and query
items, right-click the object, click Navigate Diagram, Diagram Settings, and
then select the details you want.

Creating query sets
Not all data types are supported. Generally, sets are not permitted on BFILE, BLOB,
CLOB, LONG, and VARRAY data types, or on nested table columns.
A query subject can be defined using the set operations of union, intersect, or
except. You define a query set to merge, compare, or equate similar data from
different data sources. Query sets are useful when modeling data from disparate
systems.

86

IBM Cognos Framework Manager Version 10.1.1: User Guide

There are many reasons for creating a query set. A query set may be needed to
create a conformed dimension across disparate data sources. Or, you may want to
compare the contents of two queries to determine whether the queries contain the
same data; this is common in test environments. Or, you may want to compare
queries that return nulls. Or, you want to handle a fact-to-fact relationship that is
truly a one-to-one relationship. (If it is not truly a one-to-one relationship, create a
multiple-grain query “Multiple-fact, Multiple-grain Queries” on page 306.)
A query set can consist of only two query subjects. You can create a query set that
merges two other query sets together. A query set can contain
v All the rows of two query subjects (union operation).
For example, your company recently acquired another company and you need a
complete list of all customers.
v Only the rows that are shared between the query subjects (intersect operation).
For example, you want to find out which staff members are also managers.
v Only the rows that exist in the first query subject and not in the second query
subject in the query set (except operation).
For example, you want to highlight the differences between where your
products were sold this year and ten years ago.
The names of the items in the projection list default to the items assigned to the
first query subject in the set operation.
Relationships between the two query subjects in the query set and other query
subjects are not included in the query set.
Reports show different results depending on which operator is used. For example,
you have two query subjects with the names of various employees.
The first query subject contains these rows:
Row

Value

1

Jane

2

John

3

John

4

Michael

5

Michael

The second query subject contains these rows:
Row

Value

1

Jane

2

John

Chapter 5. Modeling relational metadata

87

Row

Value

3

John

4

Patrick

You create a query set. You see different results depending on the operator you
use.
Operator

Result

Notes

Union

Jane, John, Michael, Patrick

All items are shown. Values
are not duplicated.

Intersect

Jane, John

Items in common are shown.
Values are not duplicated.

Except

Michael

Items that are not common
are shown. Values are not
duplicated.
If the second query subject
were listed first in the query
set, the result would be
Patrick.

Union All

Jane, Jane, John, John, John,
John, Michael, Michael,
Patrick

All items are shown. Values
are duplicated.

Intersect All

Jane, John, John

Items in common are shown.
Values are duplicated.

Except All

Michael, Michael

Items that are not common
are shown. Values are
duplicated.
If the second query subject
were listed first in the query
set, the result would be
Patrick.

Steps to create a query set
Procedure
1. Select two query subjects that meet these requirements:
v Each query subject must have the same number of columns.
v Columns must be in the same order.
v Columns must have the same or similar data types.
The data types do not need to be exactly the same if those in the second
result set can be automatically converted by the data source to data types
compatible with those in the first result set.

88

IBM Cognos Framework Manager Version 10.1.1: User Guide

For example, one query subject contains country data and uses int as the
data type. Another query subject contains country data and uses smallint as
the data type. Framework Manager imports these query subjects as int16
and int32 and performs a set operation.
2. Click Actions, Define Query Set.
3. Click the Definition tab.
4. In the Name box, give the query set a name.
5. Review the Query Subject boxes to ensure the order that the query subjects
will display in the Select clause is correct.
The order could be important if you want a specific set of column names
(aliases) that displays in only one of the query subjects. If the order is incorrect,
cancel this query set and start again.
For union and intersect, the order of the query subjects does not matter. You
can change the order and receive the same answer. For except, the order of the
query subjects does matter.
6. Use the Operator box to define how the rows of the query subjects are
combined.
Option

Description

Union

Retrieves all unique rows from both sets.
Duplicates are removed.

Intersect

Retrieves rows that are common between the
query subjects.

Except

Retrieves rows that exist in the first query
subject and not in the second query subject.

7. To create a Union All, Intersect All, or Except All operation, clear the Remove
Duplicate Row check box.
8. Choose the action that that you want.
Goal

Action

Work with the calculations that are
embedded in the query subjects

Click the Calculations tab.

Work with the filters that are embedded in
the query subjects

Click the Filters tab.

Test the query set

Click the Test tab.

You can add or edit the calculations and
change the order of the calculations.

You can add or edit the filters, change the
order of the filters, and change the usage of
filters.

9. Click OK.

Results
You may be interested in the following related topics:
v Embedded calculations “Creating calculations” on page 142
v Embedded filters “Creating filters” on page 144
v Determinants “Determinants” on page 82
v Testing the query set or changing the test settings “Testing query subjects or
query sets” on page 90
Chapter 5. Modeling relational metadata

89

Testing query subjects or query sets
Testing Objects
You can see the results that an object returns by testing it. You can test when
creating an object or later on. The objects you can test are dimensions, query
subjects, query sets, hierarchies, levels, calculations, and query items.
You can view the data that will display in a specific report before publishing a
package by selecting and testing the objects that will display in the report. This
makes it easier to debug a model and to verify that the model meets the reporting
requirements because you do not need to create and publish packages first.
When you test an object, IBM Cognos Framework Manager returns sample data.
Formatting is not applied to the sample data. If you must test formatting, you
must publish the package and view the objects in the IBM Cognos studios.
You may see different results depending on what you test. For example, if you use
the expression editor to test a calculation that is embedded in a query subject,
Framework Manager tests only the expression, not the item, so the aggregation
setting for the query item is not applied to the test. Testing the entire query
subject, which includes the calculation, gives a different result because the
aggregation setting is applied. For example, if the aggregation setting is
summarize, you can see a smaller number of rows in the test.
When you test a measure dimension, the SQL uses aggregates not the measures.
If you test a child segment of a segmented model, you may see an error if an
object you are testing refers to an object in another child segment and the
referenced object is not available to the project you are in. Check that the parent
model contains all the objects and that this error message does not display when
you test the parent model.
Governor settings may affect the testing results. For more information, see
“Governors” on page 283.
You can change existing test settings to customize the results that the test shows.
For example, in addition to other settings, you can control the number of rows
returned.

Steps when creating or modifying the object
Procedure
1. Select the object you want to test.
2. Click Actions, Edit Definition, and then click the Test or Query Information
tab.
The Test Results box is initially empty until you run the query.
Any result sets that contain binary large objects are shown as [blob].
3. To run the query and bring back all the test results, click Test Sample.
4. If you want to add a count of the rows, click Total Rows.
5. If you want to apply the Regular Aggregate property of the query item or the
Aggregate Rules property of a semi-additive measure that is referenced in the
expression, select the Auto Sum check box.
If you clear this check box, a row is returned for each row in the result set of
the query.

90

IBM Cognos Framework Manager Version 10.1.1: User Guide

6. If you want to obtain more information about the query results, click the Query
Information tab.
7. Click OK.

Steps to view the data that will display in a specific report
Procedure
1.
2.
3.
4.

Select the objects that will display in the report.
Click Tools, Test.
To run the query and bring back all the test results, click Test Sample.
To view details about any problem that is found, click the Query Information
tab.
If you do not see the results of the query in the test window, the data from
your data source may exceed the value of one of the governors. The query
stops at the specified limit, but the test result window does not contain any
data. Tip: Set each governor to zero.

Changing the test settings
You can customize the tests by changing the test settings.

Procedure
1. Select the object that you want.
2. Click Actions, Edit Definition, and then click the Test tab or the Query
Information tab.
3. Click Options, Test Settings .
4. Choose the options that you want.
Goal

Action

Persistence

Retrieve all data and show a
specified number of rows

Select the Restrict the
maximum number of rows
to be returned check box
and type the required
number of rows.

This setting applies to all
dimensions, query subjects,
and query sets in the model.

This setting does not
improve performance for
retrieving data when testing
dimensions, query subjects,
and query sets.
Specify the level of detail

This setting is saved and
used in your next session
with any model.

This setting is saved and
Drag the Level of
used in your next session
Information shown in
Results Information slider to with this model.
the location that represents
the amount of detail you
require.

Temporarily override session In the Session Parameters
parameters
box, click Set.
The Session Parameters
dialog box displays.

The override values are not
saved with the model. This
setting is for your current
session only.

Chapter 5. Modeling relational metadata

91

Goal

Action

Persistence

Apply relevant design mode
filters

Select the Apply all relevant This setting is saved and
design mode filters when
used in your next session
testing check box.
with any model.
This applies all relevant
filters whose usage is set to
design mode in another
dimension, query subject, or
query set.

Apply a security filter

In the Security Filters box,
click Edit.

This setting is saved and
used in your next session
with this model.

Change the prompt values

In The Current Prompt
Values box, click Prompts.

The prompt values are not
saved with the model.

The Model Prompts
Manager dialog box
displays, which shows all
prompts, and their values,
that are in the model.

This setting is for your
current session only.

5. Click OK two times.

Results
You may be interested in the following related topics:
v Setting governors
v Security filters
v Temporarily overriding session parameters
v Changing prompt values
v Working with dimensions
v Working with query subjects

Validating query subjects
You can validate the definition of the query subject without having to open the
Query Subject Definition dialog box. This is useful to do when
v New query items were added to a query subject
v The definition of the underlying query subject has changed
v The parameters of a stored procedure were changed

About this task
Information about validating SAP BW query subjects displays in a different topic
“Validating model query subjects (SAP BW)” on page 203.
The Validate Object command completes an exhaustive check of all query subjects
and ensures that they can run.
What happens in the evaluation process depends on the type of query subject
selected.

92

IBM Cognos Framework Manager Version 10.1.1: User Guide

Type of query subject

Evaluation process

Relational data source query subject

A request based on the derived items is sent
to the relational data source.
The list of data source references is updated.
The physical attributes, such as data type,
are updated as needed.

Model query subject based on relational
metadata

A request based on the derived items is sent
to the data source.
The cached SQL, if available, is updated.
The physical attributes, such as data type,
are updated as needed.

Stored procedure query subject

A request based on the latest parameters of
the stored procedure is sent to the data
source.
The list of derived query items is updated.

You can also update the query subject “Updating query subjects” if it is from a
relational data source, or synchronize the entire project “Synchronizing projects” on
page 280.

Procedure
1. Select the query subject that you want to evaluate.
2. Click Tools, Validate Object.

Results
If you changed the Regular Aggregate property to unsupported, the property is
reset when you evaluate the query subject. If the property is set to any other value,
the property is not changed.

Updating query subjects
If you are using a relational data source, you can choose to update only the query
subjects instead of performing a full project synchronization. You must perform a
project synchronization to synchronize changes in another data source.
The query subject is updated based on the definition in the data source. When you
update a query subject, new metadata is fetched from the data source and query
items are re-synchronized.
You can also evaluate the query subject, if it is from a relational data source
“Validating query subjects” on page 92.
You cannot use the Update Object command for model query subjects.

Chapter 5. Modeling relational metadata

93

Procedure
1. Select one or more query subjects.
2. Click Tools, Update Object.
Tip: You can instead open the Query Subject Definition dialog box, and click
OK.

Converting query subjects into dimensions
You can convert a query subject into a regular dimension or a measure dimension
when you want to use features associated with dimensions, such as defining
hierarchies and levels. A model query subject becomes a model dimension.
While you can convert data source query subjects to data source dimensions, data
source dimensions have limited functionality in comparison to query subjects or
model dimensions. Discontinue using data source dimensions, both regular and
measure. Create new models following the best practices in Chapter 9, “Guidelines
for Modeling Metadata,” on page 299 to use query subjects as the relational
foundation of the model. Define regular and measure dimensions as model objects
based on data source query subjects or model query subjects or both. Guidance on
migration for existing users of data source dimensions will be provided in a future
release.
If the query subject has determinants specified for it, the keys you specified for
each determinant is used to build a hierarchy with a business key for each level.
The determinants form one hierarchy. The first string attribute for each
determinant is used for the business caption. If the caption is not the attribute you
want to use, you must change it manually.
Converting a query subject into a dimension is simply a starting point. Examine
each dimension that is created this way to ensure that it reflects your requirements.
You can also convert a dimension into a query subject “Converting regular
dimensions into query subjects” on page 118.
You cannot use determinants to create separate hierarchies for the dimension. You
must create the separate hierarchies for the dimension after converting the query
subject.
You cannot convert the following to dimensions:
v Query sets
v Stored procedure query subjects
v SAP BW query subjects

Procedure
1. Select the query subjects that you want to convert.
2. ClickActions, Convert to Regular Dimension, or Convert to Measure
Dimension.

Converting model query subjects into data source query
subjects
You can convert a model query subject into a data source query subject if you
want to edit the SQL.

94

IBM Cognos Framework Manager Version 10.1.1: User Guide

Do not convert the model query subject if you want it to reference multiple data
sources.

Procedure
1. Select the model query subject that you want to convert.
2. Click Actions, Convert to Data Source Query Subject.
This command is available only if you have run the query and the Query
Information tab in the Edit Definition dialog box contains SQL.

Editing the SQL
SQL is the industry-standard language for creating, updating, and querying
relational database management systems.
When you edit the definition of a relational data source query subject, you can use
v “Cognos SQL” on page 98
v “Native SQL” on page 99
v

“Pass-through SQL” on page 100

About this task
If you want to edit the SQL of a model query subject, you must copy the SQL for
the model query subject from the Query Information tab and paste it into a new
data source query subject. You can also convert the model query subject into a data
source query subject Do not edit the SQL if you want the model query subject to
reference multiple data sources. See “Converting model query subjects into data
source query subjects” on page 94.
Changing the alias of a column regenerates the query item that represents that
column. Any modifications that you made to the query item are not retained
because IBM Cognos Framework Manager considers it a new query item.
You can add comments to the SQL by using /* before the comment and */ at the
end.
Here is an example:
select country /* this is a multiline
comment
another line
another line
*/

Procedure
1. Click the data source query subject that you want to change.
2. Click Actions, Edit Definition.
3. Click the SQL tab, and drag objects into the SQL box or type in the SQL you
want.
4. Click OK.

Changing the type of SQL
When choosing the type of SQL in which to generate a data source query subject,
you must weigh the following factors and decide which are most important.

Chapter 5. Modeling relational metadata

95

Type

Advantage

Disadvantage

Cognos SQL

Cognos SQL improves query
subject performance; for
example, by removing
unused elements at query
time.

You cannot enter
non-standard SQL.

SQL works on any supported
database.
Native SQL

Pass- Through SQL

Performance is optimized
across all related query
subjects.

You cannot use SQL that the
data source does not support
for subqueries.

You can use SQL that is
specific to your database.

The SQL may not work on a
different database type.

You can enter any SQL
supported by the database.

There is no opportunity for
Framework Manager to
automatically optimize
performance.
The SQL may not work on a
different data source.

Prerequisites for changing to native SQL
If you change an existing query subject to native SQL, you must first ensure that
the SQL reflects the rules that apply to the native data source so that your query
runs properly.
You must do the following:
v Edit existing table names.
Cognos SQL uses a two-part structure to name query subjects. For example,
[gosales].[ProductLine] means that the ProductLine query subject comes from
the gosales database. Therefore, when you switch to native SQL, you must
ensure that all table names include the parent elements required by the data
source vendor.
For information about naming conventions, see “Naming conventions for objects
in a project” on page 27.
v Ensure that the SQL is valid for subqueries.
IBM Cognos Framework Manager processes native SQL query subjects as
subqueries. For example, here is a Cognos SQL query subject:
Select
P.ProductName, P.Margin From Product P

If you change it to native SQL, Framework Manager generates the following
statement:
Select
oracle_plain.ProductName as Productname,
oracle_plain.Margin as Margin
From
(GOSALES1_OR_92_WE...SELECT
P.PRODUCTNAME, P.MARGIN

96

IBM Cognos Framework Manager Version 10.1.1: User Guide

FROM
PRODUCT P}
)oracle_plain

Therefore, you must ensure that the query subject adheres to additional database
restrictions that are imposed on subqueries, such as not using the With clause.
Pass-through SQL does not have the same restrictions. However, the fact that
native SQL is processed as part of a larger query improves its performance.
To test native SQL using a query tool, such as Oracle's SQL*Plus, you must place
the SQL in the From clause of a Select statement. For example, you can use the
following syntax in a query tool:
Select * from () T1

v Assign aliases to derived columns.
Assign alias names to any column whose values are calculated. Here is an
example:
SELECT
Length(Country) as LGTH
FROM Country

v Insert double quotation marks around alias names.
Changing the SQL type of a query subject can change the case of alias names.
When this happens, any query subject that references the changed query item
becomes invalid. To ensure that there is no case change, insert double quotation
marks around the alias, such as
Select
COUNTRY as "test" from COUNTRY

v If a data source query subject contains a macro in the projection list (Select
clause) of the SQL statement, specify an alias in the SQL that matches the
Column Name property of the query item.
An error could occur because the macro evaluates to a column name that is
different from the Column Name property of the corresponding query item. The
result is that the system is unable to locate the item in the projection list.
Projection lists are static.
Assigning an alias ensures that the name of the item in the projection list
remains constant, as the results of evaluating the macro change.
For example, the following query contains a session parameter, runLocale,
whose value specifies which column the query retrieves:
Select
#$ColumnMap{$runLocale}# as
CountryNameAlias
From
[GoSales].Country

Note that the number sign (#) is reserved for macros. Framework Manager
removes anything that is outside the number signs when running the macro.

Procedure
1. Click the query subject that you want to change.
2. Click Actions, Edit Definition, and then click the Query Information tab.
The Test Results box is initially empty until you run the query.
3. Click Options, SQL Settings.
4. Use the SQL Type list to change the type of SQL.
If you are changing the type to native SQL, see the checklist above to ensure
that the SQL reflects the rules that apply to the native data source.
Chapter 5. Modeling relational metadata

97

5.
6.
7.
8.
9.

Click OK.
If you want to see the SQL, click Test Sample.
If you want to see the actual query, click Query.
If you want to see the xml that IBM Cognos BI uses, click Response.
Click OK.

Cognos SQL
By default, IBM Cognos Framework Manager uses Cognos SQL to create and edit
query subjects. Cognos SQL adheres to SQL standards and works with all
relational and tabular data sources. Framework Manager generates the most
optimized SQL possible. In this way, Cognos SQL is preferable.
Because query subjects in Framework Manager are similar to views in databases,
the SQL for each query subject must conform to the SQL standards that apply to
views. For example, you must assign aliases to any column that is empty or whose
name is not unique. This level of conformance means that Cognos SQL behaves
more consistently than vendor-specific SQL, which does not adhere to SQL
standards.
In general, using Cognos SQL is preferable because you can create query subjects
that
v Can contain metadata from multiple data sources.
v Have fewer database restrictions.
v Interact more effectively with IBM Cognos applications.
Constructs of the SQL standard:
If the data source supports it, you can use the With clause with Cognos SQL. The
With clause is used to generate more readable SQL and to let the data source
generate a more optimal plan for data retrieval. The data source can more easily
detect the cases where the same tables must be scanned and can then resolve these
as an inline view or temporary table.
By default, IBM Cognos Framework Manager uses the common table constructor
from the SQL standard when the Use With clause when generating SQL governor
is set.
Use the With clause for better query performance if the request is restricted to
functionality supported by the underlying data source software. When a request
uses functionality that is not supported by the data source, using the With clause
may cause additional decomposition of the query, which can lead to degraded
performance. In this case, not using the With clause may generate a better set of
queries to the underlying data source.
Here is an example of Cognos SQL using derived tables:
SELECT * FROM
(SELECT SNO C1, AVG(QTY) C2, COUNT(*) C3 FROM
SUPPLY
GROUP BY SNO) T1,
(SELECT MAX(QTY) C1 FROM SUPPLY) T2

The following shows how Cognos SQL turns the above example into a With clause:

98

IBM Cognos Framework Manager Version 10.1.1: User Guide

WITH T1 AS (SELECT SNO C1, AVG(QTY) C2, COUNT(*)
C3 FROM
SUPPLY GROUP BY SNO),
T2 AS (SELECT MAX(QTY) C1 FROM SUPPLY)
SELECT *FROM T1, T2

Do not use the With clause for recursive processing.
For more information about the With clause, see “Governors” on page 283.
Data type checking and SQL validation are continually being improved. Because of
this and because not all vendors are completely compliant with the SQL standard,
invalid or ambiguous SQL expressions that previously were passed to the data
source will no longer be passed down. If you have an expression that returns a
data type not specified by the SQL standard, pass the expression to the data source
by using the syntax {expr}. Your users should use the same technique.

Native SQL
Native SQL is the SQL that the data source uses, such as Oracle SQL. Use Native
SQL to pass the SQL statement that you enter to the database. IBM Cognos BI may
add statements to what you enter. You can not use native SQL in a query subject
that references more than one data source in the project.
SQL specified in IBM Cognos Framework Manager and processed by the database,
whether native or pass-through, must be completely self-contained. It must not
reference anything outside that SQL, such as database prompts, variables, or native
formatting that would normally be supplied by the calling application.
If you are comfortable working with a native SQL version, you may want to use it
for query subjects that are based on a single data source. By doing so, you can use
keywords that are not available in Cognos SQL, and copy and paste SQL from
another application into Framework Manager.
When the query is generated, Framework Manager combines the SQL of each
query subject that uses a given data source connection into a single query. This
helps improve the performance of the query. However, because the SQL is being
generated as a series of subqueries, native SQL queries must adhere to any
restrictions that their database vendor places on derived tables.
Here is an example of native SQL that returns a list of employees and managers:
SELECT
lpad(’ ’, (level-1)* 4) ename
EMP_CHART,
level, empno, ename, job, mgr
FROM
emp
CONNECT BY PRIOR
empno = mgr
AND
deptno not in (20,30)
START WITH
mgr IS NULL
ORDER BY
level, job
Chapter 5. Modeling relational metadata

99

Pass-through SQL
Use pass-through SQL when the SQL statement that you enter is not valid inside a
derived table. Pass-through SQL lets you use native SQL without any of the
restrictions that the data source imposes on subqueries. This is because
pass-through SQL query subjects are not processed as subqueries. Instead, the SQL
for each query subject is sent directly to the data source where the query results
are generated.
Because each query subject is sent to the data source as a separate statement rather
than being optimized by IBM Cognos Framework Manager, performance is slower.
Therefore, in choosing between native SQL and pass-through SQL, you must
decide which is more important: performance or using SQL that is not permitted in
a subquery.
Generally, you should use pass-through SQL only if you must create a query
subject that contains constructs that are specific to a data source and that cannot be
used inside a derived table, such as in a With or OrderBy clause.
SQL specified in Framework Manager and processed by the database, whether
native or pass-through, must be completely self-contained. It must not reference
anything outside of that SQL, such as database prompts, variables, or native
formatting that would normally be supplied by the calling application.
For example, here is a systems-oriented report that contains the system date:
SELECT
TO_CHAR(SYSDATE, ’DAY, DDTH MONTH YYYY’)
FROM
SYS.DUAL

Note that the number sign (#) is reserved for macros and that column names must
be unique. Framework Manager removes anything that is outside the number signs
when running the macro.

Changing how the SQL is generated
You can specify how IBM Cognos Framework Manager generates the SQL that
retrieves data from relational data sources for data source query subjects or model
query subjects.
The SQL Generation type of a query subject can be set to either As View or
Minimized. By default, it is set to Minimized.
When the generation type is set to Minimized, the generated SQL contains only
the minimal set of tables and joins needed to obtain values for the selected query
items.
When the generation type is set to As View, Framework Manager generates
queries that contain the full SQL statement that defined the query subject. Use As
View when you want to ensure that the query is run as a block. The SQL is treated
as a view. For example, you want the query to return the same number of rows
each time that it is run.
Using minimized SQL improves performance, resulting in a query that runs
significantly faster. Generating minimized SQL is especially beneficial for query

100

IBM Cognos Framework Manager Version 10.1.1: User Guide

subjects that represent dimension tables. By using a single model query subject to
model a dimension, you can benefit from small SQL queries that run significantly
faster.
For example, the SQL Generation Type of the following query subject is As View.
Note that this query subject contains a nested select statement.
select
New_Query_Subject.COUNTRYCODE as COUNTRYCODE,
New_Query_Subject.EUROINUSESINCE as EUROINUSESINCE
from
(select
CONVERSIONRATE.COUNTRYCODE as COUNTRYCODE, COUNTRY.EUROINUSESINCE as EUROINUSESINCE
from
"2 - GOSales1 - OLE-DB".GOSALES1.dbo.CONVERSIONRATE CONVERSIONRATE,
"2 - GOSales1 - OLE-DB".GOSALES1.dbo.COUNTRY COUNTRY
where
(COUNTRY.SALESCOUNTRYCODE = CONVERSIONRATE.COUNTRYCODE)
) New_Query_Subject

If you change the SQL Generation Type to Minimized, Framework Manager
generates the following simplified SQL:
select
CONVERSIONRATE.COUNTRYCODE as COUNTRYCODE,
COUNTRY.EUROINUSESINCE as EUROINUSESINCE
from
"2 - GOSales1 - OLE-DB".GOSALES1.dbo.CONVERSIONRATE CONVERSIONRATE,
"2 - GOSales1 - OLE-DB".GOSALES1.dbo.COUNTRY COUNTRY
where
(COUNTRY.SALESCOUNTRYCODE = CONVERSIONRATE.COUNTRYCODE)

Minimized SQL works best when the returned result sets of each query item are
equivalent. If there are records in one column that do not correspond to records in
another column, the result of the minimized query produces additional rows. You
can avoid this by setting the SQL Generation Type to As View.
For example, if there are Product Types that are not used by any of the Products
and these Product Types all have a common Product Line, a Product Line is
reported for which there are Product Types, but for which there are no related
Products.

Procedure
1. Click the query subject that you want to change.
2. ClickActions, Edit Definition, and then click the Query Information tab.
The Test Results box is initially empty until you run the query.
3. Click Options, SQL Settings.
4. Set Generate SQL to As View or Minimized.
5. Click OK.
6. If you want to see the SQL, click Test Sample.
7. If you want to see the actual query, click Query.
8. If you want to see the xml that IBM Cognos BI uses, click Response.
9. Click OK.

Model query subjects and SQL types
A model query subject that is based on another model query subject may use the
logic of the parent query subject instead of its own logic. If the child model query

Chapter 5. Modeling relational metadata

101

subject uses the Minimized SQL type, it does not use the logic of the parent. If the
child model query subject uses the As View SQL type, it uses the logic of the
parent.
For example, you create a model query subject named Returned Products, which
shows all return reasons for all products. When you run Returned Products, you
see a list of over 700 items. You then create another model query subject based on
Returned Products that is named Return Reasons. This model query subject
contains only the Return Reason query item. If the SQL type is set to Minimized,
the Return Reasons query subject shows five return reasons when it is run. If the
SQL type is set to As View, the Return Reasons query subject uses the logic of the
Returned Products query subject and shows over 700 items.

Dimensions
A dimension is a broad grouping of data about a major aspect of a business, such
as products, dates, or markets.
The types of dimensions that you can work with in IBM Cognos Framework
Manager are regular dimensions and measure dimensions. In SAP BW, measure
dimensions are called key figures.
For example, in a project for sales analysis, you include these dimensions:
Name

Type

Description

Time

Regular dimension

Dates of sales organized into
years, quarters, months,
weeks, and days when sales
were made

Region

Regular dimension

Locations of sales grouped
into sales regions, countries,
and cities

Product

Regular dimension

Product details organized by
product type, brand, model,
color, and packaging

Customer

Regular dimension

Customer information

Sales

Measure dimension

Purchase details such as
units sold, revenue, and
profit

You must use regular and measure dimensions to enable analysis on your
relational data source. In most data sources, measure dimensions are likely to be
shared by more than one regular dimension. Regular dimensions are often called
shared dimensions. A measure dimension and regular dimensions organized into a
cluster is often referred to as a star schema group but can also be referred to as a
functional or subject area group.
You may also be interested in this topic, “Query Subjects vs. Dimensions” on page
312.

102

IBM Cognos Framework Manager Version 10.1.1: User Guide

Normalized data sources
Normalized or snowflaked data sources often have several tables that describe a
single business concept. For example, a normalized representation of Product may
include four tables related by 1..n relationships. Each Product Line has one or
more Product Types. Each Product Type has one or more Products. Products have
names and descriptions in multiple languages so they exist in the Product
Multilingual lookup table.

One way to simplify the model is to create one model query subject for each
descriptive business concept. Your users may not know the relationship between
the individual query subjects so it is helpful to group them together; in addition,
having to expand each model object and select a query item requires more effort.
The next step for analysis is to create a regular dimension with a level for each
query subject.

Creating regular dimensions
A regular dimension contains descriptive and business key information and
organizes the information in a hierarchy, from the highest level of granularity to
the lowest. It usually has multiple levels and each level requires a key and a
caption. If you do not have a single key for your level, it is recommended that you
create one in a calculation.
Model regular dimensions are based on data source or model query subjects that
are already defined in the model. You must define a business key and a string type
caption for each level. When you verify the model, the absence of business keys
and caption information is detected. Instead of joining model regular dimensions
to measure dimensions, create joins on the underlying query subjects and create a
scope relationship between the regular dimension and the measure dimension.
When creating regular dimensions, you must understand the dimensionality of the
data. You must be able to answer the following questions:
v What are the levels in your dimension?
v What is the order and combination of levels that form hierarchies?
v What are the relationships between the levels?
v What uniquely identifies a level?
Chapter 5. Modeling relational metadata

103

v Which data elements are associated at each level?
v Do you have more than one level of granularity, such as some data is recorded
monthly and some is recorded daily?
v Are foreign keys defined in the data source?
You can specify multiple hierarchies on regular dimensions in IBM Cognos
Framework Manager. Multiple hierarchies for a regular dimension behave as views
of the same query. However, you can use only one hierarchy at a time in a query.
For example, you cannot use one hierarchy in the rows of a crosstab report and
another hierarchy from the same dimension in the columns. If you need both
hierarchies in the same report, you must create two dimensions, one for each
hierarchy. For more information, see “Modeling Dimensions with Multiple
Hierarchies” on page 329.
In addition to creating regular dimensions, you can also merge dimensions into a
single dimension or convert query subjects to dimensions.
Multiple-fact querying is enabled with conformed dimensions.
While you can use data source dimensions, they have limited functionality in
comparison to query subjects or model dimensions. Discontinue using data source
dimensions, both regular and measure. Create new models following the best
practices in Chapter 9, “Guidelines for Modeling Metadata,” on page 299 to use
query subjects as the relational foundation of the model. Define regular and
measure dimensions as model objects based on data source query subjects or
model query subjects or both. Guidance on migration for existing users of data
source dimensions will be provided in a future release.

Steps to create a regular dimension
Procedure
1. Select a namespace or folder where you want to place the dimension.
2. Click Actions, Create, Regular Dimension, and then click the Dimension tab.
3. Click Add Hierarchy and then drag one or more objects from the Available
items box to the Hierarchies box.
You can define multiple hierarchies for a dimension. The first hierarchy is used
as the default, or primary, hierarchy.
You can also create an alternate hierarchy by copying a level. Click a level and
drag it to the right border of the dimension. You can only copy a level within
the same dimension.
4. Click Add Level and then drag one or more objects from the Available items
box into the new level.
You can also create copies of levels in the Dimension Definition dialog box or
in the Dimension Map tab. Click the level and drag it to another position in
the hierarchy. All attributes of the level are also copied. You can only copy a
level within the same dimension.
5. If you want to use a different item in a level, drag it from the Available items
box to the Select a level in the hierarchy control to see the query items box.
You are prompted to specify its role.
By default, Framework Manager adds the name of the namespace.
Tip: To have a multiple-part key such as first name plus last name, create a
new attribute that combines the items, and then specify that the new attribute
is the business key.

104

IBM Cognos Framework Manager Version 10.1.1: User Guide

6. If you want to indicate that the keys of the levels above the current level are
not necessary to identify the members in this level, select the item and select
the Unique Level check box. This indicates that key values belonging to the
level should be considered unique regardless of context. In some circumstances,
the Unique Level setting is used by IBM Cognos software to optimize SQL
queries.
Note: The Unique Level check box does not affect the generation and handling
of MUN identifiers for the members in this level. All MUNs are fully-qualified.
7. Choose the additional tasks that you want to perform:
v Specify roles “Roles” on page 110.
v Embed calculations by clicking Add and then defining the expression
“Creating calculations” on page 142.
To change a calculation that has been embedded in the dimension, in the
Dimension Map tab, click Attributes, right-click the query item, and click
Edit Expression.
v Embed filters “Creating filters” on page 144.
v Specify the sort characteristics of levels “Sorting members of a level” on page
109.
v Test the dimension “Testing dimensions” on page 115.
v Edit the SQL and change various options “Cognos SQL” on page 98.
8. Click OK.
9. To change the default hierarchy for a dimension with multiple hierarchies, do
the following:
v In the Properties pane, click the ellipsis (...) button in the Default Hierarchy
box.
v Select a different hierarchy, and click OK.

Results
You can also use the Dimension Map tab to create a regular dimension. Click the
regular dimension button

.

Hierarchies for regular dimensions
A hierarchy is an ordered list of levels or a collection of items. Each query item in
a hierarchy must have a unique name.
You can specify multiple hierarchies on regular dimensions in IBM Cognos
Framework Manager. Multiple hierarchies for a regular dimension behave as views
of the same query. The first hierarchy is the primary or default hierarchy.
You can use only one hierarchy at a time in a query. For example, you cannot use
one hierarchy in the rows of a crosstab report and another hierarchy from the same
dimension in the columns. If you need both hierarchies in the same report, you
must create two dimensions, one for each hierarchy. For more information, see
“Modeling Dimensions with Multiple Hierarchies” on page 329.
For example, sales staff can be viewed by manager or by sales branch and can be
modeled as a single dimension with two hierarchies.

Chapter 5. Modeling relational metadata

105

If you need both hierarchies in the same report query, such as on opposing axes,
you must create a regular dimension for each hierarchy. For example, here is sales
staff as two dimensions.

Tip: To change the default hierarchy for a dimension with multiple hierarchies, in
the Properties pane, click the ellipsis (...) button in the Default Hierarchy box, and
select a different hierarchy.
If a hierarchy in a dimension contains a large number of members, running a
query in one of the IBM Cognos studios may be slow because the IBM Cognos
engine is generating one large query for a locally-built cube. To resolve this issue,
set the Wide Member Tree property in the Properties pane to true. The engine will
then generate multiple smaller queries for the locally-built cube.
Balanced hierarchy:
Each path in a balanced hierarchy descends to the same depth.
For example, in the following diagram, the highest level is Product Line(Level 1);
Level 2 is Product Type; Level 3 is Products.

106

IBM Cognos Framework Manager Version 10.1.1: User Guide

Unbalanced hierarchy:
The branches in an unbalanced hierarchy descend to different levels.
For example, in the following diagram, the highest level in an organization is the
CEO (Level 1); Level 2 is the vice-presidents and the CEO's executive assistant. The
executive assistant does not have subordinates, unlike the vice-presidents.

An unbalanced hierarchy can also be ragged. In a ragged-unbalanced hierarchy,
there are gaps in the levels and the levels descend to different depths.
Ragged and network hierarchies:
For relational metadata, flatten ragged hierarchies and network hierarchies in the
data source.

Levels for regular dimensions
The simplest definition of a level consists of a business key and a caption, each of
these referring to one query item. An instance (or row) of a level is defined as a
Chapter 5. Modeling relational metadata

107

member of that level. It is identified by a member unique name, which contains
the values of the business keys of the current and higher levels. For example,
[gosales].[Products].[ProductsOrg].[Product]->[All Products].[1].[1].[2]
identifies a member that is on the fourth level, Product, of the hierarchy
ProductsOrg of the dimension [Products] that is in the namespace [gosales]. The
caption for this product is TrailChef Canteen, which is the name shown in the
metadata tree and on the report.
The first level of the hierarchy is automatically defined as the All level. It contains
a single root member, which represents the top level of the hierarchy. For example,
the All level for the Time dimension is named Time (All). You cannot delete or
move the All level. You can change its name, description, and screen tip.
If you do not specify the levels of the hierarchy correctly, incorrect aggregation
could occur.
Member Unique Names:
The member unique name (MUN) is how the member is found in the data source,
much like using business keys to find records in a table.
The member unique name is used in the expression for a member data item that is
used in a report, a reference to members in filters and expressions, and used in
drill-through between OLAP data sources. The member keys in the MUN for the
different OLAP data sources must match.
If a member unique name changes, members that are directly referenced in
expressions, filters, or reports are no longer found because the MUN is contained
in the report specification. Member unique names can change for a variety of
reasons:
v Changes to the hierarchy and level structures may change the level unique
name.
v The business key values have changed and this changed the member key path.
v The application changed during design or over time.
v The cube has category codes that are unpredictably unique.
v The production environment has more members than the test environment.
v The member no longer exists in the data source.
To avoid these problems, use the following best practices:
v Use unique codes and keys within a dimension for the member keys.
v Use unique conformed values for similar dimensions between the target and
source environments when enabling drill through.
v When using a dimensionally modeled relational model for drill-through, ensure
the root business key conforms with the root members of the other data sources.
v Ensure that the business keys and dimension metadata structure are the same
between the production and test environments.
v Do not change the business keys in IBM Cognos Framework Manager after
going into production.
v Resolve the non-unique keys within a dimension in the data source. Do not use
tildes in the category codes.
v If you have a Transformer cube that is built with non-unique source values, do
not use the Clean House feature in Transformer because it will most likely
change the category codes. Keep a backup copy of your MDL file.

108

IBM Cognos Framework Manager Version 10.1.1: User Guide

Keys for levels:
A key is a query item that uniquely identifies members in a level. For example,
Product Number uniquely identifies a product while City, State, and Country are
all needed to uniquely identify a city. The key may or may not be contained in a
level. Foreign keys are used to relate the measure dimension to its regular
dimensions.
Each level needs an item that is defined as a key.
If a model dimension contains a query item whose data type is BLOB, create a
query subject that has determinants and then create a model dimension that is
based on the model query subject.

Sorting members of a level
For dimensionally modeled relational metadata, you can specify sort characteristics
on a dimension. You can also specify sorting on individual levels within the
dimension. When you sort individual levels within a dimension, you can ensure
that the order in which the data is delivered to the model is appropriate. The order
in which the data is delivered to the model can be particularly important when
reporting data over relative time periods.
The default sort order is alphabetical, in ascending order, depending on the level
caption. When you specify a sort order, the data is sorted on another column such
as the business key.

Procedure
1. In the Project Viewer pane, select a dimension or level.
2. Click Actions, Edit Definition.
3. Click the Member Sort tab.
4. Select the sorting option to apply.
Sorting Option

Description

Metadata (as shown in the member tree)

Used only to specify how members are
sorted when displayed in the metadata tree.
The sort of the metadata tree cannot be
changed by report authors.

Data - Only as Default Report Sort

Used as the default data sort for members in
a report.
If no data sort is specified, data is retrieved
in the order that it was entered in the
database.
Report authors can override this value and
apply a different sort to the members
displayed in a report.

Chapter 5. Modeling relational metadata

109

Sorting Option

Description

Data - Always (OLAP compatible)

Used to provide member relative functions
(MRFs) with a consistent order of the
members. This setting should only be used if
MRFs are required. Otherwise, the sorting
results in unnecessary overhead. Report
authors cannot change the order of members
as delivered to the MRFs. However, authors
can apply a different sort to the members
displayed in the report.
If no sort is specified and MRFs are used,
the report author will receive an error when
MRFs are processed.
When this option is set, the members of the
level are also sorted in the metadata tree
even if the Metadata option is not selected.
The sort of the metadata tree cannot be
changed by the report author.

Tips
v To apply the default sort order to all child levels within the levels in the
dimension that do not have a sort option defined, click Detect.
v To remove sort options from all child levels within the levels in the
dimension, click Clear All.
5. In the Select a Level to Assign Sort Properties box, click a level.
6. In the Available Data Items box, click an item to sort and click the right arrow
to add it to the Level Sort Properties box. Use the up and down arrows to
change the order of items.
Tip: To change the sort order to ascending or descending, click Sort Order.
7. To specify how null values are sorted in reports, click the Nulls box beside the
item and then click First, Last, or Unspecified.
First places the null values at the beginning, and Last places the null values at
the bottom. Unspecified uses the setting defined in the data source.
8. Click OK.

Roles
Roles define what displays in the member tree in the IBM Cognos studios. Use
roles to organize and manage metadata and to determine how to present data to
your users.
You can also create expressions that refer to roles instead of query items. You must
use the roleValue function to refer to a particular role. For example, you want to
query against a specific role in a hierarchy but the query item playing that role is
different at each level of the hierarchy. A single query can span the different query
items at each level. You can also use the roleValue function when you know the
role but not the underlying query item.
You can assign multiple roles to one query item, but the same role cannot be
assigned to different query items in the same level.
Default roles are pre-defined for all parent-child hierarchies and for all levels in
level-based hierarchies. Most of these roles are not visible in the IBM Cognos
studios.

110

IBM Cognos Framework Manager Version 10.1.1: User Guide

The roles that are reserved by IBM Cognos BI start with an underscore. The name
for a custom role cannot start with an underscore.

Default roles
The default roles include the following:
v _businessKey
Represents the key for the level. The level can be defined as unique if the
business key of the level is sufficient to identify each set of data for a level.
The _businessKey role can be assigned to only one attribute in a level.
The Root Business Key property shows the value of the business key for the
root member. The root member is an artificial level created for dimensionally
modeled relational models. To enable drill-through on conforming dimensions,
you must set the Root Business Key property.
v _memberCaption
Presents the caption for a member that will be shown in the IBM Cognos
studios.
The _memberCaption role is necessary to leverage member functions and to
enable dragging and dropping levels in the IBM Cognos studios.
Ensure that the data type is set to string for the item that will be assigned the
_memberCaption role.
v _memberDescription
Returns the description for a member within a dimension.

Custom roles
By default, attributes are included with no role. You can assign attributes to
existing roles or you can create custom roles. Each role that you create must have a
unique name.
You can translate the custom roles in the model.

Specifying roles
Roles define what displays in the member tree in the IBM Cognos studios. Use
roles to organize and manage metadata and to determine how to present data to
your users.

Procedure
1. Click the dimension whose roles you want to define.
2. From the Actions menu, click Edit Definition.
3. Click the Dimension tab.
4. In the Hierarchies box, click the level you want.
5. In the Select a level in the hierarchy control to see the query items box, click
a query item.
6. Under Role, click the ellipsis (...) button.
7. Do one of the following:
v To use a role defined by Framework Manager, click the Default Roles tab,
and select a role.
v To create a role, click the Custom Roles tab, and click Add.
8. Click Close.
9. Click OK.
Chapter 5. Modeling relational metadata

111

Results
You can also use the Dimension Map tab to define roles. Click Attributes,
right-click the query item, and click Edit Roles.

Creating measure dimensions
Only measures are visible in the model measure dimension. Query items, such as
keys, are hidden.
A measure dimension is a collection of facts. You can create a measure dimension
for one or more query subjects that have a valid relationship between them.
Model measure dimensions should be composed of only quantitative items.
Because, by design, model measure dimensions do not contain keys on which to
join, it is not possible to create joins to model measure dimensions. Instead of
joining model measure dimensions to regular dimensions, create joins on the
underlying query subjects. Then either manually create a scope relationship
between them or detect scope if both dimensions are in the same namespace.
While you can use data source dimensions, they have limited functionality in
comparison to query subjects or model dimensions. Discontinue using data source
dimensions, both regular and measure. Create new models following the best
practices in Chapter 9, “Guidelines for Modeling Metadata,” on page 299 to use
query subjects as the relational foundation of the model. Define regular and
measure dimensions as model objects based on data source query subjects or
model query subjects or both. Guidance on migration for existing users of data
source dimensions will be provided in a future release.
You can add value by embedding calculations based on existing business rules,
such as Profit Margin.
You can change the order of measures, query items, and calculations.
If the measure dimension contains a folder, you can change the order only in the
Project Viewer.
You cannot define hierarchies or levels for a measure dimension.

Procedure
1.
2.
3.
4.
5.

Click a namespace where you want to place the measure dimension.
Click Actions, Create, Measure Dimension.
Click the Measure Dimension tab.
Drag measures from the Model Objects box to the Measures box.
Perform the actions that you want.

Goal

Action

Embed a calculation

Click Add.
You can also right-click a measure and click
Add or Edit.

Embed a filter

112

IBM Cognos Framework Manager Version 10.1.1: User Guide

Click the Filters tab.

Goal

Action

Test the measure dimension

Click the Test tab or the Query Information
tab.

Convert a measure into a query item

Right-click the measure and click Convert to
Query Item.

Note: If you test the measure dimension by using the Query Information tab,
IBM Cognos BI validates the measure dimension. If you test the measure
dimension by using the Test tab, IBM Cognos BI executes the measure
dimension. The SQL for validate is slightly different than the SQL for execute.
To generate definitive SQL for the measure dimension, use the Test tab.
6. Click OK.

Results
You can also use the Dimension Map tab to create a measure dimension. Click the
measure dimension button

.

You may be interested in the following related topics:
v “Multiple-fact, Multiple-grain Queries” on page 306
v “Creating calculations” on page 142
v
v

“Creating filters” on page 144
“Testing dimensions” on page 115

Converting measures into query items
If you have created a measure dimension and want to join it to regular
dimensions, you need to create joins. Joins need keys and keys are query items, not
measures. The measure that you want to use as a key must be converted into a
query item.
You can also convert a query item into a measure “Converting query items into
measures” on page 141.

Procedure
1. Double-click the measure dimension that contains the measure.
2. Click the Measure Dimension tab.
3. Right-click the measure, and click Convert to Query Item, OK.

Scope relationships
Scope relationships are necessary to define which dimensions and measures are
used together for dimensionally modeled relational models.
A scope relationship is automatically generated when you drag a dimension into
the dimension map or when you move a query subject into the dimension
namespace and convert it to a regular dimension.
Note: Shortcuts to scope relationships are not supported.

Chapter 5. Modeling relational metadata

113

Scope relationships exist only between measure dimensions and regular
dimensions to define the level at which the measures are available for reporting.
They are not the same as joins and do not impact the Where clause. There are no
conditions or criteria set in a scope relationship to govern how a query is formed,
it specifies only if a dimension can be queried with a specified fact. The absence of
a scope relationship results in an error at runtime.
If you set the scope relationship for the measure dimension, the same settings
apply to all measures in the measure dimension. If data is reported at a different
level for the measures in the measure dimension, you can set scope on a measure.
You can specify the lowest level that the data can be reported on.
When you create a measure dimension, IBM Cognos Framework Manager creates a
scope relationship between the measure dimension and each existing regular
dimension. Framework Manager looks for a join path between the measure
dimension and the regular dimensions, starting with the lowest level of detail. If
there are many join paths available, the scope relationship that Framework
Manager creates may not be the one that you intended. In this case, you must edit
the scope relationship.

Defining scope relationships
Scope relationships exist only between measure dimensions and regular
dimensions to define the level at which the measures are available for reporting.

Procedure
1. Click the Dimension Map tab.
Tip: To view scope relationships highlighted with a background color, click the
.
show scope button
2. Click one or more measure dimensions.
3. Click the level of the dimension that you want to set the scope to.
Tip: If you want Framework Manager to define the scope relationship, select
the measure dimension and the regular dimension, and click the determine
scope button

.

4. Click the set scope button

.

Results
If you want to remove the scope, select the hierarchy or dimension and click the
remove scope button

.

If you select a hierarchy, you can remove the scope from a specific hierarchy
without affecting the scope set in other hierarchies of the dimension.
If you select the dimension, all scope from all hierarchies is removed. The scope
relationship between the measure dimension and the regular dimension is also
removed.

Creating regular dimensions based on existing objects
You can create a new regular dimension by merging existing objects. These objects
can be dimensions, query subjects, or query items.

114

IBM Cognos Framework Manager Version 10.1.1: User Guide

Procedure
1. Select the objects that you want in a dimension.
2. Click Actions, Merge in New Regular Dimension.

Viewing related objects
You can explore a visual representation of the objects that are connected to the
query subject or dimension that you select in the Project Viewer. The Context
Explorer shows the objects that the selected object is connected to. You can also
select a connected object and see its references.
You can hide an object in the Context Explorer. You can also change the layout, fit
all objects in the Context Explorer, zoom in and out, print, preview diagrams
before printing, and change the page setup.
You can also use the Dimension Map tab to explore dimensions.

About this task
Procedure
1. Select one or more objects that you want to explore.
2. From the Tools menu, click Launch Context Explorer.
3. To see the connected objects, click one or more objects and click the appropriate
button.
Goal

Button

View the objects that are related to the selected object.
View the immediate references for the objects.
View all references for the objects.

4. If you want to see details about an object, such as its relationships and query
items, right-click the object, click Navigate Diagram, Diagram Settings, and
then select the details you want.

Testing dimensions
Testing a regular dimension returns the attributes associated with the hierarchy
defined as the default.

About this task
Testing Objects
You can see the results that an object returns by testing it. You can test when
creating an object or later on. The objects you can test are dimensions, query
subjects, query sets, hierarchies, levels, calculations, and query items.
You can view the data that will display in a specific report before publishing a
package by selecting and testing the objects that will display in the report. This
makes it easier to debug a model and to verify that the model meets the reporting
requirements because you do not need to create and publish packages first.

Chapter 5. Modeling relational metadata

115

When you test an object, IBM Cognos Framework Manager returns sample data.
Formatting is not applied to the sample data. If you must test formatting, you
must publish the package and view the objects in the IBM Cognos studios.
You may see different results depending on what you test. For example, if you use
the expression editor to test a calculation that is embedded in a query subject,
Framework Manager tests only the expression, not the item, so the aggregation
setting for the query item is not applied to the test. Testing the entire query
subject, which includes the calculation, gives a different result because the
aggregation setting is applied. For example, if the aggregation setting is
summarize, you can see a smaller number of rows in the test.
When you test a measure dimension, the SQL uses aggregates not the measures.
If you test a child segment of a segmented model, you may see an error if an
object you are testing refers to an object in another child segment and the
referenced object is not available to the project you are in. Check that the parent
model contains all the objects and that this error message does not display when
you test the parent model.
Governor settings may affect the testing results. For more information, see
“Governors” on page 283.
You can change existing test settings to customize the results that the test shows.
For example, in addition to other settings, you can control the number of rows
returned.

Steps when creating or modifying the object
Procedure
1. Select the object you want to test.
2. Click Actions, Edit Definition, and then click the Test or Query Information
tab.
The Test Results box is initially empty until you run the query.
Any result sets that contain binary large objects are shown as [blob].
3. To run the query and bring back all the test results, click Test Sample.
4. If you want to add a count of the rows, click Total Rows.
5. If you want to apply the Regular Aggregate property of the query item or the
Aggregate Rules property of a semi-additive measure that is referenced in the
expression, select the Auto Sum check box.
If you clear this check box, a row is returned for each row in the result set of
the query.
6. If you want to obtain more information about the query results, click the Query
Information tab.
7. Click OK.

Steps to view the data that will display in a specific report
Procedure
1. Select the objects that will display in the report.
2. Click Tools, Test.
3. To run the query and bring back all the test results, click Test Sample.

116

IBM Cognos Framework Manager Version 10.1.1: User Guide

4. To view details about any problem that is found, click the Query Information
tab.
If you do not see the results of the query in the test window, the data from
your data source may exceed the value of one of the governors. The query
stops at the specified limit, but the test result window does not contain any
data. Tip: Set each governor to zero.

Changing the test settings
You can customize the tests by changing the test settings.

Procedure
1. Select the object that you want.
2. Click Actions, Edit Definition, and then click the Test tab or the Query
Information tab.
3. Click Options, Test Settings .
4. Choose the options that you want.
Goal

Action

Persistence

Retrieve all data and show a
specified number of rows

Select the Restrict the
maximum number of rows
to be returned check box
and type the required
number of rows.

This setting applies to all
dimensions, query subjects,
and query sets in the model.

This setting does not
improve performance for
retrieving data when testing
dimensions, query subjects,
and query sets.
Specify the level of detail

This setting is saved and
Drag the Level of
Information shown in
used in your next session
Results Information slider to with this model.
the location that represents
the amount of detail you
require.

Temporarily override session In the Session Parameters
parameters
box, click Set.
The Session Parameters
dialog box displays.
Apply relevant design mode
filters

This setting is saved and
used in your next session
with any model.

The override values are not
saved with the model. This
setting is for your current
session only.

Select the Apply all relevant This setting is saved and
used in your next session
design mode filters when
with any model.
testing check box.
This applies all relevant
filters whose usage is set to
design mode in another
dimension, query subject, or
query set.

Chapter 5. Modeling relational metadata

117

Goal

Action

Persistence

Apply a security filter

In the Security Filters box,
click Edit.

This setting is saved and
used in your next session
with this model.

Change the prompt values

In The Current Prompt
Values box, click Prompts.

The prompt values are not
saved with the model.

The Model Prompts
Manager dialog box
displays, which shows all
prompts, and their values,
that are in the model.

This setting is for your
current session only.

5. Click OK two times.

Results
You may be interested in the following related topics:
v Working with dimensions “Dimensions” on page 102
v Working with query subjects “Query subjects” on page 75

Converting regular dimensions into query subjects
You can convert a regular dimension into a model query subject or a data source
query subject.
You can also convert a query subject into a dimension. See “Converting query
subjects into dimensions” on page 94.
If a dimension has multiple hierarchies, only the default hierarchy is included
when you convert the dimension to a query subject.

Procedure
1. Click the regular dimension.
2. Click Actions, Convert to Query Subject.

Multilingual metadata
For models that are published in multiple languages, you can view and modify
model objects in the different languages.
You must handle multilingual support in the import view for a variety of reasons.
You can reduce the number of query items contained in each dimension and query
subject. With fewer dimensions, query subjects, and query items, the model is more
manageable. You can simplify maintenance by doing all multilingual work in one
place instead of in different business views. This ensures consistency because the
languages are set up correctly for all modelers to use. This is particularly
important for segmented models.

Supporting multilingual metadata
There are several steps required to add support for multilingual metadata.

118

IBM Cognos Framework Manager Version 10.1.1: User Guide

Procedure
1. Import metadata from multilingual data sources. See “Modeling with
multilingual data sources” on page 120.
2. Define the languages the model supports. See “Adding a language to a project”
on page 122.
3. Define one or more parameter maps that translate the locale used when the
report is run into the language values in the data source. See “Creating
parameter maps” on page 149.
4. Use a macro to dynamically substitute language values from the language
lookup table using the runLocale session parameter as the key See “Creating
prompts with query macros” on page 153.
5. Export multilingual properties in translation tables, which translators use to
enter the correct text for each language. See “Exporting translation tables” on
page 122.
6. Import the table that contains the translated property values. See “Importing
translation tables” on page 123.
7. Publish the metadata in the languages you specify. See Chapter 7, “Publishing
packages,” on page 233.

Results
For information about how to enable multilingual modeling, see “Example - create
multilingual projects for relational metadata” on page 123.

Setting up a Multilingual Reporting Environment
You can create reports that show data in more than one language and use different
regional settings. This means that you can create a single report that can be used
by report consumers anywhere in the world.
The samples databases provided with IBM Cognos store a selection of text fields,
such as names and descriptions, in more than 25 languages to demonstrate a
multilingual reporting environment. For information about how data is stored in
the samples databases and how the samples databases are set up to use
multilingual data, see the IBM Cognos Business Intelligence Administration and
Security Guide.
Here is the process for creating a multilingual reporting environment:
v Use multilingual metadata.
The data source administrator can store multilingual data in either individual
tables, rows, or columns.
For more information about configuring your database for multilingual
reporting, see the IBM Cognos Business Intelligence Administration and Security
Guide.
v Create a multilingual model.
Modelers use Framework Manager to add multilingual metadata to the model
from any data source type except OLAP. They add multilingual metadata by
defining which languages the model supports, translating text strings in the
model for things such as object names and descriptions, and defining which
languages are exported in each package. If the data source contains multilingual
data, modelers can define queries that retrieve data in the default language for
the report user.
For more information, see the IBM Cognos Framework Manager User Guide.
Chapter 5. Modeling relational metadata

119

v Create multilingual maps.
Administrators and modelers use a Microsoft Windows operating system utility
named Map Manager to import maps and update labels for maps in IBM
Cognos Report Studio. For map features such as country or region and city
names, administrators and modelers can define alternative names to provide
multilingual versions of text that appears on the map.
For more information, see the IBM Cognos Map Manager Installation and User
Guide.
v Create a multilingual report.
The report author uses Report Studio to create a report that can be viewed in
different languages. For example, you can specify that text, such as the title,
appears in German when the report is opened by a German user. You can also
add translations for text objects, and create other language-dependent objects.
For more information, see the IBM Cognos Report Studio User Guide.
v Specify the language in which a report is viewed.
You can use IBM Cognos Connection to do the following:
– Define multilingual properties, such as a name, screen tip, and description,
for each entry in the portal.
– Specify the default language to be used when a report is run.
Tip: You can specify the default language on the run options page, in the
report properties, or in your preferences.
– Specify a language, other than the default, to be used when a report is run.
For more information, see the IBM Cognos Connection User Guide.
The data then appears in the language and with the regional settings specified in
v the user's Web browser options
v the run options
v the IBM Cognos Connection preferences
Any text that users or authors add appears in the language in which they typed it.

Modeling with multilingual data sources
To enable a project to work with multiple languages, you must set up data sources
to support multiple languages.

Multilingual relational data sources
For relational data sources, you can support multiple languages by using one or
more of the following:
v Language-specific database tables
The data source should contain the same tables for each supported language.
For example, if the Product table supports English, French, and German, the
data source has tables named Product_en, Product_fr, and Product_de.
v Language-specific columns
A database table should contain the same columns for each supported language.
For example, if the Product table supports English, French, and German, the
table has columns for ProductName_en, ProductName_fr, and ProductName_de.
v Language-specific rows
A database table should contain an additional column to identify the language
of each row of data, such as a column named LANG.

120

IBM Cognos Framework Manager Version 10.1.1: User Guide

These solutions can make the multilingual data sources large and difficult to
manage.
You can model a single relational query subject to represent all possible data
source languages by using parameter maps and session parameters in the query
subject definition. For more information, see “Creating prompts with query
macros” on page 153 and “Multilingual metadata” on page 118.
Note: Expression syntax is specific to the design language of the model. If you
import objects from a model designed in another language, you may have to adjust
the expression syntax.

Multilingual SAP BW data sources
For SAP BW metadata, you do not need to use parameters to support multilingual
reporting. Since SAP BW automatically provides data in the language that matches
the logon settings for the current user. If there is no metadata for the current user's
language, Framework Manager retrieves data in the default language.

Using macros to model multilingual data
You can model multilingual data that is stored in multiple tables, columns, or rows
for each supported language. You can use macros with parameter maps and
session parameters to create dimensions or query subjects that retrieve data in the
preferred language of the person viewing the report.
The location of a parameter in the query subject definition depends on the location
of multilingual data in the data source. You must have a parameter map in the
macro.
Data source location

Example

A column with a language key in another
column

The parameter location is in the Select list.

Rows whose language is identified by a
special column, such as LANG

The parameter location is in the filter.

Select
PRODUCT_TYPE.PRODUCT_TYPE_CODE,
PRODUCT_TYPE.PRODUCT_LINE_CODE,
PRODUCT_TYPE.PRODUCT_TYPE_
#$Language_lookup
{$runLocale}# as Product_type
from
[gosales].PRODUCT_TYPE
PRODUCT_TYPE

Select
PRODUCT.PRODUCT_NAME,
PRODUCT_MULTILINGUAL.
PRODUCT_NUMBER
from
[gosales].PRODUCT,
[gosales].PRODUCT_MULTILINGUAL
Where
PRODUCT.PRODUCT_NUMBER =
PRODUCT_MULTILINGUAL.
PRODUCT_NUMBER
and
(PRODUCT_MULTILINGUAL."LANGUAGE" =
#sq($Language_lookup{$runLocale})#

Chapter 5. Modeling relational metadata

121

Adding a language to a project
You can add a language to a project at any time. For example, you do this if the
values for a language were not translated earlier.
When you add a language to a project, IBM Cognos Framework Manager
generates a new property value for every multilingual property of each object in
the project. A multilingual property is any text property that displays in a report,
such as Name, Description, and Screen Tip.
The new values that Framework Manager assigns to these text properties are a
combination of the original property value preceded by the language code. For
example, if a dimension is named Country, and you add the Dutch language,
Framework Manager inserts a name whose value is (nl)Country.
Each project contains two types of language definitions:
v Design language
This is the language in which the model was originally created. This value is
stored in the model and cannot be changed. It serves as the default language
value.
v Active language
This is the language in which model content is currently shown. When you open
a model, the active language is set to the language in the model that most
closely matches the region and language settings of the computer. You can
change this value at any time for your current session only. In future sessions,
the model continues to open in the design language.

Procedure
1. Click Project, Languages, Define Languages.
2. In the Available languages box, select each language you want to add and
click the arrow button to move it to the Project languages box.
Tip: To remove a language, select it in the Project languages box and click the
arrow button to move it to the Available languages box.
3. If you want to change the active language, in the Project languages box, click a
language, and click Set as Active, OK.
At the prompt, accept the changes you made to the project, and click OK.
4. If you want to view multilingual property values in the Properties pane, click
the Languages tab.

Exporting translation tables
You can generate and export a translation table to simplify the task of translating
model objects. The translation table contains a list of all the text strings defined for
multilingual properties, such as Name, Description, and Screen Tip. Translators
can then use an external application, such as Microsoft Excel, to type the required
information in the table.
You can export a translation table as either a comma-separated value file (.csv) or
Unicode text file (.txt). You must export the translation table as a Unicode text file
if it either contains a non-Latin language or will be imported by a computer with a
language setting that is different from your own computer.

122

IBM Cognos Framework Manager Version 10.1.1: User Guide

Exporting a translation table
Procedure
1. Select the objects you want to export.
2. Click Project, Languages, Export Translation File.
3. In the Project Languages box, click the languages you want to export, and click
the arrow button to move them into the Languages to be exported box.
You must export the design language of the model that will use the translation
table. For example, if the translation table will be used in a model that uses
French as the design language, you must export French.
IBM Cognos Framework Manager exports the appropriate locale code for each
language you select. If you do not select all the languages to be translated, you
must manually enter the language codes in the first row of each new language
column in the translation table.
4. In the Model objects to be exported box, select whether you want to export all
model objects, or export only preselected objects and their children.
5. Enter the location and name of the translation table.
6. Click OK.

Importing translation tables
You can add text property values for each language defined in your model by
importing translated data from a file. The imported file must be a translation table
that was used by translators to enter the required translated values.
The translation table must contain the design language of the model that will use
the translation table. The translation table can contain a subset of the languages
defined for the project.

Importing a translation table
Procedure
1. Click Project, Languages, Import Translation File.
2. In the Project Languages box, click the languages in the translation table, and
click the arrow buttons to move them to the Translate from and Translate into
box.
You must select the design language for this model.
3. In the Apply translation to box, select whether you want to apply the
translation to all model objects, or only to preselected objects and their
children.
4. Enter the location and name of the translation file.
5. Click OK.

Example - create multilingual projects for relational metadata
You want to create a model that can be used by English, French, and German
report authors. You also want the IBM Cognos studios to automatically show
metadata in the language required by the report author.
In the go_data_warehouse sample, you need to do the following:
v Translate the metadata.
v Use macros to create a multilingual project.
Chapter 5. Modeling relational metadata

123

You can modify the dimensions and query subjects to show multilingual content
by using the Language_lookup parameter map and the runLocale session
parameter.

Procedure
1. Open the go_data_warehouse project.
2. Ensure that English, French, and German are supported languages:
v Click Project, Languages, Define Languages.
v Ensure that the Project languages pane contains English, French, and
German.
v In the Project Viewer pane, click a query item and, in the Properties pane,
click the Languages tab.
For the name, description, and tool tip text, you see one entry for each
language.
3. Export all the languages and objects in the project to a comma-separated value
file (.csv) named GOSLDW-ML.csv.
v Click Project, Languages, Export Translation File.
v In the Project Languages box, Ctrl+click English, French, and German, and
click the top arrow to move them to the Languages to be exported box.
v In the Export languages to this file box, enter the location of
GOSLDW-ML.csv.
4. Open the GOSLDW-ML.csv file in Microsoft Excel, and translate the strings.
Note that each column represents a given language, and the file contains only
the text strings that exist in the model.
5. In Framework Manager, import the translated file:
v Click Project, Languages, Import Translation File.
v In the Project Languages box, move French and German into the Translate
into box.
v In the Import translation table from this file box, enter the location of
GOSLDW-ML.csv.
6. In the Project Viewer, double-click the Language_lookup parameter map.
Note that the keys match the possible values for the runLocale session
parameter, which identifies the language of the current user. These keys are
mapped to the language values that are defined in the go_data_warehouse
database.
7. Ensure that the parameter map contains the following information.
Key

Value

de

DE

en

EN

fr

FR

8. Select an object that contains multilingual columns, such as the Order method
dimension, and, click Actions, Edit Definition.
The language identifier that was appended to the query item name is replaced
by a parameter map and the runLocale session parameter:
Select

124

IBM Cognos Framework Manager Version 10.1.1: User Guide

ORDER_METHOD_DIMENSION.ORDER_METHOD_KEY,
ORDER_METHOD_DIMENSION.ORDER_METHOD_CODE,
ORDER_METHOD_DIMENSION.ORDER_METHOD_#$Language_lookup{$runLocale}
# AS ORDER_METHOD
from
[go_data_warehouse].ORDER_METHOD_DIMENSION

9. To preview the results, click Test, Test Sample.
10. Click Project, Session Parameters, and change the runLocale session
parameter value to fr.
11. Test the Order method dimension again to view the results.

Query items
A query item is the smallest object in the model that can be placed in a report. It
represents a single instance of something, such as the date that a product was
introduced.
For relational metadata, you can modify the properties of query items by
v Setting Usage and Regular Aggregate properties to reflect the intended use of
the query item
v Formatting query items to control how data displays in a report
v Identifying a column as a prompt, and controlling how your users see the
prompt information
You can also modify the properties for multiple query items at the same time. For
more information, see “Replacing multiple property values” on page 24.
You can rename a query item in the Calculation Definition dialog box. Renaming
the query item updates references to this query item.
Because reports can contain different query items from one or more objects in the
model, query item properties control many aspects of the final report. When you
create a model dimension or model query subject, the query items inherit the
properties of the data source query items on which they are based.
The properties for query items or measures include the following.
Query item property

Description

Name

The name of the query item or measure.

Description

A description of the query item or measure.

Last Changed

The date that the query item or measure was
last changed. The property is automatically
updated with the current date time.

Last Changed By

The user who last changed the query item or
measure. This property is automatically
updated when the item is changed.
The value is the current logon username.

Chapter 5. Modeling relational metadata

125

Query item property

Description

Model Comments

Used to add internal comments about the
model. The information is used on the
Analyze Publish Impact dialog and in the
Model Report. Comments are not accessible
to package users.

Screen Tip

A description that can display in the
published package for your users.

Expression

Used to create embedded calculations that
provide your users with calculated values
that they regularly use.
This property is for measures only.
Note: The Expression property is not used
by SAP BW.

External Name

The name that displays in the data source.

Is Hidden

Whether to hide or show the query item or
measure in the published package.
Even when Is Hidden is set to True and the
query item or measure is invisible to your
users, it is always present in the published
package because the query item or measure
may be needed by other objects in the
model. You do not see the query item or
measure in the Package Publish wizard.
For example, a calculation may make use of
a hidden query item.

Usage

The intended use for the data represented by
the query item.
This property is for query items only.

Format

How information displays in a report.

Currency

Which currency is used.
This property cannot be changed in the
Property pane. Use the Format property to
change the currency.

Data Type

The data type that was set in the data
source.
Because this property is set in the data
source, it is read-only in Framework
Manager.

126

IBM Cognos Framework Manager Version 10.1.1: User Guide

Query item property

Description

Precision

The total number of digits.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Scale

How many digits are represented in the
scale.
For example, you can show numbers in
thousands so that 100,000 means 100,000,000.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Size

The size of the query item or measure.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Is Nullable

Whether the query item or measure can
contain a null value.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Display Type

How the query item is shown.
The column value can display in the IBM
Cognos studios as a picture, as a link, or as
a value.
The default is value.
This property is for query items only.

MIME Type

The format that the column value uses.
For example, if Display Type is set to
picture, MIME Type could be jpeg.
This property is for query items only.
Note: The MIME Type property is not used
by SAP BW.

Prompt Info

Prompt behavior.

Regular Aggregate

The type of aggregation that is associated
with the query item, measure, or calculation
in the published package.

Chapter 5. Modeling relational metadata

127

Query item property

Description

Aggregate Rules

For dimensionally modeled relational
metadata, the rules for semi-additive
aggregation.
For SAP BW metadata, the Aggregate Rules
property is read-only.

Allocation Rule

Specifies the type of allocation defined for
the measure.
A value of default specifies that constant
allocation is used in list queries and
once-only allocation is used in crosstab
queries. A value of constant specifies that
constant allocation is used in all queries.

Is Unsortable

Whether the values of this query item can be
sorted.
This property is for query items that contain
large objects such as BLOBs.

Modifying how query items are aggregated
You can change how some query items and measures are aggregated in reports.
IBM Cognos Framework Manager applies aggregate rules when your users create a
report that summarizes a query item or measure.
When you import metadata, Framework Manager assigns values to the Usage and
Regular Aggregate properties for query items and measures depending on the
type of object that the query item or measure is in. The Usage property identifies
the intended use for the data represented by the query item “Usage property” on
page 131. The Regular Aggregate property identifies the type of aggregation that is
applied to the query item or measure “Regular aggregate property” on page 132.
Your users can override the values of the Regular Aggregate property. For
semi-additive measures, you can specify additional aggregate rules by modifying
the Aggregate Rules property “Defining aggregate rules for semi-additive
measures” on page 132.
When modifying the Regular Aggregate property, you can select values that are
not available through importing, such as average and maximum. You must
understand what the data represents to know which aggregate rule is required. For
example, if you aggregate a part number, the only aggregate values that apply are
count, count distinct, maximum, and minimum.

Rules for setting properties for dimensions
IBM Cognos Framework Manager uses the following rules to set the Usage and
Regular Aggregate properties.

128

IBM Cognos Framework Manager Version 10.1.1: User Guide

Object

Usage property

Regular Aggregate property

Query item in a regular
dimension

Attribute

Unsupported

Query item in a measure
dimension

Identifier

Count

Measure in a measure
dimension

Fact

Automatic if the measure is a
calculation
Sum if the measure is not a
calculation

If the measure is semi-additive, use the Aggregate Rules property to define rules
for semi-additive aggregation. See“Defining aggregate rules for semi-additive
measures” on page 132.

Rules for setting properties for query subjects
You can change the Usage and Regular Aggregate properties for all types of query
subjects. The settings for these properties are based on characteristics such as data
type and participation in keys and relationships.
For model query subjects, IBM Cognos Framework Manager uses the settings of
the underlying query subjects. If the source query subject does not use these
properties, the rules for data source and stored procedure query subjects are
applied.
For data source or stored procedure query subjects, Framework Manager uses the
following rules to set the Usage and Regular Aggregate properties when
importing the query subjects.
Object

Usage property

Regular Aggregate property

Query item is part of a key
in a determinant

Identifier

Count

Query item participates in a
relationship

Identifier

Count

Query item is data type date
or time

Identifier

Count

Query item is data type
numeric or time interval

Fact

Automatic if the item is a
calculation
Sum if the item is not a
calculation

None of the above applies

Attribute

Unsupported

Rules for setting properties for calculations
IBM Cognos Framework Manager uses a number of rules for setting the Usage and
Regular Aggregate properties for calculations.
Chapter 5. Modeling relational metadata

129

Rules for interpreting calculated aggregations:
The calculated aggregation type is supported for stand-alone calculations. It is also
supported for calculations that are embedded within measure dimensions and are
based on measures from the same measure dimension.
It is not supported for calculations that are embedded within query subjects.
Framework Manager uses the following rules to interpret the calculated
aggregation type in the Regular Aggregate property:
v Standard aggregation functions (average, count, maximum, minimum, standard
deviation, sum, variance) and references to model query subjects are aggregated
first. The remaining operations are then applied to the aggregation result.
For example, to divide debt by credit for each row, the SQL looks like this:
Select
customer, debt, credit, debt/credit as
percent_debt from x

To aggregate for all customers, the SQL looks like this:
Select sum(debt), sum(credit), sum(debt)/sum(credit)
as percent_debt from (Select customer, debt, credit from x)

v If the query item in the calculation is a fact and the aggregation type for the
query item is average, count, maximum, minimum, or sum, the aggregation type
of the query item is used.
v If the query item in the calculation has no aggregation type set, the aggregation
type minimum is applied in the query. It is not possible in SQL to have an
aggregation setting of none.
v Aggregate functions are interpreted as if they are applied to a value in a single
row when these functions are used in the detail context. For example, a Report
Studio report has the Auto Group and Summarize property set to false.
v Aggregation of a query item is based on the aggregated expression derived from
the item definition.
For example, you want to total this stand-alone calculation:
[namespace].[Company].[debt]
/ [namespace].[Company].[credit]

The calculation is aggregated with this expression:
Total([namespace].[Company].[debt]) / Total([namespace].[Company].[credit])

v Scalar aggregates, also known as running, ranking, and moving aggregates, are
calculated for report granularity unless the For clause is explicitly specified.
v Granularity of aggregate functions is set by grouping for determinants or by
keys of corresponding levels in the cube.
For example, Rank([namespace].[Company].[debt] is interpreted as
Rank([namespace].[Company].[debt] for Report).
Rules to determine the automatic aggregation type:
For stand-alone and embedded calculations, IBM Cognos Framework Manager
uses one of these rules to determine the aggregation type.

130

IBM Cognos Framework Manager Version 10.1.1: User Guide

Calculation

Aggregation type

Is based on an expression containing an
aggregate function such as average,
maximum, minimum, or sum

Calculated

Has an if-then-else operation and the if
condition references fact items

Calculated

References a calculation using any type
except unsupported

Calculated

Has an aggregation type other than
unsupported

Calculated

Is based on an expression that references a
model query subject whose usage is set to
fact and whose aggregation type is set to
average, count, maximum, minimum, or
sum but the query item expression does not
use an aggregate function

Summarize

None of these rules apply

Unsupported

See below for the rules for Summarize.

Rules to determine the summarize aggregation type:
For stand-alone and embedded calculations, IBM Cognos Framework Manager
uses one of these rules to determine the aggregation type.
Calculation

Aggregation type

Is a fact containing of only a reference to a
query item whose aggregation type is
average, count, maximum, minimum, or
sum

Uses the aggregation type of the query item

Numeric or an interval type

Sum

Time, datetime, or date type

Maximum

None of these rules apply

Count

Usage property
The Usage property identifies the intended use for the data represented by each
query item. During importing, the Usage property is set according to the type of
data that the query items represent in the data source.
You need to verify that this property is set correctly. For example, if you import a
numeric column that participates in a relationship, the Usage property is set to
identifier. You can change the property.
For relational query items, the value of the Usage property depends on the type of
database object the query item is based on.
Chapter 5. Modeling relational metadata

131

Usage property

Database object

Description

Identifier

key, index, date, datetime

Represents a column that is
used to group or summarize
the data in a Fact column
with which it has a
relationship.
Also represents an indexed
column.
Also represents a column
that is of the date or time
type.

Fact

numeric, timeinterval

Represents a column that
contains numeric data that
can be grouped or
summarized, such as Product
Cost.

Attribute

string

Represents a column that is
neither an Identifier or Fact,
such as Description.

Regular aggregate property
The Regular Aggregate property identifies the type of aggregation for the query
item or calculation when you publish it. Your users can either use this default
setting to perform calculations on groups of data, or apply a different type of
aggregation.
For example, if the Regular Aggregate property value of the Quantity query item
is sum, and it is grouped by Product Name in a report, the Quantity column in the
report shows the total quantity of each product.
The following aggregation types are supported for relational data sources:
v Automatic
v Average
v Calculated
v Count
v Count distinct
v Maximum
v Minimum
v Sum

Defining aggregate rules for semi-additive measures
For measures of dimensionally modeled relational metadata, you can define an
aggregate rule for each related dimension. These rules are in addition to the
Regular Aggregate property and are used to specify how semi-additive measures
are to be aggregated with respect to information from that dimension. A
semi-additive measure is one that is to be summed for some dimensions, but
should not be summed across some other dimensions. For the dimensions over
which the measure is not additive, a different aggregation rule must be specified.
If a measure expression contains an aggregation function, the aggregation rule for
that measure is ignored.

132

IBM Cognos Framework Manager Version 10.1.1: User Guide

Aggregate rules are applied in this order:
v The Regular Aggregate property is applied to dimensions that are included in
the query but are not referenced in the Aggregate Rules dialog box
v The aggregation that is specified in the Aggregate Rules dialog box is applied to
their specified dimensions, in the order that you specified the rules
v The report-level aggregation that is specified in the query
For example, inventory is recorded in the data warehouse with opening and
closing balances at the month grain. If you need to report on inventory for
different periods of time, you apply an aggregate that takes the value from the
appropriate time slice within the period. For an opening balance, the value is the
last balance of the previous month. For a closing balance, the value is the last
balance of the current month. In this example, the inventory measure has a
Regular Aggregate property of total and an aggregate rule for the time dimension
with a value of last.
You can have only one aggregate rule for each dimension.
Note: There must be a direct relationship between the underlying query subjects
from which the measure and dimension are constructed. For example, consider the
Inventory measure dimension and the Time dimension:

You want to define an aggregate rule for Closing inventory that generates the last
closing inventory recorded for any given period of time:

For IBM Cognos to apply the aggregate rule of last on Closing inventory based on
the Time dimension, there must be a direct relationship between the underlying
query subjects used to construct the Time dimension and the Closing inventory
measure. This is in addition to the scope relationship defined between the
Chapter 5. Modeling relational metadata

133

Inventory measure dimension and the Time dimension:

If a relationship does not exist, running a query that contains the measure Closing
inventory generates the following error:
RQP-DEF-0564 Unable to determine fact grain of semi-additive dimension
'[Dimensional view].[Time dimension]' for measure '[Dimensional
view].[Inventory].[Closing inventory]'. Verify that a relationship is defined between
the underlying query subjects from which the dimensions are constructed.
Semi-additive measures are not supported for sparse data. Sparse data is
multidimensional data in which many of the combinations of dimension values do
not have related fact data.
For SAP BW metadata, the Aggregate Rules property value is read-only. The
Semi-Aggregate property is used instead.

Procedure
1. Click the measure you want to work with.
2. In the Properties pane, click the ellipsis (...) button in the Aggregate Rules
property.
3. To add a dimension for this measure, click Add and select the dimension.
You can include a shortcut to a dimension if there is a scope relationship
between the measure dimension and the regular dimension.
4. To specify the aggregate operation, click the ellipsis (...) button in the
Aggregation Rules box.
The following operations are supported:
v Sum
v Minimum
v Maximum
v Average
v First
v Last
5. If you want to change the order of the aggregate rules, use the arrow buttons.
6. Click OK.

134

IBM Cognos Framework Manager Version 10.1.1: User Guide

Results
After you set an aggregate rule, the icon for the measure changes.

Semi-aggregate property
For relational metadata, the Semi-Aggregate property value is set to unsupported
and is read-only.
If the value is set to unsupported in IBM Cognos Framework Manager, the
semi-aggregate behavior is ignored in the IBM Cognos studios.
The Semi-Aggregate property will not be supported in future releases. Instead, use
the Aggregate Rules property for semi-additive measures.

Determining usage and aggregation rules
When you use the Determine Usage and Determine Aggregation Rules
commands in IBM Cognos Framework Manager, you are resetting the values of the
Usage and Regular Aggregate back to their default values. This overwrites all
changes you have made to these properties.
When generating aggregation values, Framework Manager assigns a value that is
based on the Usage property value and the type of object it is.
Usage property value

Regular Aggregate property value

Identifier

Count

Attribute

Unsupported

Fact

Sum

Steps to determine usage and aggregation rules:
Procedure
1. In the Project Viewer pane, click one or more dimensions or query subjects.
2. In the Properties pane, click the Properties tab.
3. Change the Usage property to unknown.
4. Change the Regular Aggregate property to unsupported.
5. Click Tools, Determine Usage.
6. Click Tools, Determine Aggregation Rules.

Formatting query items
You can specify how query item values display in reports. Use the Format
property to choose a format type, such as text, date, and currency. Each format
type contains properties that further specify how the data displays.
For example, you can assign the Currency format type to a numeric query item,
and then use the No. of Decimal Places property in the Data Format dialog box to
specify how many decimal places display in reports.

Chapter 5. Modeling relational metadata

135

Some characters are language-sensitive and display properly only when your locale
supports the applicable font. For example, for Japanese currency symbols to
display correctly, your locale must be set to Japanese.
If IBM Cognos Framework Manager does not show the currency you require, you
must ensure that you install the appropriate language packs to support the
currency symbols. For example, to have the Indian currency symbol (rupee)
display, you must run an operating system or install a language pack that can
show this symbol. The Japanese operating system or Japanese language is one that
can show the Indian currency symbol.
You can define properties for several query items at the same time. However, if the
query items have different format types, all properties that were previously
specified are overridden and the default values from the data source are used. If
the original format types of the selected query items are the same, all the
properties for the selected query items are set identically.
For example, to use the same decimal separator for two query items and to keep
the number of decimals different, each query item must be changed individually. If
both are selected and changed at the same time, all properties including the
number of decimals are set identically for both query items.

Steps to format a query item
Procedure
1. In the Project Viewer pane, click the query item you want to format.
2. In the Properties tab of the Properties pane, click the Format property.
3. Select the appropriate Format type.
4. In the Properties box, select or type the appropriate property value.
5. Click OK.

Defining prompt controls
Prompts help your users quickly find the information they need in a report.
Prompts are generally defined in reports. However, you can change the behavior of
prompts in the studios by modifying the definition of dimensions or query subjects
in the model.
This is useful for query items, such as ProductTypeCode, whose values are not
shown in a report but are useful for filtering data. In general, it is better to define
type-in prompts in the reports to make use of the additional prompt features.
However, your users cannot modify some variables. For these variables, you can
use IBM Cognos Framework Manager instead of the reports to define type-in
prompts.
The Prompt Info properties set in Framework Manager give you the ability to
control default filtering and prompting. The properties are used by:
v Query Studio to create a filter expression and set the use and display items in a
prompt and prompt query
v The Build Prompt Page tool in Report Studio to create a filter expression and set
the use and display items in a prompt and prompt query
v Generated prompts in Report Studio to set the use and display items in the
prompt and prompt query
The syntax for using a prompt as a value is

136

IBM Cognos Framework Manager Version 10.1.1: User Guide

??

You can use prompts in
v Parameter maps
v Session parameters
v Stored procedure arguments
v Expressions, including filters, calculations, and relationships
For example, a stored procedure returns all rows with a specific product number.
Instead of using the product number as the argument for the stored procedure,
you can use a prompt, such as ?Product_Number?.
For examples of prompts, see “Creating prompts with query macros” on page 153
and “Example - using prompts with a stored procedure” on page 81.
For more information about creating prompts, see the Report Studio User Guide.

Steps to define a prompt control
Procedure
1. Click the query item.
2. In the Properties pane, click the Properties tab.
3. Click the plus sign (+) next to the Prompt Info property.
This is a compound query item property.
4. Modify the following properties to reflect the behavior you require.
Goal

Property

Set the type of prompt control that is
generated when the report is run.

Prompt Type

Set the generated prompt as part of a series
of generated cascading prompts.

Cascade On Item Reference

Specifies which query item is displayed to
the report user in the prompt.

Display Item Reference

The values in the prompt are data values of
the query item.
Each value in the prompt is associated with
a value in the query item specified in the
Use Item Reference property.
Specifies which query item is passed from
the prompt to the filter.

Use Item Reference

Each value is associated with a value in the
query item specified in the Display Item
Reference property.
Specifies which query item is used in the
filter expression to retrieve data.

Filter Item Reference

Chapter 5. Modeling relational metadata

137

Prompt type property
The Prompt Type property sets the type of prompt control that is generated when
the report is run, such as an edit box or a pull-down list.
The default value for this property is Server Determined.
Note: Prompt types set on attributes are now processed. The report user will see
the prompt that matches the prompt type on the attribute. Because prompt types
on attributes were not processed in the previous release, some differences may
occur.
Value

Prompt Control

Server Determined

The type of prompt control is based on
information in the server, such as the data
type of the query item.

Edit Box

A simple text box. If the data type of the
column is date or dateTime, this value
generates a date or date-time control as well
as the text box.

Select Date

A date control with a calendar interface.

Select Date/Time

A date-time control with a calendar
interface.
For SAP BW metadata, this value is not
relevant.

Select Interval

A date-time interval control.
For SAP BW metadata, this value is not
relevant.

Select Time

A time control that filters data based on the
selected time period. For example, if you
define a Select Time prompt for Order Time,
the user can use the time control to show all
orders placed after 1:00, or all the orders
placed between 10:00 and 11:00.
If you are referring to a time member, you
must use the exact values only.
If you are using a range, the end points of
the range must correspond to values in the
data source.

Select Value

A drop-down list.

Select with Search

A list control so that users can search for
values.
For SAP BW metadata, this value is not
relevant.

Select with Tree

A tree prompt control for prompts that are
based on a hierarchy node.

Cascade on item reference property
The Cascade On Item Reference property indicates that the generated prompt is
part of a series of generated cascading prompts. The query item that you reference

138

IBM Cognos Framework Manager Version 10.1.1: User Guide

in this property is the parent item in the cascade. The system prompts the user for
the cascade item before prompting them for the current query item.
For example, if you want to prompt for Product Line and then Product within the
selected line, set the Cascade On Item Reference property of the Product query
item to Product Line.

Display item reference and use item reference properties
The Display Item Reference property specifies which query item is displayed to
the user in the prompt. The Use Item Reference property specifies which query
item is passed from the prompt to the filter. Each value in the list of display items
is associated with a value of the query item specified in the Use Item Reference
property.
For example, you want the prompt to display Country Name while using Country
Code to retrieve data. Set the Display Item Reference property to Country Name
and the Use Item Reference property to Country Code. The prompt for Country
Name makes it easy for the report user to select required values. However, using
the Country Code in the filter is more efficient for data retrieval.
These properties are used by
v Query Studio to create a filter expression and set the use and display items in a
prompt and prompt query
v The Build Prompt Page tool in Report Studio to set the use and display items in
a prompt and prompt query
v Generated prompts in Report Studio to set the use and display items in the
prompt and prompt query
Note: The values of the Use Item Reference and Filter Item Reference properties
must be compatible. Otherwise, the report user may receive unexpected results. For
more information, see “Filter item reference property.”
Default: If no values are set, the properties default to the name of the query item.
These properties are used only for data driven prompt controls whose Prompt
Type property is set to either Select Value or Select with Search.

Filter item reference property
The Filter Item Reference property identifies the query item used when Report
Studio or Query Studio generates a filter. This property can help create more
efficient queries by ensuring that a filter uses an indexed numeric column rather
than a non-indexed string column.
For example, a report author wants to create a filter for the Country Name query
item. You set the Filter Item Reference property to use Country Code instead of
Country Name for any filter that uses the Country Name query item.
In another example, a report author wants to create a filter for the Country Code
query item that displays in the Orders table. You want that filter to use the
Country Code in the Country table because there are fewer rows to read in the
Country table so you set the Filter Item Reference in the model to
Country.Country Code.
This property is used by:
v Query Studio to create a filter expression
Chapter 5. Modeling relational metadata

139

v The Build Prompt Page tool in Report Studio to create a filter expression
Default: If no value is set, the property defaults to the name of the query item.

Using the filter item reference and use item reference properties
The values of the Filter Item Reference and Use Item Reference properties must
be compatible. The value of the Use Item Reference property must be a type that
is expected by the Filter Item Reference property. Otherwise, the report user may
receive unexpected results. This may occur when a report user creates a filter
without creating a prompt page.
In an example model, the Use Item Reference property is set to Employee Number
and the Filter Item Reference property is Employee Name. In Report Studio, a
report author creates the following filter without creating a prompt page:
Reference.EmployeeName in ?parm1?

Report Studio automatically generates prompts when you create a filter without
creating a prompt page. Because the prompt is generated, Report Studio uses the
Prompt Info properties from the Employee Name query item in the Framework
Manager model.
The Use Item Reference indicates that the values being passed to the filter are
employee numbers. The Filter Item Reference is filtering data based on Employee
Name. The filter is as follows: Reference].[Employee Name] in ("1", "2"). Since
there are no Employee Name values of "1" or "2", the report will be blank.

Using filter item reference for dimensionally modeled relational
metadata
For dimensionally modeled relational metadata, Prompt Info is specified on the
attribute with the role of _memberCaption, instead of the level. Although set on
the attribute, the Prompt Info properties are processed as if they were on the level.
By default, when the level is included in a report, users are prompted to enter
MUNs in the level's prompt. To enter caption values instead, set the attribute's
Filter Item Reference property to itself. When the prompted filter is applied, the
filtered values will be based on the attribute values.
For example, the level Product Line has an attribute of Product Line with a role of
_memberCaption. If the Filter Item Reference property value is set to Product
Line, report users are prompted to enter Product Line values. If the Filter Item
Reference property value is left blank, users are prompted to enter MUNs.
Note: Do not use the Filter Item Reference property with the Select with Tree
prompt type. Because a Select with Tree prompt can only filter on a level or
hierarchy, setting the Filter Item Reference property will cause an error.

Testing prompts
When you test a model object that references a prompt, IBM Cognos Framework
Manager asks you to enter the prompt value. Framework Manager uses this value
for either the duration of the session, or until you clear the prompt value.
You can change the session value of prompt values through the Options dialog
box. This dialog box is available when you modify a dimension or query subject,

140

IBM Cognos Framework Manager Version 10.1.1: User Guide

or define a calculation, filter, query set, or complex relationship. You can change
the prompt value at the time that you are testing the expression that references
that value.
If you select the Always prompt for values when testing check box in the Prompt
dialog box, Framework Manager prompts you for a value every time you test the
object. When updating the object or performing a count, Framework Manager uses
the existing prompt value, if one exists.
A prompt on a query item in a model query subject is associated only with that
query item. A prompt on a query item in a data source query subject is associated
with the entire query subject and therefore, the prompt displays when you test any
query item in the query subject.

Converting query items into measures
You can convert a query item in a measure dimension back into a measure.
To convert a measure to a query item, see “Converting measures into query items”
on page 113.

Procedure
1. Double-click the measure dimension that contains the query item.
2. Click the Measure Dimension tab.
3. Right-click the query item, and click Convert to Measure.
4. Click OK.

Business rules
You can add business rules to the dimensions and query subjects in your model to
refine the data retrieved and ensure that the correct information is available for
your users.
Creating business rules and storing them in the model instead of in reports has
many advantages. You save time because you and your users do not have to
re-create the business rules every time they are needed. The business rules ensure
consistency because your users all use the same definitions. For example, Low
Margin means the same thing throughout the organization. They are easy to
update because you maintain the business rules centrally so that all reports are
updated automatically as the rules evolve. For example, if the definition for Low
Margin changes, all reports that use the Low Margin calculation are updated
automatically. The business rules enhance security.
For example, you can
v Add calculations so that your users can include calculated data in their reports.
See “Creating calculations” on page 142.
v Create and apply filters so that you limit the data that a query subject retrieves.
See “Creating filters” on page 144.
v Add prompts that will automatically display whenever a dimension or query
subject is used in a report; report consumers are then prompted to filter data.
See “Defining prompt controls” on page 136.

Chapter 5. Modeling relational metadata

141

v Use session parameters and parameter maps in macros to dynamically resolve
expressions. See “Creating session parameters” on page 151, “Creating
parameter maps” on page 149, “Creating prompts with query macros” on page
153.
v Create a security filter to control the data that is shown to your users when they
set up their reports. See “Adding data security” on page 239.

Creating calculations
You can create calculations to provide your users with calculated values that they
regularly use. Calculations can use query items, parameters, variables, calculated
members, expressions, and expression components, such as functions.
Punctuation characters, such as the question mark (?), must be in 7-bit ASCII
character code. If you type a punctuation character from a multi-byte enabled
keyboard, ensure that you type the 7-bit ASCII representation of the character. For
example, type Alt+063 for the question mark.
Avoid using characters that are used for expression operators in the name of the
calculation. Syntax errors may occur when the expression is evaluated. For
example, a calculation named Margin * 10 causes errors when used in an
expression such as [Margin * 10]< 20.
In expressions, an operator or function may require operands to be of a particular
dimensional type. When an operand is not of the required type, one or more
coercion rules may be applied to coerce the operand to the appropriate type.
Because coercion rules are not applied to expressions in model query subjects,
ensure that those expressions are valid without relying on coercion rules. For more
information about coercion rules, see the IBM Cognos Report Studio User Guide.
If you insert an imported user-defined function in the calculation, ensure that the
function name does not repeat vendor-specific names. For example, if the
user-defined function name is CHAR you will receive and error when testing the
function in the Calculation Definition dialog box because this name is considered
identical as char in Microsoft SQL Server. For information about function names
used in your database, see the database product documentation.
At query time, IBM Cognos Framework Manager returns a null value for any
calculation that contains a divisor whose value is zero. Framework Manager cannot
detect zero-division errors in functions such as average and mod, because the
division operator is not explicit.
Framework Manager supports stand-alone calculations and embedded calculations.
v Use a stand-alone calculation when you want to reuse the expression.
You can apply a stand-alone calculation to one or more dimensions or query
subjects to provide calculated data to a report, or include it in a package to
make it available to your users. By moving a stand-alone calculation or a
shortcut to it into a folder, you can better organize the model objects.
You cannot use stand-alone calculations in Analysis Studio. Instead, use an
embedded calculation.
v Use an embedded calculation when you want to use a calculation with only one
dimension or query subject.
You can create an embedded calculation when modifying a relational data
source query subject, model query subject, or dimension.

142

IBM Cognos Framework Manager Version 10.1.1: User Guide

If you start with an embedded calculation, you can later convert it into a
stand-alone expression that you can apply to other dimensions or query subjects.
Tip: Right-click the calculation expression in the Calculations tab and click
Convert to Stand-Alone Calculation.
When you embed a calculation, the data source query subject must have a
relationship to any query subject referenced by the expression. This relationship
is necessary even if the expression references a model query subject based on the
same table as the data source query subject in which you are embedding the
expression.
To create a calculation on an unrelated query subject, do one of the following:
– Ensure that there is a join path between the new query subject and the one
that contains the calculation.
– Base the embedded calculation on a query item that is based on the data
source query subject you want.
– Convert the calculation to a stand-alone calculation, so that it is not part of
the query subject.
– Create a stand-alone calculation that references the embedded object.

Steps to create a calculation
Procedure
1. Do one of the following:
v To create a stand-alone calculation, click the namespace or folder and click
Actions, Create, Calculation.
v To create an embedded calculation for a measure dimension, double-click the
dimension. On the Measure Dimension tab, click Add.
v To create an embedded calculation for a regular dimension, double-click the
dimension. On the Dimension tab, select a hierarchy and click Add.
v To create an embedded calculation for a data source query subject,
double-click the data source query subject. On the Calculations tab, click
Add.
v To create an embedded calculation for a model query subject, double-click
the model query subject. On the Query Subject Definition tab, click Add.
The Calculation Definition dialog will display.
2. In the Name box, type a name for the calculation.
3. Define the expression.
Goal

Action

Add items

On the Model tab, click a query item, filter,
or calculation and click the arrow.

Add functions

On the Functions tab, choose a component
and click the arrow.

Add parameters

On the Parameters tab, click a parameter
and click the arrow.

Chapter 5. Modeling relational metadata

143

Goal

Action

Retrieve all data and show a specified
number of rows

Click the options button, select the Restrict
the maximum number of rows to be
returned check box, and type the required
number of rows to be returned.

This setting does not improve performance
for retrieving data when testing dimensions,
query subjects, and query sets.
Override session parameters

Click the options button, click Set, enter a
value in the Override Value field, and click
OK.

Override prompt values

Click the options button, and then click
Prompts.
The Model Prompts Manager dialog box
displays, which shows all prompts, and their
values, that are in the model.

4. To test the calculation, click the test button
.
You can test only calculations that contain query items. If a calculation contains
a function, for example _add_days, the Test Sample button is not available.
Tip: If there is an invalid expression in the calculation, review the Tips box in
the expression editor for more information.
5. Click OK.
6. Modify the Data Type property to identify the type of data the calculation
returns.
The IBM Cognos studio uses this information to format the data that the
calculation returns.

Results
You may be interested in the following related topics:
v Appendix B, “Using the expression editor,” on page 365
v “Creating session parameters” on page 151
v “Testing dimensions” on page 115

Creating filters
A filter is an expression that specifies the conditions that rows or instances must
meet to be retrieved for the dimension, query subject, calculation, or report to
which the filter is applied. A filter returns a boolean value so that you can limit the
rows returned by a dimension or query subject.
For example, you can use the in_range function to create a filter that retrieves data
for products introduced in a specific time frame. The syntax for this example looks
like this:

144

IBM Cognos Framework Manager Version 10.1.1: User Guide

[gosales_goretailers].[Products].[Introduction
date]
in_range {Feb 14, 1999 : July 14, 2007}

Note: When using a date or time function, you must use a 24-hour clock. IBM
Cognos Framework Manager does not support "a.m." or "p.m." in expressions. For
example, use 20:00 to signify 8 p.m.
You can restrict the data represented by dimensions or query subjects in a project
by creating a security filter. The security filter controls the data that your users can
see when they set up their reports.
You can also apply governors to restrict the data that the queries in a package
retrieve.
Framework Manager supports stand-alone filters and embedded filters.
v Use a stand-alone filter when you want to reuse the expression.
You can add a stand-alone filter to one or more dimensions or query subjects to
limit the data that the query retrieves when the filtered dimension or query
subject is used in a report, or you can include it in a package to make it
available to your users. By moving a stand-alone filter or a shortcut to it into a
folder, you can better organize the model objects.
v Use an embedded filter when you want to use a filter with only one dimension
or query subject.
You can create an embedded filter when modifying a dimension, relational data
source query subject, or model query subject.
If you start with an embedded filter, you can later convert it into a stand-alone
expression that you can apply to other dimensions or query subjects. Tip:
Right-click the filter expression in the Filters tab and click Convert to
Stand-alone Filter.
When you embed a filter, the data source query subject must have a relationship
to any query subject referenced by the expression. This relationship is necessary
even if the expression references a model query subject based on the same table
as the data source query subject in which you are embedding the expression.
To create a filter on an unrelated query subject, do one of the following:
– Ensure that there is a join path between the new query subject and the one
that contains the filter.
– Base the embedded filter on a query item that is based on the data source
query subject you want.
– Convert the calculation to a stand-alone filter, so that it is not part of the
query subject.
– Create a stand-alone filter that references the embedded object.

Steps to create filters
Procedure
1. Do one of the following:
v To create a stand-alone filter, click the namespace or folder, and click
Actions, Create, Filter.
v If you want to create an embedded filter, double-click the dimension or
query subject that will contain the filter, click the Filters tab, and then click
Add.
2. In the Name box, type a name for the filter.
Chapter 5. Modeling relational metadata

145

3. Define the expression.
Tip: If there is an invalid expression in the filter, review the Tips box in the
expression editor for more information.
Goal

Action

Add query items and filters

On the Model tab, drag the objects you
want to the Expression Definition box.

Add functions

On the Functions tab, drag the functions to
the Expression Definition box.

Add parameters

On the Parameters tab, drag the parameters
to the Expression Definition box.

Retrieve all data and show a specified
number of rows

Click the options button, select the Restrict
the maximum number of rows to be
returned check box, and type the required
number of rows to be returned.

This setting does not improve performance
for retrieving data when testing dimensions,
query subjects, and query sets.
Override session parameters

Click the options button, click Set, enter a
value in the Override Value field, and click
OK.

Override prompt values

Click the options button, and then click
Prompts.
The Model Prompts Manager dialog box
displays, which shows all prompts, and their
values, that are in the model.

4. Click OK.

Results
You can also apply governors to restrict the data that the queries in a package
retrieve. For more information, see “Governors” on page 283.
You may be interested in the following related topics:
v
v
v
v
v
v

146

“Adding data security” on page 239
Appendix B, “Using the expression editor,” on page 365
“Creating parameter maps” on page 149
“Creating session parameters” on page 151
“Testing query subjects or query sets” on page 90
“Mandatory and optional prompts” on page 157

IBM Cognos Framework Manager Version 10.1.1: User Guide

Applying filters
To apply a filter, you must modify the dimension, data source query subject, or
model query subject. The query subject must either contain the query items that
the filter references, or have a relationship path to the query subjects that contain
the query items.
You can embed a stand-alone filter in dimensions or query subjects, but if you
want a different usage for each embedded filter, you must create different versions
of the stand-alone filter. Otherwise, your users could be required to fill in a prompt
that you thought was optional if there is any instance where the usage is set to
mandatory. For information about mandatory and optional prompts, see
“Mandatory and optional prompts” on page 157.
For example, in query subject A, you embed a stand-alone filter and define it as
optional. In query subject B, you define it as mandatory. When your users create a
report that uses both query subjects, they are required to choose values in both
filters, even the one defined as optional. All instances of the filter are considered to
be mandatory when used in the same query. The solution is to create different
versions of the filter, each with its own name.

Steps to apply a filter
Procedure
1. Create a filter.
2. Select the filter, and click Actions, Edit Definition.
3. Click the Filters tab, and drag the filter you created to the Filters box.
4. Select a usage value for the filter.
Usage Value

Description

Always

Use this usage value to ensure specified data
is filtered out of all reports. For example,
your company may have obsolete
information that it stores but does not want
to report on.
Always is the default usage value.

Design Mode Only

Retrieves a small subset of the data for the
sample report. Use this usage value when
you do not need to see all the data, for
example when testing a query subject.
To apply design mode filters in Framework
Manager, select the Apply all relevant
design mode filters when testing option.
This option is available on the Test Settings
tab.
Your users may need the design mode filter
in Query Studio when they want to focus on
designing the layout and format of a report
and not retrieve all the data as they work.
To access the design mode filter in Query
Studio, run the report with limited data.

Chapter 5. Modeling relational metadata

147

Usage Value

Description

Optional

Specifies that the filter is optional. The user
is prompted to filter data and can leave the
prompt blank. If the prompt is blank,
Framework Manager ignores the filter and
retrieves all data for the dimension or query
subject.
The ? ? syntax is required for optional
prompts.
Use this usage value if your users want to
control when the filter is applied. For
example, you want to see on one country
sometimes and see the data for all countries
at other times. An optional filter for country
looks like this:
([GeoNamespace].[Countries]
.[CountryName]
=
?WhichCountry?)

5. If you want to view the SQL, click the Query Information tab.
6. Click OK.

Example - showing the currency name for each country
You want to create a query that shows the currency name for a specific country. To
do this, you create a filter that returns data for a specific country code, and apply
the filter to a model query subject that retrieves the currency name for each
country.
The following example uses a relational data source.

Procedure
1. Open the go_sales sample model. It is located in c10_location/webcontent/
samples/Models/go_sales/go_sales.cpf
2. Create a filter to limit the retrieval of data to only those country codes in the
conversion rate table whose value is 2:
v Click the Filters folder, and then click Actions, Create, Filter and name the
new filter ConversionRateCountryCode.
v Click the Model tab.
v In the Available Components box, open the Database view folder and then
open the GoSales folder.
v Add the Country Code query item from Conversion Rate query subject to
the Expression definition box, and type ='2' at the end of the expression.
v Click OK.
3. Create a model query subject named ISO Code.
v In the Available Model Objects box, open the Database view folder.
v Add Country query item and the ISO 3-letter code query item from the
Country query subject to the Query Items and Calculations box.
4. Apply the ConversionRateCountryCode filter:
v Click the Filters tab.

148

IBM Cognos Framework Manager Version 10.1.1: User Guide

5.

6.

7.
8.

v Open the Filters folder and drag ConversionRateCountryCode to the Filters
box.
Click the Query Information tab.
The generated SQL contains the filter even though it does not affect the result
set.
Change the usage of the ConversionRateCountryCode filter to Optional:
v Click the Filters tab.
v Click the ellipsis (...) button under Usage for the
ConversionRateCountryCode filter, and click Optional.
If you want to view the SQL, click the Query Information tab.
Click OK.

Creating parameter maps
Use parameters to create conditional query subjects that allow for substitutions
when the report is run. Parameter maps are objects that store key-value pairs.
Parameter maps are similar to data source look-up tables. Each parameter map has
two columns, one for the key and one for the value that the key represents. You
can manually enter the keys and values, import them from a file, or base them on
existing query items in the model.
You can also export parameter maps to a file. To modify the parameter map, you
can export the map values to a file, do additions or modifications and then import
it back into IBM Cognos Framework Manager. This is especially useful for
manipulating large, complex parameter maps.
All parameter map keys must be unique so that Framework Manager can
consistently retrieve the correct value. Do not place quotation marks around a
parameter value. You can use quotation marks in the expression in which you use
the parameter.
The value of a parameter can be another parameter. However, you must enclose
the entire value in number signs (#). The limit when nesting parameters as values
is five levels.
When you use a parameter map as an argument to a function, you must use a
percentage sign (%) instead of a dollar sign ($).
Assign an alias to a query item that uses a parameter map as part of its name and
to add the multilingual names to the object in the Language tab (Properties pane).
Do not base a parameter map on a query item or table with a large result set, such
as 50,000 rows. Each time you use the parameter map in an expression or in SQL,
Framework Manager executes this large query. Performance is then slowed.
Parameter maps should be used for smaller lookup tables.

Steps to manually create a parameter map
Procedure
1. Click the Parameter Maps folder, and click Actions, Create, Parameter Map.
2. In the Name box, type a name for the new parameter map.
3. Click Manually enter the parameter keys, and/or import them from a file and
click Next.
Chapter 5. Modeling relational metadata

149

4. Do one of the following:
v To manually enter values, click New Key, type a key, and press Tab to enter
a value for that key.
v To import keys and values, click Import File and identify the location of the
appropriate .csv or .txt file. For a .txt file to be used for import, the values
must be separated by tabs and the file must be saved as UTF8 or Unicode
format. ANSI text files are not supported.
Note: If you are going to use a parameter in a data source query subject, the
value must use English-specific punctuation. This means that you must use a
period (.) to represent a decimal and a comma (,) to separate lists of values.
5. Modify existing parameters as required.
Goal

Action

Assign a default value

In the Default Value box, type a value.
If the key used in an expression is not
mapped, the default value is used.
Setting a default value is optional. However,
if no default is provided, an unmapped key
could produce an error.

Load on demand

A parameter map containing a large number
of keys may be slow to load when running a
report. You can restrict the load to only
those keys that are required for a specific
report by setting Load on demand to true.
By default, the value is set to false and all
keys are loaded.

Remove a parameter

Select a row and click Delete.

Modify a parameter

Select the row you want to modify, click the
Edit button, and type a value.

Clear all keys and values

Click Clear Map.

6. Click Finish.

Steps to base a parameter map on existing query items
Procedure
Click the Parameter Maps folder, and click Actions, Create, Parameter Map.
In the Name box, type a name for the new parameter map.
Click Base the parameter map on existing Query Items, Next.
Click the query item to use as the key, and then click the query item to use as
the value.
Both query items must be from the same query subject.
5. Click Next.
6. In the Default Value box, type a value.
If the key used in an expression is not mapped, the default value is used.
1.
2.
3.
4.

150

IBM Cognos Framework Manager Version 10.1.1: User Guide

Setting a default value is optional. However, if no default is provided, an
unmapped key could produce an error.
7. Click Finish.

Results

Example - Specifying language values for relational metadata
An international company stores its product information in English and French.
With the use of a parameter map and macros, employees can retrieve data that
matches the information they require.
Create a Language_lookup parameter map that contains the following:
Key

Value

en

EN

fr

FR

When you examine the SQL for the Product Line query subject, you see the
following:
Select
PRODUCT_LINE.PRODUCT_LINE_CODE,
#’PRODUCT_LINE.PRODUCT_LINE_’ + $Language_lookup{$runLocale}#
as Product_Line
from
[gosales].PRODUCT_LINE PRODUCT_LINE

The runLocale macro returns a locale setting that is used by the Language_lookup
macro to specify a language value.

Creating session parameters
A session parameter is a variable that IBM Cognos Framework Manager associates
with a session.
For example, user ID and preferred language are both session parameters. Because
session parameters are key and value pairs, you can think of each session
parameter as an entry in a parameter map named Session Parameters. You use a
session parameter in the same way that you use a parameter map entry, although
the syntax for session parameters is slightly different.
There are two types of session parameters: environment and model.
Environment session parameters are predefined and stored in Content Manager. By
default, the following session parameters display in Framework Manager:
v runLocale
Returns the code for the current active language in Framework Manager. The
model content is shown in this language.
You can change the active language at any time for your current session only. In
future sessions, the model continues to open in the design language. For more
information, see the section “Adding a language to a project” on page 122.
v account.defaultName

Chapter 5. Modeling relational metadata

151

Specifies the name of the current user as defined in the authentication provider.
For example, user's first and last name.
If you log on anonymously, you will see Anonymous.
v account.personalInfo.userName
Specifies the user ID used to log on to IBM Cognos BI.
If you log on anonymously, you will not see this parameter.
v current_timestamp
Specifies the current date and time.
v

machine
Specifies the name of the computer where Framework Manager is installed.

If your authentication source supports other parameters and you entered
information about them in the authentication source, you see other session
parameters, such as account.personalInfo.email or account.personalInfo.surname.
You can define additional parameters by using model session parameters. Model
session parameters are stored in a parameter map named _env. They are set in the
project and can be published with a package.
Model session parameters must have their values set within the scope of objects in
the Framework Manager model. The scope can include the use of existing
environment session parameters, as well as static values.
Each session parameter must have a name and a default value. You can define an
override value to test the results that value returns. The override value is valid
only when you have the model open, and is not saved when you save the model.
If no override value exists, Framework Manager uses the default value when it
executes a query that contains a session parameter.
The rules governing the use of parameters include the following:
v All possible return values must have the same data type.
v Only one value can be defined.

Steps to create session parameters
Procedure
1. Click Project, Session Parameters.
2. Click New Key and type a session parameter key and value.
3. Choose how to handle the override value.
v To avoid having to set the override value every time you edit the project, set
the session parameter as a value.
v To avoid having to remove the project setting each time before you publish
it, set the session parameter as a session override.
4. Modify existing parameters as required.

152

Goal

Action

Change the parameter value

Click the row that contains the value you
want to change, click Edit, and type a value.

Assign a default value

In the Default Value box, type a value.
Framework Manager uses the default value
if a key has an invalid value.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Remove a parameter

Click a row and click the Delete button. You
cannot delete an environment session
parameter.

Clear an override value

Click a row and click Clear Override.

5. Click OK.

Using parameters with relational data source query subjects
Model objects do not reflect changes to the data source objects on which they are
based. Therefore, when you add a parameter to a data source query subject,
consider whether you want to create a model object that references the parameter.
If so, you must assign an alias to the parameterized object in the data source query
subject. This ensures that model query subjects, filters, or calculations that
reference the object return the correct results when the parameter value changes.
For example, the following SQL defines a data source query subject that contains a
session parameter named runLocale. The runLocale parameter value specifies
which column the query retrieves. The alias behaves like a shortcut so that when a
model object references CountryNameAlias, IBM Cognos Framework Manager
retrieves the value to which the alias is assigned.
Select
#$ColumnMap{$runLocale}# as
CountryNameAlias
From
[GoSales].Country

Creating prompts with query macros
Macros are fragments of code that you can insert anywhere in the Select statement
that defines a query subject. You can include references to session parameters,
parameter maps, and parameter map entries. Parameter values are set when you
run the query.
For example, you can use the language session parameter to show only the data
that matches the language setting for the current user.
Macros can be used in these different ways:
v They can be inserted in the SQL.
An example is Select * from Country where Country.Name =
#$myMap{$runLocale}#
v They can supply an argument to a stored procedure query subject.
If a value is not hard-coded for the argument, the stored procedure query
subject can be used to return different data.
v They can be inserted in expressions, such as calculations and filters.
An example is a filter [gosales].[Sales staff].[Staff name] =
#$UserLookUpMap{$UserId}#
v They can be used to dynamically complete the properties of a data source query
subject.
This enables different users to supply different connection information and thus
access different data sources. The properties that can contain macros are:
Content Manager Datasource, Catalog, Cube, and Schema.

Chapter 5. Modeling relational metadata

153

An example using the Content Manager Datasource property is
#$DataSourceMap{$UserId}#
v They can be used as a parameter wizard.
Parameters can reference other parameters. An example is Map1, Key = en-us,
Value = #$myMap{$UserId}#
v They can be used in the Session Parameter dialog box.
An example is MySessionParameter, value = #$myMap{$UserGroup}#
You can replace the following query subject elements with a parameter.
Element

Example

Query items identified in the Select list

#’Product_name_’+ $languageCode#

Tables identified in the From clause

Product_#$language#

Where clause

Product_lang = #sq($languageCode)#

Name of the data source, schema, or source
property

#$data_source#.#$schema#.Products

Syntax
Use the following syntax to reference session parameter and parameter values.
Object

Syntax

Example

Session key

$session_key

#$my_account#

Parameter map key

$map{}

#$map_one{’abc’}#

Parameter map entry whose
key is defined by a session
parameter

$map{$session_key}

#$map_one{$my_account}#

You can add the following elements to further define the macro expression.

154

IBM Cognos Framework Manager Version 10.1.1: User Guide

Symbol

Purpose

Single quotation marks '

Delineates a literal string that has a single
quotation mark as part of the string.
If the single quotation mark displays in a
string, such as a query item, the string must
be enclosed in a single quotation mark on
both sides of the string and the single
quotation mark must be doubled. For
example, ab'c is written as ’ab’’c’
If the single quotation mark displays in a
macro, the string must be enclosed in square
brackets. For example, ab'c is written as
[ab’c]
If the single quotation mark displays in a
prompt, there is no need to enclose the
string.
To escape a single quotation mark in an
expression, use '

Square brackets [ ]

Encloses model objects, such as a namespace
or query subject and macro names that
contain restricted characters, such as a
number sign, hyphen, or space.

Curly brackets, also known as braces { }

Calls a function that is unknown to the
parser, such as dateadd in DB2, and whose
first argument is a keyword.
Example:
dateadd
({month},2,)

+ operator

Concatenates two strings, such as ’abc’ +
’xyz’

Single quote function (sq)

Surrounds the result of a string expression
with single quotation marks. Existing single
quotation marks are double-escaped so that
they do not interfere with the quotation
structure. You can use this function to build
clauses to test against literal
parameter-driven values.
Here is an example:
#sq($my_sp)#
If a session parameter (my_sp) has the value
ab'cc, the result is
’ab"cc’

Chapter 5. Modeling relational metadata

155

Symbol

Purpose

Double quote function (dq)

Surrounds the result of a string expression
with double quotation marks. You can use
this function to refer to table and column
names with non-identifier characters, such
as a blank space or a percent sign (%).
Here is an example:
#dq
(’Column’ + $runLocale)#
If runLocale=en-us, the result is
"Column en-us"

Square bracket function (sb)

Inserts a set of square brackets into the
argument to build object references in a
model query and model expressions, such as
filters and calculations.
Here is an example:
#sb
(’my item in ’ + $runLocale)#
If runLocale=en-us, the result is
[my item in en-us]

For information about functions, see Appendix B, “Using the expression editor,” on
page 365.

Creating macros
Macros are fragments of code that you can insert anywhere in the Select statement
that defines a query subject. You can include references to session parameters,
parameter maps, and parameter map entries. Parameter values are set when you
run the query.
When you reference a parameter, you must do the following:
v Use a number sign (#) at the beginning and end of each set of one or more
parameters.
Everything between the number signs is treated as a macro expression, which is
processed at runtime. Framework Manager removes anything that is outside the
number signs.
v Precede each parameter map entry with a dollar sign ($)
v Use a name that starts with an alpha character (a..z, A..Z)
Do not insert macros between existing quotation marks or square brackets because
IBM Cognos Framework Manager does not execute anything within these
elements.

Procedure
1. Select the data source query subject you want to modify.
2. Click Actions, Edit Definition.
3. On the SQL tab, click Insert Macro to start the Macro Editor.

156

IBM Cognos Framework Manager Version 10.1.1: User Guide

4. In the Available components box, click the parameter maps, session
parameters, or functions you want to use, and drag them to the Macro
definition box.
Ensure that you type the macro expression between the number signs. If you
enter text before or after the number signs, when you click OK, Framework
Manager deletes this text.
5. Insert single or double quotation mark functions.
for a menu of choices
Tip: Click the arrow next to these buttons
for placing the quotation marks.
6. If you want to edit a parameter map or session parameter, click it in the Macro
definition box.
The Parameter Map or Session Parameters dialog box displays. You can set
override values for session parameters, add new items, or change values.
7. Check the macro in the Information box.
If a macro is incorrect, an error message displays.
Tip: To clear a macro, click the clear all icon
8. Click OK.

.

Mandatory and optional prompts
You can create mandatory and optional prompts in IBM Cognos Framework
Manager models by using query macros. You can use two prompt macro functions,
prompt and promptmany, to create single value prompts and multiple value
prompts. You can insert a prompt macro anywhere in the SQL statement that
defines the query subject.
If you want to use a prompt macro in an expression such as a calculation, you
must specify the data type when using an overloaded operator, such as a plus sign
(+). You can use the plus sign to concatenate two items and to add two items.
If you want to define a filter on a dimension level and have the filter use the
prompt or promptmany macro, you must provide the data type as memberuniquename
and a default value. For information about applying filters, see “Applying filters”
on page 147.
Here is an example:
members( [MS_gosales].[New Dimension].[PRODUCTLINE].[PRODUCTLINE])
in ( set( #promptmany(’what’, ’memberuniquename’,
’[MS_gosales].[PROD1].[PRODUCTLINE].[PRODUCTLINE]
->[all].[1]’)# ) )

Here is an example of a mandatory prompt:
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY = #prompt(’CountryName’)#

When default values are specified in the syntax of macro prompts, you may see an
error. Use prompt syntax such as where Country = ?Enter Country?.

Chapter 5. Modeling relational metadata

157

The prompt and promptmany functions have the following parameters. All argument
values must be specified as strings.

Name
This mandatory parameter is the name of the prompt. Name can also refer to the
name of a parameter on a user-created prompt page, in which case the user-created
prompt page appears when the report is run instead of the default prompt page
that the macro would generate.

Datatype
This optional parameter is the prompt value data type. The default value is string.
Prompt values are validated. In the case of strings, the provided value is enclosed
in single quotation marks and embedded single quotation marks are doubled.
Values include the following:
v boolean
v date
v datetime
v decimal
v double
v
v
v
v
v
v

float
int
integer
interval
long
memberuniquename

Memberuniquename is not an actual data type. This value must be used when
the data type of the parameter is member unique name (MUN).
v numeric
v real
v short
v
v
v
v
v

string
time
timeinterval
timestamp
token

Token is not an actual data type. It is a way to pass SQL. A token does not pass
values.
v xsddate
v xsddatetime
v xsddecimal
v
v
v
v
v

158

xsddouble
xsdduration
xsdfloat
xsdint
xsdlong

IBM Cognos Framework Manager Version 10.1.1: User Guide

v xsdshort
v xsdstring
v xsdtime

DefaultText
This optional parameter is the text to be used by default. If a value is specified, the
prompt is optional.
If you use a space and no values are provided in the Prompt Value dialog box, a
Where clause is usually not generated.
If you use text and no values are provided in the Prompt Value dialog box, a
Where clause is usually generated using the default value.
Ensure that the text you provide results in a valid SQL statement.
Note: If the data type is memberuniquename, a value for the DefaultText parameter
must be provided. For example:
(#prompt(’WhichLevel’, ’memberuniquename’,
’[goSalesAgain].[PRODUCT1].[PRODUCT].[PRODUCT(All)]->[all]’)#)

Text
This optional parameter is text that precedes any user-provided values, such as
'and column1 = '.

QueryItem
This parameter is optional. The prompt engine can take advantage of the Prompt
Info properties of the query item. Descriptive information can be shown, although
the prompt value is a code.

TextFollowing
This optional parameter is the closing parenthesis that is used most often for the
promptmany function. This parameter is also useful when the prompt is optional
and is followed by hardcoded filters in the SQL statement.

Examples - selecting country or region prompts
When a report is run, you want your users to be prompted to choose the country
or region for which they want to see data. The following code examples describe
how you can use macros to create different prompts.
Mandatory prompt with no data type specified:
Note the following:
v The Datatype argument is not specified. Therefore, it is a string, which is correct
in this case.
v The DefaultText argument is not specified. Therefore, it is a mandatory prompt.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
Chapter 5. Modeling relational metadata

159

from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY = #prompt(’CountryName’)#

Mandatory prompt with the data type specified:
Note the following:
v This prompt requires a valid integer value as response.
v The DefaultText argument is not specified. Therefore, it is a mandatory prompt.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY_CODE >
#prompt(’Starting CountryCode’,
’integer’,
’’,
’’,
’[gosales].[COUNTRY_MULTILINGUAL].[COUNTRY_CODE]’)#

Optional prompt and mandatory filter with the data type and default value
specified:
Note the following:
v This prompt allows the user to supply a valid integer response.
v The DefaultText argument is specified. Therefore, the user may omit entering a
value, in which case the value 10 is used. This makes it an optional prompt, but
not an optional filter.
Example 1:
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY_CODE >
#prompt(’Starting CountryCode’,
’integer’,
’10’
)#

Example 2:
[gosales].[COUNTRY].[COUNTRY] = #prompt(’countryPrompt’,’string’,’’’Canada’’’)#
Result 2:
[gosales].[COUNTRY].[COUNTRY] = 'Canada’

Note the following:
v The defaultTextparameter must be specified such that is literally valid in the
context of the macro, because no formatting takes place on this value. See details
below.
v The default string Canada in Example 2 is specified as a string using single
quotes, in which the embedded single quotes are doubled up, thus 3 quotes.
This results in the string being properly displayed within single quotes in the
expression.

160

IBM Cognos Framework Manager Version 10.1.1: User Guide

v As a general rule for the string datatype, the defaultText should always be
specified as in the previous note, except in the context of a stored procedure
parameter.
v For the defaultText of types date or datetime, a special format should be used
in the context of SQL. Examples of these formats are ’DATE ’’2001-12-25’’’ and
’DATETIME ’’2001-12-25 12:00:00’’’. In all other contexts, you use the
date/datetime without the keyword and escaped single quotes (e.g.,
’2001-12-25’).
Prompt that appends text to the value:
Note the following:
v The DefaultText argument is specified as a space character. In this case, the
generated text is just the space character, which eliminates the Where clause from
the query.
v The Text argument is specified, which is written into the generated SQL before
the user-provided prompt value.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
#prompt(’Starting CountryCode’,
’integer’,
’ ’,
// < = = this is a space
’where COUNTRY_MULTILINGUAL.COUNTRY_CODE >’
)#

Syntax substitution:
Note the following:
v The Datatype argument is set to token, which means that the user-provided
value is entered without any checking on the provided value.
Because checking is not performed on the value, the expression editor may
indicate that the expression is not valid. When a valid user-provided value is
supplied or if you provide a valid default value, expression editor will interpret
the expression as valid.
v Token should be used only if there is a list of pick-values for the user.
v The DefaultText argument is specified. Therefore, this is an optional prompt and
group by COUNTRY is used in the generated SQL.
Select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
#prompt(’Sort column’,
’token’,
’group by COUNTRY’,
’group by ’
)#

Examples - creating prompts that use parameter maps
When a report is run, you want your users to select a language for the data in the
report. The following examples describe several ways you can do this.
Chapter 5. Modeling relational metadata

161

Prompt that uses session variables:
Note the following:
v The name of the prompt is specified using a lookup in the parameter map
named PromptLabels. The key value is the session variable $language.
v The Where clause is using a parameterized column.
select
ORDER_METHOD.ORDER_METHOD_CODE as ORDER_METHOD_CODE,
ORDER_METHOD.ORDER_METHOD_#$language#
as ORDER_METHOD_EN
from
gosales.gosales.dbo.ORDER_METHOD ORDER_METHOD
#prompt($PromptLabels{$language},
’’,
’ ’,
’where ORDER_METHOD.ORDER_METHOD_’ + $language + ’
>’
)#

A parameter map that nests prompts:
Note the following:
v In the model, there is a parameter map DynPromptLabels with
#$PromptLabels{$language}#
v Part of the prompt information is run from a parameter map instead of being
coded directly inside the SQL.
v The whole macro containing the prompt can be a value in a parameter map.
select
ORDER_METHOD.ORDER_METHOD_CODE as ORDER_METHOD_CODE,
ORDER_METHOD.ORDER_METHOD_#$language#
as ORDER_METHOD_EN
from
gosales.gosales.dbo.ORDER_METHOD ORDER_METHOD
#prompt($DynPromptLabels{’ex9’},
’’,
’ ’,
’where ORDER_METHOD.ORDER_METHOD_’ + $language + ’
>’
)#

Examples - creating a multiple value prompt
When a report is run, you want your users to select one or more values. The
following examples describe several ways you can do this.
Prompt with a required minimum:
Note the following:
v The user must enter at least a single value.
v This resembles the first example on prompting for a country or
region“Mandatory prompt with no data type specified” on page 159.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY IN (#promptmany(’CountryName’)#)

162

IBM Cognos Framework Manager Version 10.1.1: User Guide

Prompt with a required minimum with the data type specified:
Note the following:
v This resembles the second example on prompting for a country or
region“Mandatory prompt with the data type specified” on page 160.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY_CODE
IN (
#promptmany(’Selected CountryCodes’,
’integer’,
’’,
’’,
’[gosales].[COUNTRY_MULTILINGUAL].[COUNTRY_CODE]’)#
)

Optional prompt with the data type and default value specified:
The In clause and both parentheses are part of the SQL statement.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
where COUNTRY_MULTILINGUAL.COUNTRY_CODE IN (
#promptmany(’Selected CountryCodes’,
’integer’,
’10’
)#
)

Prompt that adds text before the syntax:
Note the following:
v This example uses the TextFollowing argument.
select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
#promptmany(’Selected CountryCodes’,
’integer’,
’ ’,
// < = = this
is a space
’where COUNTRY_MULTILINGUAL.COUNTRY_CODE IN
( ’,
’’,
’)’
)#

Optional prompt that adds text before the syntax:
Select
COUNTRY_MULTILINGUAL.COUNTRY_CODE as COUNTRY_CODE,
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
Chapter 5. Modeling relational metadata

163

COUNTRY_MULTILINGUAL."LANGUAGE" as LANGUAGE1,
COUNTRY_MULTILINGUAL.CURRENCY_NAME as CURRENCY_NAME
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL,
gosales.gosales.dbo.COUNTRY XX
where COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE
#promptmany(’Selected CountryCodes’,
’integer’,
’ ’,
’ and COUNTRY_MULTILINGUAL.COUNTRY_CODE IN (’,
’’,
’)’
)#

Organizing models
When you organize the model, you make it easier for your users to find and
understand the data in the model. You also make the model easier for you to
manage and maintain.
A best practice is to create several views, or layers, in the model:
v Keep the metadata from the data source in a separate namespace or folder.
In IBM Cognos Framework Manager, this is called the import view.
v Create one or more optional namespaces or folders for resolving complexities
that affect querying using query subjects or dimensional objects.
To use IBM Cognos Analysis Studio or any OLAP-style queries, there must be a
namespace or folder in the model that represents the metadata with dimensional
objects.
v Create one or more namespaces or folders for the augmented business view of
the metadata that contains shortcuts to dimensions or query subjects.
In Framework Manager, these are called the business view. Use business
concepts to model the business view. One model can contain many business
views, each suited to a different user group. You publish the business views.
Security can be defined in any of the views. It depends on your business
requirements. For example, if you need to keep everyone from viewing an object,
you add security to the object in the import view. Typically security is applied in
the business view.

Creating star schema groups
Use the Star Schema Grouping wizard to quickly create groups of shortcuts that
will provide context for your users regarding which objects belong together. This
makes the model more intuitive for your users. Star schema groups can also
facilitate multiple-fact reporting by allowing the repetition of shared dimensions in
different groups. This helps your users to see what different groups have in
common and how they can do cross-functional, or multiple-fact, reporting. For
more information, see “Multiple-fact, Multiple-grain Queries” on page 306.
Star schema groups also provide context for queries with multiple join paths. By
creating star schema groups in the business view of the model, you can clarify
which join path to select when many are available. This is particularly useful for
fact-less queries.

164

IBM Cognos Framework Manager Version 10.1.1: User Guide

In a star schema design, numeric, transactional data is contained in a central fact
table with related dimension tables radiating out from the fact table.

Star schema groups can contain the selected dimensions, query subjects, or
shortcuts. The objects in a star schema group cannot reference, or be referenced by,
any object outside the group. Therefore, Framework Manager automatically creates
a shortcut for any object that is referenced by an object outside the group.
For example, in a project for sales analysis, you include these dimensions:
v dates of sales (Time)
v locations of sales (Region)
v product details (Product)
v customer information (Customer)
You include quantity in the fact table.

Creating a star schema
Procedure
1. Select one or more dimensions or query subjects.
2. Click Tools, Create Star Schema Grouping.
3. If you want to exclude an object from the group, in the Available objects box,
clear the check box next to the object.
4. Do one of the following:
v To add shortcuts to the group, click Create a shortcut for all selected
objects.
v To move the objects to the group, click Create shortcuts only for objects that
are used outside the star schema.
5. To move the selected objects to a separate namespace, ensure that the Create a
new namespace for this grouping check box is selected and type the name in
the Namespace name box.
6. Click OK.

Chapter 5. Modeling relational metadata

165

7. If there are multiple relationships, also known as role-playing dimensions,
create relationship shortcuts for them “Creating a relationship shortcut” on
page 73, or create individual dimensions or query subjects if you must rename
them.

A star schema group based on one dimension or query subject
Generally, you select a single object when it is a fact that has a relationship to
every dimension or query subject that you want in the star schema group. When
you create a star schema group that is based on one object, the following occurs:
v Framework Manager shows a list of objects with which it has relationships so
that you can quickly select the objects that you want in the group.
v The name of the group is based on the name of the fact table.
v The new group is created under the same parent as the selected object.

A star schema group based on multiple dimensions or query
subjects
Selecting multiple dimensions or query subjects is useful if you want to group
dimensions or query subjects that do not already have relationships defined. The
new group is placed under the nearest common parent of the dimensions or query
subjects.

Resolving multiple conformed star schemas
You will likely see dimensional query subjects that are joined to more than one fact
query subject. Join ambiguity is an issue when you report using items from
multiple dimensions or dimensional query subjects without including any items
from the measure dimension or fact query subject. This is called a fact-less query.
For example, Product and Time dimensions are related to the Product forecast and
Sales facts.

166

IBM Cognos Framework Manager Version 10.1.1: User Guide

Using these relationships, how do you write a report that uses only items from
Product and Time? The business question could be which products were forecasted
for sale in 2005 or which products were actually sold in 2005. Although this query
involves only Product and Time, these dimensions are related through multiple
facts. There is no way to guess which business question is being asked. You must
set the context for the fact-less query.
In this example, we recommend that you create two namespaces, one containing
shortcuts to Product, Time, and Product forecast, and another containing Product,
Time, and Sales.

Chapter 5. Modeling relational metadata

167

When you do this for all star schemas, you resolve join ambiguity by placing
shortcuts to the fact and all dimensions in a single namespace. The shortcuts for
conformed dimensions in each namespace are identical and are references to the
original object. Note: The exact same rule is applied to regular dimensions and
measure dimensions.
With a namespace for each star schema, it is now clear to your users which items
to use. To create a report on which products were actually sold in 2005, they use
Product and Year from the Sales Namespace. The only relationship that is relevant
in this context is the relationship between Product, Time, and Sales, and it is used
to return the data.
Resolving a star schema:
Procedure
1. Select one of the measure dimensions.
2. From the Tools menu, click Create Star Schema Grouping.
3. If you want to exclude an object from the group, in the Available objects box,
clear the check box next to the object.
4. Click Create a shortcut for all selected objects.
5. To move the selected objects to a separate namespace, ensure that the Create a
new namespace for this grouping check box is selected and type the name in
the Namespace name box.
6. Click OK.
7. Repeat these steps for the other measure dimension.

Modeling snowflaked dimensions as star dimensions
A snowflaked dimension removes low-level cardinality attributes from the
dimension tables and places them in secondary dimensions that are linked back to
the original dimensions by artificial keys.
To model a snowflaked dimension as a star dimension, do the following:

Procedure
1. Select the query subjects that are required to access the data, and put them in a
new namespace “Creating folders or namespaces” on page 172.
2. Ensure that all relationships are correct “Relationships” on page 68.
3. Handle multilingual metadata “Multilingual metadata” on page 118.

168

IBM Cognos Framework Manager Version 10.1.1: User Guide

4. Create a model dimension for each snowflaked dimension:
v Select the query subjects you need.
v Click Actions, Merge in New Regular Dimension.
v Rename the new model dimension. By default, its name is composed of the
concatenated names of the original objects.
5. If you require multiple levels, do one of the following:
v Use the dimension map to define hierarchies and levels for the dimension
“Creating regular dimensions” on page 103.
v Specify determinants if the levels are stored in a single query subject
“Determinants” on page 82.

Shortcuts
A shortcut is a pointer to an object, such as a relationship, a dimension, a query
subject, or a folder. Use shortcuts in the business view when there is an overlap
between user groups and you want to include the metadata in more than one
folder. With shortcuts, you can have multiple references to an object.
For example, you create folders named Orders, Products, and Customers. If you
want both Orders and Customers to contain the same dimension, you must create
a shortcut to the dimension and add it to both folders.
Note: Two shortcuts to namespaces or folders must not have the same name in a
model. For other types of shortcuts (e.g., a shortcut of a query subject), the name
must be unique within the parent namespace.
When you create a shortcut, IBM Cognos Framework Manager does not set the
Screen Tip and Description properties. Unless you define these properties, the
values shown in the IBM Cognos studios are the same as those defined in the
object that the shortcut references.
Tip: To go to the object that the shortcut references, right-click the shortcut and
click Go To Target.
Shortcuts are less flexible from a presentation perspective than model objects, but
they require much less maintenance because they are automatically updated when
the target object is updated. If maintenance is a key concern and there is no need
to customize the appearance of the query subject, use shortcuts.
IBM Cognos Framework Manager has two types of shortcuts:
v regular shortcuts, which are a simple reference to the target object.
v alias shortcuts, which behave as if they were a copy of the original object with
completely independent behavior. Alias shortcuts are available only for query
subjects and dimensions.
Regular shortcuts are typically used as conformed dimensions with star schema
groups, creating multiple references with the exact same name and appearance in
multiple places. In the example below, the shortcuts created for Products and
Order Time behave as references. If a query is written that brings Products from
both Product Forecast and Sales Target, the query uses the definition of Products
based on the original and this definition appears only once in the query.

Chapter 5. Modeling relational metadata

169

Alias shortcuts are typically used in role-playing dimensions or shared tables.
Because there is already an example in this document for role-playing dimensions,
we will look at the case of shared tables. In this example, Sales Staff and Sales
Branch can be treated as different hierarchies. From our knowledge of the data, we
know that because staff can move between branches, we need to be able to report
orders against Sales Branch and Sales Staff independently as well as together. To
achieve this, we need to create an alias to Sales Branch that can be used as a level
in the Sales Staff hierarchy.

With the new alias shortcut in place, it is possible to create queries that require
orders by sales branch and orders by sales staff with their current branch
information simultaneously.

Shortcuts and relationships
When you decide where to place shortcuts, consider how the scope of the shortcut
affects relationships. Shortcuts in a different folder from the target query subject
use the relationships of the target query subject. Shortcuts in the same folder as the
target query subject ignore the relationships of the target query subject and use
only those specified for the shortcut.

170

IBM Cognos Framework Manager Version 10.1.1: User Guide

You can specify a different relationship for a shortcut than the relationships of the
target query subject. By creating relationships from the shortcut to other query
subjects, you avoid cross-join errors in the model.
You cannot create shortcuts to scope relationships.

Shortcuts and dimensions or query subjects
Shortcuts result in fewer dimensions or query subjects to maintain. You can keep
dimensions or query subjects in the import view and keep shortcuts in the
business view. Shortcuts are most frequently used when creating star schema
groups.
When you create a shortcut to a dimension or query subject, you cannot customize
which query items are in the shortcut. The entire dimension or query subject is
included in the shortcut.
When you open a model from a previous release, the Shortcut Processing
governor is set to Automatic. When Automatic is used, shortcuts work the same as
in previous releases, that is, a shortcut that exists in the same folder as its target
behaves as an alias, or independent instance, whereas a shortcut existing elsewhere
in the model behaves as a reference to the original. To take advantage of the Treat
As property, it is recommended that you verify the model and, when repairing,
change the governor to Explicit. The repair operation changes all shortcuts to the
correct value from the Treat As property based on the rules followed by the
Automatic setting, this means that there should be no change in behavior of your
model unless you choose to make one or more changes to the Treat As properties
of your shortcuts.
When you create a new model, the Shortcut Processing governor is always set to
Explicit.
When the governor is set to Explicit, the shortcut behavior is taken from the Treat
As property and you have complete control over how shortcuts behave without
being concerned about where in the model they are located.
Shortcuts can be created by the Create Star Schema Grouping wizard. For
example, a fact table and its dimension tables are stored in the import view. If you
want to represent conformed dimensions in several star schema groups, only one
dimension or query subject can exist for each dimension table. Use shortcuts for all
other instances of the dimension or query subject. By using shortcuts, you can
build queries involving multiple fact tables that are related through shared
dimension tables.
In the case of role-playing dominions, there are two main approaches documented
in “Role-Playing Dimensions” on page 321. You can create a query subject and
regular dimension for each role and then use shortcuts as references in star schema
groups to allow the use of the role-playing dimensions as conformed dimensions,
or you can create a shortcut for each role in each star schema group and create a
new join between each role-playing shortcut and its related fact shortcut. As long
as the target of the shortcuts is not contained in the same folder, all shortcuts
behave as aliases.
The security you specify for an object is passed to shortcuts that reference the
secured object. If you have a shortcut to a secured object, only users with
permission to see the secured object can see the shortcut in the published package.
Chapter 5. Modeling relational metadata

171

If a shortcut is to a dimension or query subject, you can specify the behavior for
the shortcut in the Treat As property. You can set the property to one of the
following:
v Reference
Use when you want an exact replica of a query subject in several places to
behave as one object if referenced in the same query.
v Alias
Use when you want an exact replica of a query subject to behave as an
independent object that follows an independent join path. Independent join
paths must first be defined in the model.
The Shortcut Processing governor controls the behavior for all shortcuts. The
Shortcut Processing governor takes priority over the Treat As property. For
example, if the governor is set to Automatic, the behavior of the shortcut is
determined by the location of the shortcut relative to its target no matter what the
setting of the Treat As property. For more information, see “Governors” on page
283.

Steps to create shortcuts
Procedure
1. Right-click the query subjects, dimensions, or folders that you want to create
shortcuts to, and do one of the following:
v Click Create, Alias Shortcut.
v Click Create, Shortcut.
v Click Create Star Schema Grouping. This command is also available from
the Tools menu.
2. For shortcuts to query subjects or dimensions, in the Properties pane, set the
Treat As property to Alias or Reference.

Creating folders or namespaces
You can create folders or namespaces to organize objects in the model.
The most important thing to know about namespaces is that once you have begun
authoring reports, any changes you make to the names of published namespaces
will impact your IBM Cognos content. This is because changing the name of the
namespace changes the IDs of the objects published in the metadata. Because the
namespace is used as part of the object ID in IBM Cognos Framework Manager,
each namespace must have a unique name in the model. Each object in a
namespace must also have a unique name. Part of the strategy of star schema
groups is placing shortcuts into a separate namespace, which automatically creates
a unique ID for each object in the namespace. For relational databases, this allows
us to use the same name for shortcuts to conformed dimensions in different star
schema groups.
The next time you try to run a query, report, or analysis against the updated
model, you get an error. If you need to rename the namespace that you have
published, use Analyze Publish Impact to determine which reports are impacted.
Folders are much simpler than namespaces. They are purely for organizational
purposes and do not impact object IDs or your content. You can create folders to
organize objects by subject or functional area. This makes it easier for you to locate
metadata, particularly in large projects.

172

IBM Cognos Framework Manager Version 10.1.1: User Guide

The main drawback of folders is that they require unique names for all query
subjects, dimensions, and shortcuts. Therefore, they are not ideal for containing
shared objects.
Tip: When viewing metadata in the Diagram tab, you can expand or collapse
folders and namespaces. From the Diagram menu, click Collapse All or Expand
All.
If you set security on a folder and then move objects into the folder, confirm that
exclusions are set correctly.

Steps to create a folder
Procedure
1. Click Actions, Create, Folder.
2. In the Folder name box, type a name for the new folder.
3. Click Next.
4. Choose whether to move the objects or to create shortcuts:
v To move selected objects to the folder, click Move the selected items to the
new folder. When you move an object that participates in a relationship, the
relationships to this object also move.
v To create shortcuts that reference selected objects, click Create a shortcut for
the selected items. Do not select all the objects in the namespace to avoid
creating a recursive structure in the published package.
5. Select the objects you want to add to the folder.
6. Click Finish.

Steps to create a namespace
Procedure
1. Click Actions,Create, Namespace.
2. Right-click the namespace, click Rename, and give the namespace a descriptive,
unique name.
3. Add objects by importing metadata or moving model objects or shortcuts to the
objects into the namespace.

Creating query item folders
If you create a query item folder, you cannot change the order of query items in
the Edit Definition dialog box for the model query subject. You can change the
order of items only in the Project Viewer.
You can create query item folders to organize query subjects or dimensions that
contain a large number of query items. A query item folder can contain only query
items and query item folders.

Steps to create a query item folder
Procedure
1. In the Project Viewer pane, click a query subject or dimension.
2. Click Actions, Create, Query Item Folder.
A new query item folder displays in the Project Viewer, under the query items
that belong to that query subject or dimension.
Chapter 5. Modeling relational metadata

173

3. Drag the query items that you want into the query item folder.
You cannot add query items that do not exist in the parent query subject or
dimension.

Creating measure folders
You can create measure folders to organize measure dimensions that contain a
large number of query items. You can nest measure folders within other measure
folders.
You cannot create a measure folder from a measure shortcut.
If you create a measure folder, you cannot change the order of measures in the
Edit Definition dialog box for the measure dimension. You can change the order
of measures only in the Project Viewer.

Steps to create a measure folder
Procedure
1. In the Project Viewer pane, click a measure dimension.
2. Click Actions, Create, Measure Folder.
A new folder displays in the Project Viewer, under the measures that belong to
that measure dimension.
3. Drag the query items that you want into the measure folder.
You cannot add measures that do not exist in the parent measure dimension.

Durable models
When building a model, you must consider the possibility of later changes to user
requirements that you might need to reflect in the model. Your goal is to build a
flexible model that can withstand necessary changes without impacting existing
reports, report authors, and end users.
Renaming query items is one of the most frequent changes that modelers need to
implement in their models. If your models are durable, you can make these types
of changes quickly, with no impact on existing reports. The calculations and filters
that reference the renamed query items also remain valid.
Durable models are useful in both single-language and multilingual environments
when renaming query items as a result of changing business requirements. In a
multilingual environment, durable models also simplify the translation process by
allowing you to specify language-specific labels for query items without the risk of
breaking existing report references for other languages.
When working with durable models, remember the following conditions:
v Specify a proper design language for your project.
Choose the locale version of the language that is not included in your business
requirements. This could be a less-frequently used locale, for example, English
(Zimbabwe). You cannot change the design language of a project after you create
a model.
v Do not use the design language as the active language.
When you create a new project, the design language automatically becomes the
project active language. Ensure that you change this by assigning other language
as the active language for your project.

174

IBM Cognos Framework Manager Version 10.1.1: User Guide

v Rename your query items only in the active languages of the project.
When making changes, ensure that your current project active language is not
the same as the project design language.
v Do not change the structure of published packages.
The structure of namespaces, query subjects, query items, dimensions, shortcuts,
and so on, must remain unchanged.
To make your model durable, set the project property Use Design Locale for
Reference ID to true.
Note: Durable model processes are not supported for dimensional modeling of
relational data sources (DMR).
For more information about durable models, access the Proven Practices
documentation in the Support section of the IBM Cognos Customer Service Center
(http://www.ibm.com/software/data/support/cognos_crc.html).

Creating a durable model
Procedure
1. From the Welcome page, click Create a new project.
Tip: If you are in IBM Cognos Framework Manager, click New from the File
menu.
2. In the New Project page, specify a name and location for the project, and click
OK.
3. In the Select Language page, click the design language for the project, and
then click OK.
Ensure that you choose the proper design language, as documented earlier in
this section. You cannot change the language that you select after you click
OK, but you can add other project languages later.
4. In the Metadata Wizard, click Next to import your metadata.
5. Follow the instructions in the Metadata Wizard:
v Select a data source connection, and click Next.
If the data source connection that you want is not listed, you must first
create it “Creating data source connections” on page 44.
v Select the check boxes for the objects that you want to import.
v Specify how the import should handle duplicate object names. Choose
whether to import and create a unique name. If you choose to create a
unique name, the imported object displays with a number. For example,
you see QuerySubject and QuerySubject1 in your project.
v If you want to import system objects, select the Show System Objects
check box, and then select the system objects that you want to import.
v Specify the criteria to use to create relationships, and click Import.
For more information, see “Relationships” on page 68.
You see a list of objects that could not be imported, and a count of objects that
were imported.
6. Click Finish.
Save the project file (.cpf) and all related files in one folder. When you save a
project with a different name or format, ensure that you save the project in a
separate folder.
Chapter 5. Modeling relational metadata

175

7. Click the project name in Project Viewer, and set the project property Use
Design Locale for Reference ID to true.
Note: Changing this property back to false later, after renaming query items
in the model, would result in breaking reports based on this model.
8. Click Project, Languages, Define languages, and add the required languages
to the project choosing one of them as Active language.
When you specify the active language, ensure that it is not the same as the
design language. For more information, see “Adding a language to a project”
on page 122.
9. Save the project.
10. Create the required packages, and publish them to IBM Cognos Connection.
Use the published packages to create content in IBM Cognos Report Studio,
IBM Cognos Query Studio, or IBM Cognos Event Studio. For example, create
reports in Report Studio or Query Studio.

Results
You can now test the model to ensure that it works as expected.

Testing a durable model
Procedure
1. Launch Report Studio using the package published in Creating a durable
model, and create and save a report.
2. In Framework Manager, open the project created in Creating a durable model,
and ensure that the project active language is different than the design
language.
3. In the active language, rename some of the query items included in the
package published in step 1.
4. Re-publish the package to IBM Cognos Connection overriding the original
package.
5. Launch Report Studio again using the re-published package, and open the
report created in step 1.
The report shows the changed query item names in the Insertable Objects
pane. However, the report specification shows the query item names in the
design language, not in the active language, in which you made the changes.
6. Run the report.
The columns representing the renamed query items show the new names.

Results
The model is durable because renaming its query items did not break existing
reports.

Analyzing models
You can analyze the metadata in a model by using the Model Advisor, which is an
automated tool that applies rules based on current modeling guidelines and
identifies areas of the model that you need to examine. To assist you in
understanding the nature of the highlighted issue as well as some possible actions,
you are provided with links to the appropriate sections of the documentation. The

176

IBM Cognos Framework Manager Version 10.1.1: User Guide

Model Advisor is not a replacement for a knowledgeable modeler; it provides new
modelers with an assistive tool and more experienced modelers with a diagnostic
tool.
You can select one or more tests to run against the selected model or subset of a
model. Verify the model and fix errors before analyzing the model. For more
information, see “Verifying models or packages” on page 233.
If
v
v
v

you are analyzing a new model, use the following workflow:
Analyze newly-imported objects, especially their relationships and determinants.
Use the issues that are identified to resolve potential query generation issues.
As you build additional views, use the Model Advisor to analyze each one for
potential issues.
v Before publishing the model, use the Model Advisor on objects that will be
published.
If you are analyzing an older, established model or a model that is not yet
complete, use the Model Advisor to validate modeling practices. The workflow is
similar to that used for new models: start at the database view and work up.

Facts identified by cardinality
This test looks for query subjects that have only the many (n) cardinality on the
ends of the relationship in which they are involved. Query subjects with this
cardinality are treated as facts when generating queries so it is important to ensure
that they are correctly identified.

Query subjects that can behave as facts or dimensions
This test looks for query subjects that have a combination of the many (n) and one
or zero (1,0) cardinality. Mixed cardinality means that the behavior of a query
subject can change depending on the other query subjects used in a query. This can
lead to unpredictable queries in some cases. If the query subject is evaluated as a
fact, it will be included in the query path. If it is evaluated as a dimension, it may
be skipped if it is not directly referenced in the query. To ensure predictable
behavior, you must resolve these scenarios.
Mixed cardinality can indicate a query subject that is part of a snowflaked
dimension or master-detail relationship. In the case of intermediate tables in
snowflaked dimensions, there is no issue to resolve. Problems may arise in
situations where there are multiple query paths available; these cases should be
highlighted by the test for query subjects with multiple relationships.

Query subjects with multiple relationships
This test looks for query subjects that have either many relationships between two
objects or a loop join that does not represent the star schema join pattern.
Multiple relationships between two query subjects is often associated with
role-playing dimensions. With role-playing dimensions, you create aliases that
enable each role to have a different join and different independent behavior.
Multiple join paths that are indicative of loop joins (except for star schemas) may
lead to problems of incorrectly split queries. This impacts the predictability of
query generation for your users.

Chapter 5. Modeling relational metadata

177

If IBM Cognos software has multiple relationships with no distinguishing criteria
to choose from, it uses the relationship that comes first alphabetically. If you need
to create a query that uses a different relationship, you always have a problem. As
well, if you want to use filters on criteria that are specific to the role defined by the
relationships and those filters are mutually exclusive, then no data is shown in the
report. For information about role-playing dimensions and an example, see
“Role-Playing Dimensions” on page 321.
Note: When cardinality clearly identifies facts and dimensions, IBM Cognos
software can automatically resolve loop joins that are caused by star schema data
when you have multiple fact tables joined to a common set of dimension tables.
The Model Advisor ignores star schema join patterns because they do not qualify
as problematic joins.

Query subjects that join to themselves
This test looks for reflexive and recursive relationships. These relationships imply
two or more levels of granularity. IBM Cognos Framework Manager imports
reflexive relationships but does not use them when executing queries. Reflexive
relationships, also called self-joins, are shown in the model for the purpose of
representation only.
Most often a query subject that joins to itself indicates a parent-child relationship.
Data sets that have parent-child relationships can be of definite or indefinite depth.
The only way to know which you are dealing with is to understand the data and
the business concept represented.
Whether you have a problem when you encounter a parent-child relationship
depends on how you intend to use the data in your application. There may be
cases where only one level of the relationship is necessary, and this is a fairly
simple scenario to model. If you know the data to be fully populated for each level
and to have a definite number of levels, you can also choose a modeling-only
solution. However, for cases where there is a significant amount of data, the data is
not fully populated at each level (ragged or unbalanced hierarchy) or the number
of levels in the data could change over time or both, you should transform the
data to a flat structure with a fixed number of columns before modeling in
Framework Manager.

Determinants that conflict with relationships
This test looks for determinants that conflict with the relationship defined for the
query subject. Determinants are used to ensure that the aggregation in reports is
correct and that queries generate correctly.
Determinants reflect granularity by representing subsets or groups of data in a
query subject and are used to ensure correct aggregation of this repeated data.
Determinants are most closely related to the concept of keys and indexes in the
data source and are imported based on unique key and index information in the
data source. Always review the determinants that are imported and, if necessary,
modify them or create additional ones. By modifying determinants, you can
override the index and key information in your data source, replacing it with
information that is better aligned with your reporting and analysis needs. By
adding determinants, you can represent groups of repeated data that are relevant
for your application.

178

IBM Cognos Framework Manager Version 10.1.1: User Guide

The Model Advisor checks query subjects with determinants and flags the ones
that meet one of the following criteria:
v The relationship references all query items in a unique determinant and the
cardinality of the relationship is not 1:1 or 0:1
v The relationship references some of the query items in a unique determinant and
the cardinality of the relationship is not 1:n or 0:n
The Model Advisor also flags occurrences where the keys of a relationship do not
match the keys of a group by determinant.

Factors that will override the Minimized SQL setting
This test looks for various factors that override the SQL Generation type setting of
Minimized, such as modified data source query subjects, relationships between
model query subjects, or determinants for model query subjects.
When you use minimized SQL, the generated SQL contains only the minimal set of
tables and joins needed to obtain values for the selected query items.
To see an example of what minimized SQL means, here are four query subjects,
Product Line, Product Type, Product, and Product Multilingual that join to each
other.

They can be combined in a model query subject.

Chapter 5. Modeling relational metadata

179

For example, if you test the Products (model) query subject as a whole, you see
that four tables are referenced in the from clause of the query.
select
PRODUCT_LINE.PRODUCT_LINE_CODE as Product_Line_Code,
PRODUCT_LINE.PRODUCT_LINE_EN as Product_Line,
PRODUCT_TYPE.PRODUCT_TYPE_CODE as Product_Type_Code,
PRODUCT_TYPE.PRODUCT_TYPE_EN as Product_Type,
PRODUCT.PRODUCT_NUMBER as Product_Number,
PRODUCT_MULTILINGUAL.PRODUCT_NAME as Product_Name
PRODUCT_MULTILINGUAL.DESCRIPTION as Product_Description,
PRODUCT.INTRODUCTION_DATE as Introduction_Date,
PRODUCT.PRODUCT_IMAGE as Product_Image,
PRODUCT.PRODUCTION_COST as Production_Cost,
PRODUCT.MARGIN as Margin
from
gosl_82..gosl.PRODUCT_LINE PRODUCT_LINE,
gosl_82..gosl.PRODUCT_TYPE PRODUCT_TYPE,
gosl_82..gosl.PRODUCT PRODUCT,
gosl_82..gosl.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL
where
(PRODUCT_MULTILINGUAL."LANGUAGE" - N’EN’)
and
(PRODUCT_LINE.PRODUCT_LINE_CODE = PRODUCT_TYPE.PRODUCT_LINE_CODE)
and
(PRODUCT_TYPE.PRODUCT_TYPE_CODE = PRODUCT.PRODUCT_TYPE_CODE)
and
(PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER

If you test only Product Name, you see that the resulting query uses only Product
Multilingual, which is the table that was required. This is the effect of minimized
SQL.
select
PRODUCT_MULTILINGUAL.PRODUCT_NAME as Product_Name
from
gosl_82..gosl.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL
where
(PRODUCT_MULTILINGUAL."LANGUAGE" - N’EN")

Embedded calculations that use the calculated aggregation type
This test detects where you have set the Regular Aggregate property to calculated
for embedded calculations.

180

IBM Cognos Framework Manager Version 10.1.1: User Guide

The calculated aggregation type is supported only for the following:
v Stand-alone calculations
v Calculations that are embedded within measure dimensions and are based on
measures from the same measure dimension
For more information about calculated aggregations, see “Rules for interpreting
calculated aggregations” on page 130.

Query subjects that can cause a metadata caching conflict
This test looks for factors that override cached metadata, such as data source query
subjects whose SQL has been modified or query subjects that contain calculations
or filters.
IBM Cognos Framework Manager stores the metadata that is imported from the
data source. However depending on the governor settings and certain actions you
take in the model, this metadata might not be used when preparing a query. If you
select the Allow enhanced model portability at run time governor, Framework
Manager always queries the data source for information about the metadata before
preparing a query. If you have not selected the Allow enhanced model portability
at run time governor, Framework Manager accesses the metadata that has been
stored in the model instead of querying the data source. There are exceptions and
the main cases are:
v Any modification of the SQL in a data source query subject. This includes the
use of macros.
v Adding a calculation or filter to a data source query subject.
Note: The metadata queries generated by IBM Cognos software are well supported
by most relational database management system vendors and should not have a
noticeable impact on most reporting applications.
The Model Advisor is only intended for use with relationally-based metadata
models. Do not run the Model Advisor against an entire model; instead, apply it
to specific views one at a time to ensure that the feedback is being taken in
context. For example, if an issue in an import view has not been addressed, the
issue might be resolved by modeling that is done in an intermediate view.
For large models or namespaces, the Model Advisor might not return results
immediately.
Because the Model Advisor is not data sensitive, you must know the data and
model the metadata appropriately for your business intelligence needs. Not all
items flagged by the Model Advisor are indicative of a problem. The context of
each issue raised by the Model Advisor is important.

Steps to analyze a model
Procedure
1. Click one or more objects to analyze.
v Select query subjects, dimensions, hierarchies, calculation, query items, or
shortcuts to analyze objects that will display on a specific report to test the
report before it is created.

Chapter 5. Modeling relational metadata

181

v Select a folder or namespace to analyze all its objects. If an object references
an object in another folder or namespace, the referenced object is also
analyzed.
v Select a package before publishing it to ensure it follows the guidelines for
modeling.
2. Click Tools, Run Model Advisor.
Tip: You can also right-click one or more objects and then click Run Model
Advisor.
3. In the Options tab, select the criteria that you want to use in the analysis.
4. Click Analyze.
5. In the Model Advisor tab, review the issues that are identified.
There is a description of each issue, a link to more information about each
issue, and a list of objects that are impacted by the issue.
6. To understand whether there is a problem with an object, click the context
in the Action column of the report.
explorer icon
The Context Explorer shows the objects that the selected object is connected to.
You can selected a related object and see which objects it is connected to.

182

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 6. SAP BW metadata
Note: Information on relational metadata is in another topic.
After importing metadata, you must ensure that it is set up to meet your users'
reporting requirements, and provide any additional information that they require.
Enhancements you make in IBM Cognos Framework Manager do not affect the
original data source.
Tip: To verify that the model meets the reporting requirements, you can select
objects that will display in a report and test them. The test results show you the
report that your users will see as well as the SQL and messages from the IBM
Cognos software, if any. Or you can publish a package at any time and then use
the package to create reports.
You can check the project at any time to ensure that the references between the
objects it contains are valid. See “Verifying models or packages” on page 233.
You can do the following when working with SAP BW metadata in IBM Cognos
Framework Manager:
Import the metadata .
Work with dimensions .
Control how data is used and formatted by checking query item properties .
If required, add more business rules, such as calculations and filters, to refine
the retrieved data and to ensure that the right information is available for your
users .
v Organize the model by creating separate views for each user group that reflect
the business concepts familiar to your users .
v
v
v
v

v If required, adjust settings in Framework Manager and the IBM Cognos studios
to optimize performance.
After working with the model, you can create a package and publish it for your
users. For more information, see “Publishing packages” on page 247.
Note: You can also create packages for SAP BW cubes and queries directly in IBM
Cognos Connection. For more information, see the section about packages in the
Administration and Security Guide.

Import from an SAP BW data source
When you import from an SAP BW data source, you can import all the metadata
or import only the objects you select.
For information about mapping SAP BW metadata objects to IBM Cognos
Framework Manager objects, see “Mapping SAP BW objects to Framework
Manager” on page 189.
You may want to have different views (or layers) in the model: an import view to
contain the metadata you imported from the data source and a business view

© Copyright IBM Corp. 2005, 2011

183

where you enhance the metadata. After importing, you can copy the metadata to
the business view. You then have two views that must be synchronized with the
BW InfoProvider.
Tip: If you want to expose calculated key figures from a SAP BW Query, you must
import the SAP BW Query.

Access to SAP BW metadata and data
When using an SAP BW data source, users' access to an InfoCube or InfoQuery
metadata does not imply that they also have access to data within those objects. To
enable Framework Manager to retrieve metadata from SAP BW, access privileges
must be set up within the SAP BW system. To ensure that users have proper access
permissions, verify the permissions assigned to the users' roles.
The following authorization objects must be configured so that Framework
Manager can import information cubes or data sources, known as InfoCubes in the
SAP BW system.
v S_RFC
Set the Activity field to the value: 16
Set the Name of RFC to be protected field to the value: SYST, RSOB, SUGU,
RFC1, RS_UNIFICATION, RSAB, SDTX, SU_USER, RSNDI_SHIE
Set the Type of RFC object to be protected field to the value: FUGR
v S_TABU_DIS
Set the Activity field to the value: 03
Set the Authorization Group field to the value: &NC&
Note: &NC& represents any table that does not have an authorization group.
For security reasons, create a new authorization group and assign the table
RSHIEDIR to it. The new authorization group restricts the user's access to the
above table only, which is needed by the modeling tool. Create the new
authorization group as a customization in the SAP system.
v S_USER_GRP
Set the Activity field to the value: 03, 05
Set the User group in user master main field to the default value.
v S_RS_COMP
Set the Activity field to the default value.
Set the Info Area field to the value: InfoArea Technical Name
Set the Info Cube field to the value: InfoCube Technical Name
Set the Name (ID) of reporting components field to the default value.
Set the Type of reporting components field to the default value.
v S_RS_COMP1
Set the Activity field to the default value.
Set the Name (ID) of reporting components field to the default value.
Set the Type of reporting components field to the default value.
Set the Owner (Person Responsible) field to the default value.
v S_RS_HIER
Set the Activity field to the value: 71
Set the Hierarchy Name field to the value: Hierarchy Name
Set the InfoObject field to the value: InfoObject Technical Name

184

IBM Cognos Framework Manager Version 10.1.1: User Guide

Set the Version field to the value: Hierarchy Version
v S_RS_ICUBE
Set the Activity field to the value: 03
Set the InfoCube sub-object field to the values: DATA and DEFINITION
Set the Info Area field to the value: InfoArea Technical Name
Set the InfoCube field to the value: InfoCube Technical Name
Tips
v &NC& represents any table that does not have an authorization group. For security
reasons, create a new authorization group and assign the table RSHIEDIR to it.
The new authorization group restricts the user's access to the above table only,
which is needed by Framework Manager. Create the new authorization group as
a customization in the SAP BW system.
v You can use the asterisk (*) to represent all values, when it displays alone, or
partial values, when used anywhere in a string.

SAP BW structures
Many existing SAP BW queries contain structures that you can use in IBM Cognos
queries to control the amount and order of information that your users see. For
example, with dual structures, you can create a crosstab report with one structure
on each axis.
The structures are:
v Key figure structure
The SAP BW Query Designer automatically creates a key figure structure when
you add key figures to a query. You must have at least one key figure to import
the query metadata into IBM Cognos Framework Manager. This is true even
when you do not use the key figure in reports. Therefore, you will always have
a key figure structure.
v Characteristic structure
A characteristic structure is a collection of characteristic values (members) from
one or more dimensions. You create a characteristic structure in SAP by adding a
structure to the query, and then adding the required members to the structure.
In IBM Cognos software, the structure displays as an additional dimension that
has only one multiple-root level.
When you import the SAP BW query into Framework Manager, the key figure
structure displays in the measure dimension called Key Figures and the
characteristic structure displays as an additional dimension.
If you re-import the same SAP BW query into Framework Manager, you must use
the same setting for the SAP BW Dual Structures Support check box. Framework
Manager does not allow you to select a different setting for the same query
because different objects are then generated in the model and this leads to errors.
You can use different settings for different queries.

SAP BW hierarchies
When importing metadata, Framework Manager generates a dimension in each
SAP BW characteristic.

Chapter 6. SAP BW metadata

185

Only one hierarchy associated with a given characteristic can be used in a report.
Therefore, you should group dimensions that represent the hierarchies of a single
characteristic into a folder or model query subject to make reporting easier for
your users.
If there are multiple hierarchies in an SAP BW data source, the first hierarchy that
is imported becomes the default hierarchy.
Framework Manager supports the following types of hierarchies:
v Characteristic
This is a list of all the characteristic values.
v Text node
Non-leaf nodes contain only text and do not reference any other data source
object.
v Characteristic value
The nodes of each level of a presentation hierarchy are values from another
characteristic.
v Recursive
The nodes of the entire presentation hierarchy are from the characteristic itself.
If a characteristic is not in a time dimension but it is a date and is treated as a date
in SAP BW, the characteristic is imported with the date data type.
Framework Manager does not support hierarchies that contain two or more types
of nodes. These hierarchies are imported but are hidden in the Framework
Manager model.
Because hierarchical metadata is automatically generated for SAP BW, you cannot
change it in Framework Manager.

Versioned hierarchies
You can import the following types of versioned hierarchies from an SAP BW data
source:
v Version dependent hierarchy
A hierarchy can have multiple versions. Each version of a hierarchy can have a
different structure, such as Sales by Region and Sales by Manager. During
metadata import, Framework Manager identifies each version as a separate
hierarchy and creates a dimension for each.
v Entire hierarchy time dependent
Each version has an associated time period that does not overlap with any other
version of the same hierarchy. The structure of each version can be different.
During metadata import, Framework Manager identifies each version as a
hierarchy and includes the applicable time period as part of the dimension
name.
v Time-dependent hierarchy structure
There is a single version of the hierarchy, but nodes within the hierarchy can be
assigned applicable time periods. Over time, the structure of the hierarchy can
change with new levels being introduced or removed. For example, levels that
represent different sales districts can be added over time. During metadata
import, Framework Manager identifies a time-dependent hierarchy structure as a
non-versioned hierarchy and recognizes the structure of the hierarchy as of the
current date.

186

IBM Cognos Framework Manager Version 10.1.1: User Guide

The type of dimension determines which hierarchy is used and, for
time-dependent hierarchies, which date to use to control the version.
Framework Manager sets the query key date of time-dependent hierarchies based
on dates that are contained within the time-dependent hierarchy. You can then
select specific versions of hierarchies. For hierarchies with versions on time, the
default is the current date and time. The hierarchy that you apply to a
characteristic depends upon the type of query key date: fixed, current, or variable.
The query key date is set for a specific date.
For fixed date, include only the version that corresponds to the fixed date in the
underlying SAP BW Query. For example, if the SAP BW Query has a fixed date
such as 2005, only 2005 is imported.
For current date, include only the version that encompasses a time span
appropriate for the present until some reasonable time in the future.
For variable, set the date for the variable in Framework Manager and include only
the version of the hierarchy applicable to that date.
When you use Framework Manager to model SAP BW data, any versions or dates
applied to a presentation hierarchy in SAP BW are not imported into the model.
Therefore, all versions of the hierarchy are accessible in Framework Manager.
You may have a time-dependant hierarchy and a variable defined in SAP BW to
establish the effective date for the hierarchy. In this case, assign a fixed date to the
variable in Framework Manager and include only the dimension that corresponds
to that date in the model.
In Framework Manager, if a versioned hierarchy is not time-dependent and has a
fixed version, include only the version of the hierarchy associated with the selected
version. Otherwise your users are presented with a hierarchy that is inaccessible.

Steps to access a secured InfoCube
Procedure
1. Create a query in Business Explorer Query Designer that accesses the InfoCube.
2. Create an authorization variable for each InfoObject in the underlying InfoCube
for which there are authorizations.
3. For each variable, ensure that the Ready for Input option is disabled.
By default, this option is enabled.
4. Enable the query for access through OLE DB for OLAP.
5. Save the query.
6. In Framework Manager, reference the query instead of the InfoCube.

Steps to import from an SAP BW data source
Procedure
1. Ensure that there is a connection to the data source.
For information about creating data source connections, see the IBM Cognos
Administration and Security Guide.
2. Click the namespace, folder, or segment into which you want to import, and
from the Actions menu, click Run Metadata Wizard.
Chapter 6. SAP BW metadata

187

3. Select Data Sources, and click Next.
4. Select an SAP BW data source connection and click Next.
5. Select the objects that you want to import.
If you are re-importing, the existing object is updated.
If you are importing new objects and an object with the same name exists, the
new object is imported and a number is appended to the original name. For
example, you see QuerySubject and QuerySubject1 in your project.
After they are imported, you cannot delete query items without deleting the
entire query subject.
6. If you want to import a characteristic structure and a key figure structure,
select the SAP BW Dual Structures Support check box.
The content of the Select Objects page is updated to reflect the dual
structures in your data source.
Note: If you are re-importing the same SAP BW query (for example, because
the underlying data source has changed), you must use the same setting for
this check box. You cannot use a different setting for the same query because
different objects are then generated in the model, and this leads to errors.
7. Select the languages that you want to import.
These languages must exist in the data source.
You can add languages to your project later, but you cannot return and import
the language-specific metadata from the data source. After the import is
complete, you must manually add the language-specific metadata.
8. Indicate whether you want Framework Manager to show the short name, long
name, or the technical name for the dimensions.
v If you select the short name and the field is empty, the long name is shown.
v If you select the long name and the field is empty, the short name is shown.
v If you select either short name or long name and both fields are empty, the
technical name is shown.
9. To organize objects in the model the same way as in Business Explorer Query
Designer, select the Enhance model for SAP BW organization of objects
option.
You will then have a folder for each characteristic.
10. Click Next.
A list of objects that could not be imported displays with counts of objects
that were imported.
11. Click Finish.

Results
After importing, verify the usage and aggregation property values. Fact tables may
contain numeric columns that should not be aggregated, such as exchange rates.
When you want to recreate a query on another SAP BW system, use the SAP BW
migration mechanism to transport the query. This ensures that the technical name
of each measure remains the same so that any project that references the query can
be directed to either system without any modifications to the project.

188

IBM Cognos Framework Manager Version 10.1.1: User Guide

Mapping SAP BW objects to Framework Manager
SAP BW objects are mapped to the following IBM Cognos Framework Manager
objects.
SAP BW object

Framework Manager object

Query, InfoCube, RemoteCube, MultiCube

Namespace.

Characteristic

A folder that contains dimensions.
You must select the Enhance model for SAP
BW organization of objects option when
importing metadata to have a folder for each
characteristic.
Note: By default, Framework Manager
imports SAP BW Currency and Unit of
Measure characteristics. You can remove
these characteristics if you do not need
them.

Dimension

Dimension. The dimension may contain
hierarchies representing each presentation
hierarchy. The default hierarchy contains
two levels representing
- the aggregation of all characteristic values,
also known as the All value
- all characteristic values

Key figure

Query item that is part of a measure
dimension called Key Figures.

Presentation hierarchy level

Level.
Note: Level names must be defined in the
Administrator Workbench to be meaningful.

Attribute

Query item associated with a level whose
Usage property value is set to Attribute.

SAP BW variable

Data source property.
For information about the SAP BW variables
that Framework Manager supports, see
“SAP BW variables” on page 215.

For information about setting access privileges to retrieve metadata from SAP BW,
see “Access to SAP BW metadata and data” on page 184.

Dimensions (SAP BW)
A dimension is a broad grouping of data about a major aspect of a business, such
as products, dates, or markets.

Chapter 6. SAP BW metadata

189

The types of dimensions that you can work with in IBM Cognos Framework
Manager are regular dimensions and measure dimensions. In SAP BW, measure
dimensions are called key figures.
For example, in a project for sales analysis, you include these dimensions:
Name

Type

Description

Time

Regular dimension

Dates of sales organized into
years, quarters, months,
weeks, and days when sales
were made

Region

Regular dimension

Locations of sales grouped
into sales regions, countries,
and cities

Product

Regular dimension

Product details organized by
product type, brand, model,
color, and packaging

Customer

Regular dimension

Customer information

Sales

Key Figures dimension

Purchase details such as
units sold, revenue, and
profit

Modifying a regular dimension (SAP BW)
A regular dimension contains descriptive and business key information and
organizes the information in a hierarchy, from the highest level of granularity to
the lowest. It usually has multiple levels and each level requires a key and a
caption. If you do not have a single key for your level, it is recommended that you
create one in a calculation.
Model regular dimensions are based on data source or model query subjects that
are already defined in the model. You must define a business key and a string type
caption for each level. When you verify the model, the absence of business keys
and caption information is detected. Instead of joining model regular dimensions
to measure dimensions, create joins on the underlying query subjects and create a
scope relationship between the regular dimension and the measure dimension.
When dimensions are based on SAP BW metadata, you cannot edit the underlying
query.

Steps to modify a regular dimension
Procedure
1. Click the regular dimension you want to modify.
2. From the Actions menu, click Edit Definition.
3. Choose the action that you want:
v Embed calculations by selecting the level, clicking Add, and then defining
the expression “Create a calculation (SAP BW)” on page 221.
v Embed filters “Creating a filter (SAP BW)” on page 223.

190

IBM Cognos Framework Manager Version 10.1.1: User Guide

v Test the dimension “Testing a dimension or other object (SAP BW)” on page
199.
4. Click OK.

Hierarchies for a regular dimension (SAP BW)
A hierarchy is an ordered list of levels or a collection of items. Each query item in
a hierarchy must have a unique name.
You can specify multiple hierarchies on regular dimensions in IBM Cognos
Framework Manager. Multiple hierarchies for a regular dimension behave as views
of the same query. The first hierarchy is the primary or default hierarchy.
You can use only one hierarchy at a time in a query. For example, you cannot use
one hierarchy in the rows of a crosstab report and another hierarchy from the same
dimension in the columns. If you need both hierarchies in the same report, you
must create two dimensions, one for each hierarchy. For more information, see
“Modeling Dimensions with Multiple Hierarchies” on page 329.
For example, sales staff can be viewed either by manager or by geography and you
can model it as a single dimension with two hierarchies.

IBM Cognos software uses default settings that will not fail for the hierarchy type.
v For dimensions that represent SAP BW characteristics, the Balanced property is
set to true and the Ragged property is set to false.
v For dimensions that represent presentation hierarchies, the Balanced property is
set to false and the Ragged property is set to true.
These settings may not reflect the appropriate values as IBM Cognos software does
not determine the actual hierarchy structure. You can improve performance of SAP
BW models and queries by adjusting dimension settings in IBM Cognos
Framework Manager and in the IBM Cognos studios. For each dimension, check
the settings for the Balanced and Ragged properties to ensure that the values are
set appropriately.
In addition to hierarchies in dimensions, there are hierarchies in SAP BW
metadata. For more information, see “SAP BW hierarchies” on page 185.
Balanced hierarchy:
Each path in a balanced hierarchy descends to the same depth.
Chapter 6. SAP BW metadata

191

For example, in the following diagram, the highest level is Product Line(Level 1);
Level 2 is Product Type; Level 3 is Products.

In SAP BW, all leaf nodes of a hierarchy are values of the characteristic, but each
path does not need to descend to the lowest level of the hierarchy.
You can define whether a dimension represents a balanced hierarchy by modifying
the Balanced property of a dimension. The value that you set depends on the type
of object that the dimension represents, and whether the hierarchy is balanced.
Dimension represents

Balanced property value

characteristic

true

presentation hierarchy that is balanced

true

presentation hierarchy that is unbalanced

false

presentation hierarchy whose structure is
unknown

false

For a dimension that represents a characteristic without a presentation hierarchy,
this property is read-only and is assigned a value of true.
If a presentation hierarchy is balanced, then set the Balanced property of its
associated dimension to true. By default, it has a value of false for all presentation
hierarchies. A hierarchy is balanced if all leaf characteristic values occur at the
lowest level of the hierarchy. By setting the Balanced property to true as
appropriate, the IBM Cognos BI server can generate more efficient MDX.
When all paths are of the same depth, set the Balanced property to true, otherwise
set it to false.
If you assign a value of true to the Balanced property of an unbalanced hierarchy,
queries that involve this dimension may return incorrect data.

192

IBM Cognos Framework Manager Version 10.1.1: User Guide

If you assign a value of false to the Balanced property of a balanced hierarchy,
performance may be slower.
Unbalanced hierarchy:
The branches in an unbalanced hierarchy descend to different levels.
For example, in the following diagram, the highest level in an organization is the
CEO (Level 1); Level 2 is the vice-presidents and the CEO's executive assistant. The
executive assistant does not have subordinates, unlike the vice-presidents.

An unbalanced hierarchy can also be ragged. In a ragged-unbalanced hierarchy,
there are gaps in the levels and the levels descend to different depths.
In SAP BW, this occurs only when there are "not assigned" (or "#") nodes in a
presentation hierarchy. However, the presence of such a node does not ensure that
the hierarchy is unbalanced. You must study the layout of a hierarchy to be certain.
An unbalanced hierarchy can also be ragged. In a ragged-unbalanced hierarchy,
there are gaps in the levels and the levels descend to different depths.
Ragged hierarchy:
At least one path in the hierarchy skips at least one level.
For example, the highest level is Company (Level 1); Level 2 is Branch; Level 3 is
Building; Level 4 is Department. Some branches may only have one building
location, with the same departments as multi-building locations.

Chapter 6. SAP BW metadata

193

In SAP BW, this occurs only when there are "not assigned" (or #) nodes in a
presentation hierarchy. However, the presence of such a node does not ensure that
the hierarchy is ragged. You must study the layout of a hierarchy to be certain.
IBM Cognos software uses default settings that will not fail for the hierarchy type.
v For dimensions that represent SAP BW characteristics, the Balanced property is
set to true and the Ragged property is set to false.
v For dimensions that represent presentation hierarchies, the Balanced property is
set to false and the Ragged property is set to true.
You can define whether a dimension represents a ragged hierarchy by modifying
the Ragged property of a dimension. The value that you set depends on the type
of object that the dimension represents, and whether you know if the hierarchy is
ragged.
Dimension represents

Ragged property value

characteristic

false

presentation hierarchy that is not ragged

false

presentation hierarchy that is ragged

true

presentation hierarchy whose structure is
unknown

true

A dimension that represents a characteristic without a presentation hierarchy is
read-only.

194

IBM Cognos Framework Manager Version 10.1.1: User Guide

If a presentation hierarchy is not ragged, set the Ragged property of its associated
dimension to false. By setting the Ragged property to false as appropriate, the
IBM Cognos BI server is able to generate more efficient MDX
If you assign a value of true to the Ragged property of an unragged hierarchy,
queries that involve this dimension may return incorrect data.
If you assign a value of false to the Ragged property of a ragged hierarchy,
performance may be slower.
Limitations with ragged and unbalanced hierarchies and aggregated values:
Ragged and unbalanced hierarchies can create gaps within individual paths of a
hierarchy, as well as nodes at intermediate levels with no descendants at lower
levels. If a report includes query items from a single dimension that are from
consecutive or adjacent levels in a hierarchy, the fact values associated with the
lower levels should always aggregate to the values associated with the higher
levels of the dimension in the report.
However, if the query items are not from consecutive or adjacent levels, and the
underlying SAP BW hierarchy is ragged or unbalanced, it is possible that the
values of the higher levels may not reflect the aggregation of the fact values from
the lower levels. The aggregated fact values associated with the higher levels
reflect the aggregated values in the data source. This is typical behavior for OLAP
data sources, but may be counterintuitive to those accustomed to reporting against
relational data sources.
Network hierarchy:
A member of the hierarchy has more than one parent.
For example, an employee may report through different organizations and have
multiple managers. For SAP BW, this employee will be included in the count of all
employees only once, and not be included in every organization.

Chapter 6. SAP BW metadata

195

Levels for a regular dimension (SAP BW)
A level is a collection of attributes, typically of a common granularity. Each level
needs an item that is defined as a key and another item that is defined as a
caption. For SAP BW data sources, levels contain members.
The first level of the hierarchy is automatically defined as the All level. It contains
a single root member, which represents the top level of the hierarchy. For example,
the All level for the Time dimension is named Time (All). You cannot delete or
move the All level. You can change its name, description, and screen tip.
If you do not specify the levels of the hierarchy correctly, incorrect aggregation
could occur.
Member unique names:
The member unique name (MUN) is how the member is found in the data source,
much like using business keys to find records in a table.
The member unique name is used in the expression for a member data item that is
used in a report, a reference to members in filters and expressions, and used in
drill-through between OLAP data sources. The member keys in the MUN for the
different OLAP data sources must match.

Roles (SAP BW)
You can also create expressions that refer to roles instead of query items. You must
use the roleValue function to refer to a particular role. For example, you want to
query against a specific role in a hierarchy but the query item playing that role is
different at each level of the hierarchy. A single query can span the different query
items at each level. You can also use the roleValue function when you know the
role but not the underlying query item.
You can assign multiple roles to one query item, but the same role cannot be
assigned to different query items in the same level.
Default roles are pre-defined for all parent-child hierarchies and for all levels in
level-based hierarchies. Most of these roles are not visible in the IBM Cognos
studios.
The roles that are reserved by IBM Cognos BI start with an underscore. The name
for a custom role cannot start with an underscore.

Default roles
The default roles include the following:
v _businessKey
Represents the key for the level. This role is also used to drill through from one
data source to another because the business key should be consistent across your
organization.
The _businessKey role can be assigned to only one attribute in a level.
v _dimensionUniqueName
Returns the name of the dimension as defined in the Framework Manager
model.
v _hierarchyUniqueName

196

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the name of the hierarchy as defined in the Framework Manager model.
v _levelLabel
Returns the label that is assigned to the level.
v _levelNumber
Returns the number for the level.
v _levelUniqueName
Returns the name that is assigned to the level.
v _longName
Is assigned to the query item that represents the long name for a level.
v _memberCaption
Presents the caption for a member that will be shown in the IBM Cognos
studios.
v _memberDescription
Returns the description for a member within a dimension.
v _memberUniqueName
Returns the IBM Cognos member unique name.
v _parentUniqueName
Defines the name that is assigned to the parent of the selected query item.
v _planningDefault
Specifies which query item to use when measures are selected. This role is
applicable only for IBM Cognos Planning and SAP BW.
v _rollupType
Defines how a query item is aggregated.
v _shortName
Is assigned to the query item that represents the short name for a level.
If a query item uses a default role, you cannot change its role. This applies to SAP
BW metadata only.

Custom roles
You can create custom roles. Each role that you create must have a unique name.
The roles that are reserved by IBM Cognos start with an underscore. The name for
a custom role cannot start with an underscore. You can translate the custom roles
in the model.
User-defined properties in OLAP data sources are assigned roles with the same
name as the query item.

Specifying roles (SAP BW)
Roles define what displays in the member tree in the IBM Cognos studios. Use
roles to organize and manage metadata and to determine how to present data to
your users.

Procedure
1.
2.
3.
4.

Click the dimension whose roles you want to define.
From the Actions menu, click Edit Definition.
Click the Dimension tab.
In the Hierarchies box, click the level you want.
Chapter 6. SAP BW metadata

197

5. In the Select a level in the hierarchy control to see the query items box, click
a query item.
6. Under Role, click the ellipsis (...) button.
7. Click the Custom Roles tab, and click Add.
8. Click Close.
9. Click OK.

Results
You can also use the Dimension Map tab to define roles. Click Attributes,
right-click the query item, and click Edit Roles.

Modifying a key figures dimension (SAP BW)
A key figures dimension is a collection of facts such as Quantity Sold or Price.
Key figures are related to each other through the regular dimensions. When used
in a report or analysis, the key figures dimension shows the value of the query
item such as a name or number, or shows null, zero, or invalid. To create reports
that fully compare and contrast functional areas, you may need to use more than
one key figures dimension in a report.
You can add value by embedding calculations based on existing business rules,
such as Profit Margin.
You can also modify the properties for multiple dimensions at the same time
“Replacing multiple property values” on page 24.
You cannot define hierarchies or levels for a key figures dimension.
When dimensions are based on SAP BW metadata, you cannot edit the underlying
query. However, you can add calculations and filters.

Procedure
1. Click the key figures dimension you want to modify.
2. From the Actions menu, click Edit Definition.
3. Choose the action that you want:
v Embed calculations by clicking Add and then defining the expression “Create
a calculation (SAP BW)” on page 221.
v Change the order of measures, items, or calculations by using the arrow
buttons. However, if the measure dimension contains a folder, you can
change the order only in the Project Viewer.
v Embed filters “Creating a filter (SAP BW)” on page 223.
v Test the dimension “Testing a dimension or other object (SAP BW)” on page
199.
4. Click OK.

Viewing related objects (SAP BW)
You can explore a visual representation of the objects that are connected to the
query subject or dimension that you select in the Project Viewer. The Context
Explorer shows the objects that the selected object is connected to. You can also
select a connected object and see its references.

198

IBM Cognos Framework Manager Version 10.1.1: User Guide

You can hide an object in the Context Explorer. You can also change the layout, fit
all objects in the Context Explorer, zoom in and out, print, preview diagrams
before printing, and change the page setup.
You can also use the Dimension Map tab to explore dimensions.

Procedure
1. Select one or more objects that you want to explore.
2. From the Tools menu, click Launch Context Explorer.
3. To see the connected objects, click one or more objects and click the appropriate
button.
Goal

Button

View the objects that are related to the selected object.
View the immediate references for the objects.
View all references for the objects.

4. If you want to see details about an object, such as its relationships and query
items, right-click the object, click Navigate Diagram, Diagram Settings, and
then select the details you want.

Testing a dimension or other object (SAP BW)
You can test a dimension, a level, a hierarchy, query items, or model query subject.
Testing a regular dimension returns the attributes associated with the first
hierarchy encountered in the dimension.

Testing Objects
You can see the results that an object returns by testing it. You can test when
creating an object or later on. The objects you can test are dimensions, query
subjects, query sets, hierarchies, levels, calculations, and query items.
You can view the data that will display in a specific report before publishing a
package by selecting and testing the objects that will display in the report. This
makes it easier to debug a model and to verify that the model meets the reporting
requirements because you do not need to create and publish packages first.
When you test an object, IBM Cognos Framework Manager returns sample data.
Formatting is not applied to the sample data. If you must test formatting, you
must publish the package and view the objects in the IBM Cognos studios.
You may see different results depending on what you test. For example, if you use
the expression editor to test a calculation that is embedded in a query subject,
Framework Manager tests only the expression, not the item, so the aggregation
setting for the query item is not applied to the test. Testing the entire query
subject, which includes the calculation, gives a different result because the
aggregation setting is applied. For example, if the aggregation setting is
summarize, you can see a smaller number of rows in the test.
When you test a measure dimension, the SQL uses aggregates not the measures.

Chapter 6. SAP BW metadata

199

If you test a child segment of a segmented model, you may see an error if an
object you are testing refers to an object in another child segment and the
referenced object is not available to the project you are in. Check that the parent
model contains all the objects and that this error message does not display when
you test the parent model.
Governor settings may affect the testing results. For more information, see
“Governors” on page 283.
You can change existing test settings to customize the results that the test shows.
For example, in addition to other settings, you can control the number of rows
returned.

Steps for testing when creating or modifying the object (SAP
BW)
Procedure
1. Select the object you want to test.
2. From the Actions menu, click Edit Definition, and click the Test or Query
Information tab.
The Test Results box is initially empty until you run the query.
Any result sets that contain binary large objects are shown as [blob].
3. To run the query and bring back all the test results, click Test Sample.
4. If you are testing an expression and you want to apply the Regular Aggregate
property of the query item or measure that is referenced in the expression,
select the Auto Sum check box.
If you clear this check box, a row is returned for each row in the result set of
the query.
5. If you want to obtain more information about the query results, click the Query
Information tab.
6. Click OK.

Steps to view the data that will display in a specific report
Procedure
1. Select the objects that will display in the report.
2. Click Tools, Test.
3. To run the query and bring back all the test results, click Test Sample.
4. To view details about any problem that is found, click the Query Information
tab.
If you do not see the results of the query in the test window, the data from
your data source may exceed the value of one of the governors. The query
stops at the specified limit, but the test result window does not contain any
data. Tip: Set each governor to zero.

Changing the test settings (SAP BW)
You can customize the tests by changing the test settings.

Procedure
1. Select the object that you want.
2. Click Actions, Edit Definition, and then click the Test tab or the Query
Information tab.

200

IBM Cognos Framework Manager Version 10.1.1: User Guide

3. Click Options, Test Settings .
4. Choose the options that you want.
Goal

Action

Persistence

Retrieve all data and show a
specified number of rows

Select the Restrict the
maximum number of rows
to be returned check box
and type the required
number of rows.

This setting applies to all
dimensions, query subjects,
and query sets in the model.
This setting is saved and
used in your next session
with any model.

This setting does not
improve performance for
retrieving data when testing
dimensions, query subjects,
and query sets.
Specify the level of detail

This setting is saved and
Drag the Level of
used in your next session
Information shown in
Results Information slider to with this model.
the location that represents
the amount of detail you
require.

Temporarily override session In the Session Parameters
parameters
box, click Set.

The override values are not
saved with the model. This
setting is for your current
session only.

The Session Parameters
dialog box displays.
Apply relevant design mode
filters

Select the Apply all relevant This setting is saved and
used in your next session
design mode filters when
with any model.
testing check box.
This applies all relevant
filters whose usage is set to
design mode in another
dimension, query subject, or
query set.

Apply a security filter

In the Security Filters box,
click Edit.

This setting is saved and
used in your next session
with this model.

Change the prompt values

In The Current Prompt
Values box, click Prompts.

The prompt values are not
saved with the model.

The Model Prompts
Manager dialog box
displays, which shows all
prompts, and their values,
that are in the model.

This setting is for your
current session only.

5. Click OK two times.

Chapter 6. SAP BW metadata

201

Results
For more information, see “Dimensions (SAP BW)” on page 189 and “Model query
subjects (SAP BW).”

Model query subjects (SAP BW)
A query subject is a set of query items that have an inherent relationship.
You use IBM Cognos Framework Manager to modify query subjects to optimize
and customize the data that they retrieve. For example, you can add filters or
calculations. When you change the definition of a query subject, Framework
Manager regenerates the associated query items, ensuring that any changes to
query subject properties are reflected in all query items for that query subject.
For SAP BW metadata, you can work with model query subjects in IBM Cognos
Framework Manager.
Model query subjects are not generated directly from a data source but are based
on query items in other query subjects or dimensions, including other model query
subjects. By using model query subjects, you can create a more abstract,
business-oriented view of a data source.
If you create a model query subject containing multiple dimensions, you may
encounter problems when using the model query subject in conjunction with other
query subjects or dimensions. Ensure that the items in a model query subject do
not contravene the logic of the model, for example, the product item inserted
between the country or region and city items. Test the model query subject in a
report; if grouping works, the model query subject is valid.

Creating model query subjects (SAP BW)
You can also create a new model query subject by merging existing query subjects
and query items “Creating model query subjects based on existing objects (SAP
BW)” on page 203.

Procedure
1. Select the namespace folder and, from the Actions menu, click Create, Query
Subject.
2. In the Name box, type a name for the new query subject.
3.

Click Model and click OK.
Note: For SAP BW metadata, you can only create model query subjects.

4. Click the Query Subject Definition tab.
5. To add items to the model query subject, drag items from the Available Model
Objects box to the Query Items and Calculations box.

6.
7.
8.
9.

202

You can change the order of items and calculations. However, if the query
subject contains a query item folder, you can change the order only in the
Project Viewer.
To embed calculations in the model query subject, click Add and define the
calculation.
To embed filters in the model query subject, click the Filters tab.
To test the model query subject, click the Test tab.
Click OK.

IBM Cognos Framework Manager Version 10.1.1: User Guide

A warning displays if any modifications invalidated relationships, other query
subjects, calculations, or filters.

Results
You may be interested in the following related topics:
v embedded calculations “Create a calculation (SAP BW)” on page 221
v embedded filters “Creating a filter (SAP BW)” on page 223
v testing and setting test options “Testing a dimension or other object (SAP BW)”
on page 199
v modifying the properties for multiple query subjects at the same time
“Replacing multiple property values” on page 24

Creating model query subjects based on existing objects (SAP
BW)
You can select existing model objects and merge them into a new model query
subject.
This means that you can reuse existing metadata to quickly create query subjects.
The objects that you can merge include:
v Model query subjects and their shortcuts.
v Query items, filters, and calculations in model query subjects.
You can merge any number of the same type of objects into a new query in a
single operation. The merge always creates a new model query subject.
The new query subject contains any filters that exist in the original query subject.
Ensure that model query subjects do not contravene the logic of the model. For
example, if a query subject with multiple characteristics is used in combination
with other query subjects, there can be problems when you run the report.
Do not include query items from different query subjects or hierarchies from the
same dimension. This causes a run-time error.

Procedure
1. Ctrl+click the objects that you want to merge into a single query subject.
2. Click Actions, Merge in New Query Subject.

Validating model query subjects (SAP BW)
You can validate the definition of the query subject without having to open the
Query Subject Definition dialog box. This is useful to do when
v New query items were added to a query subject
v The definition of the underlying query subject has changed
The Validate Object command evaluates the selected objects and ensures that they
can run.
When IBM Cognos Framework Manager evaluates a query subject, a request is
sent to the SAP BW data source. Physical attributes, such as data type, are then
updated as needed for the query subject.

Chapter 6. SAP BW metadata

203

You can also synchronize the entire project “Synchronizing projects” on page 280.

Procedure
1. Select the query subject you want to evaluate.
2. From the Tools menu, click Validate Object.

Results
If you changed the Regular Aggregate property to unsupported, the property is
reset when you evaluate the query subject. If the property is set to any other value,
the property is not changed.
Note: An error message is displayed for each invalid query subject. The object will
also have a status of Invalid.

Query items (SAP BW)
A query item is the smallest piece of the model that can be placed in a report. It
represents a single instance of something, such as the date that a product was
introduced.
Key figures and attributes are imported as query items in IBM Cognos Framework
Manager.
Only one hierarchy from a dimension should be used in the same report.
For SAP BW metadata, you can modify only text-based properties, such as the
name or screen tip.
Because reports can contain different query items from one or more objects in the
model, query item properties control many aspects of the final report. When you
create a model dimension or model query subject, the query items inherit the
properties of the data source query items on which they are based.
The properties for query items or measures include the following.
Query item property

Description

Name

The name of the query item or measure.

Description

A description of the query item or measure.

Last Changed

The date that the query item or measure was
last changed. The property is automatically
updated with the current date time.

Last Changed By

The user who last changed the query item or
measure. This property is automatically
updated when the item is changed.
The value is the current logon username.

204

IBM Cognos Framework Manager Version 10.1.1: User Guide

Query item property

Description

Model Comments

Used to add internal comments about the
model. The information is used on the
Analyze Publish Impact dialog and in the
Model Report. Comments are not accessible
to package users.

Screen Tip

A description that can display in the
published package for your users.

Expression

Used to create embedded calculations that
provide your users with calculated values
that they regularly use.
This property is for measures only.
Note: The Expression property is not used
by SAP BW.

External Name

The name that displays in the data source.

Is Hidden

Whether to hide or show the query item or
measure in the published package.
Even when Is Hidden is set to True and the
query item or measure is invisible to your
users, it is always present in the published
package because the query item or measure
may be needed by other objects in the
model. You do not see the query item or
measure in the Package Publish wizard.
For example, a calculation may make use of
a hidden query item.

Usage

The intended use for the data represented by
the query item.
This property is for query items only.

Format

How information displays in a report.

Currency

Which currency is used.
This property cannot be changed in the
Property pane. Use the Format property to
change the currency.

Data Type

The data type that was set in the data
source.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Chapter 6. SAP BW metadata

205

Query item property

Description

Precision

The total number of digits.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Scale

How many digits are represented in the
scale.
For example, you can show numbers in
thousands so that 100,000 means 100,000,000.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Size

The size of the query item or measure.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Is Nullable

Whether the query item or measure can
contain a null value.
Because this property is set in the data
source, it is read-only in Framework
Manager.

Display Type

How the query item is shown.
The column value can display in the IBM
Cognos studios as a picture, as a link, or as
a value.
The default is value.
This property is for query items only.

MIME Type

The format that the column value uses.
For example, if Display Type is set to
picture, MIME Type could be jpeg.
This property is for query items only.
Note: The MIME Type property is not used
by SAP BW.

206

Prompt Info

Prompt behavior.

Regular Aggregate

The type of aggregation that is associated
with the query item, measure, or calculation
in the published package.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Query item property

Description

Aggregate Rules

For dimensionally modeled relational
metadata, the rules for semi-additive
aggregation.
For SAP BW metadata, the Aggregate Rules
property is read-only.

Allocation Rule

Specifies the type of allocation defined for
the measure.
A value of default specifies that constant
allocation is used in list queries and
once-only allocation is used in crosstab
queries. A value of constant specifies that
constant allocation is used in all queries.

Is Unsortable

Whether the values of this query item can be
sorted.
This property is for query items that contain
large objects such as BLOBs.

You may be interested in the following related topics:
v The Usage and Regular Aggregate properties “Modifying how query items are
aggregated (SAP BW)”
v Changing the currency symbol “Formatting query items (SAP BW)” on page 210
v Prompts “Defining a prompt control (SAP BW)” on page 210
v Modifying the properties for multiple query items at the same time “Replacing
multiple property values” on page 24

Modifying how query items are aggregated (SAP BW)
When you import metadata, Framework Manager assigns values to the Usage and
Regular Aggregate properties for query items and measures depending on the
type of object that the query item or measure is in. The Usage property identifies
the intended use for the data represented by the query item “Usage property” on
page 131. The Regular Aggregate property identifies the type of aggregation that is
applied to the query item or measure “Regular aggregate property” on page 132.
Your users can override the values of the Regular Aggregate property. For
semi-additive measures, you can specify additional aggregate rules by modifying
the Aggregate Rules property “Defining aggregate rules for semi-additive
measures” on page 132.
When modifying the Regular Aggregate property, you can select values that are
not available through importing, such as average and maximum. You must
understand what the data represents to know which aggregate rule is required. For
example, if you aggregate a part number, the only aggregate values that apply are
count, count distinct, maximum, and minimum.

Rules for setting properties for dimensions (SAP BW)
IBM Cognos Framework Manager uses the following rules to set the Usage and
Regular Aggregate properties.
Chapter 6. SAP BW metadata

207

Object

Usage property

Regular Aggregate property

Query item in a regular
dimension

Attribute

Unsupported

Query item in a measure
dimension

Identifier

Count

Measure in a measure
dimension

Fact

Automatic if the measure is a
calculation
Sum if the measure is not a
calculation

If the measure is semi-additive, use the Aggregate Rules property to define rules
for semi-additive aggregation. See“Defining aggregate rules for semi-additive
measures” on page 132.
For SAP BW metadata, you cannot change these properties for dimensions.

Rules for setting properties for calculations (SAP BW)
The Regular Aggregate property for a calculation in SAP BW metadata is set to
Automatic. To determine what automatic means, these rules apply.
Calculation

Aggregation type

key items

unsupported

all other items

calculated

Rules for setting properties for model query subjects (SAP BW)
For model query subjects, Framework Manager uses the settings for the object that
the model query subject is based on.
Note: If you change an aggregation value for SAP BW metadata, the aggregation
cannot perform time-based queries because the aggregation rules are not applied.

Usage property
You need to verify that this property is set correctly. For example, if you import a
numeric column that participates in a relationship, the Usage property is set to
identifier. You can change the property.
For SAP BW query items, the value of the Usage property depends on the type of
dimensional item the query item is based on.

208

Usage property value

SAP BW object

Description

Identifier

hierarchy level

Uniquely identifies
characteristic values at a
particular level in a
hierarchy.

Fact

key figure

Represents a key figure that
typically is numeric data.
Date and time data are also
supported.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Usage property value

SAP BW object

Description

Attribute

display attribute

Represents a display
attribute that is associated
with a characteristic.

Regular aggregate property
For example, if the Regular Aggregate property value of the Quantity query item
is sum, and it is grouped by Product Name in a report, the Quantity column in the
report shows the total quantity of each product.
The following aggregation types are supported for SAP BW data sources:
v Automatic
v Average
v Average non-zero
This type is supported only when it is set in the data source. You cannot change
the property to average non-zero in Framework Manager.
v Calculated
v Count
v Count Distinct
v Count non-zero
This type is supported only when it is set in the data source. You cannot change
the property to count non-zero in Framework Manager.
v Maximum
v
v
v
v
v

Median
Minimum
Standard deviation
Sum
Variance

Rules to determine the automatic aggregation type:
If the calculation is in an SAP BW object, these rules apply.
Calculation

Aggregation type

key items

unsupported

all other items

calculated

Aggregate rules property
For dimensionally modeled relational metadata, the method by which a
semi-additive measure is aggregated for the dimensions that you select.
For SAP BW metadata, the Aggregation Rules property is read-only. The
Semi-Aggregate property is used instead.

Semi-aggregate property
For SAP BW metadata, the Semi-Aggregate property shows the value that is set in
the data source, and the property is read-only.

Chapter 6. SAP BW metadata

209

If the value is set to unsupported in IBM Cognos Framework Manager, the
semi-aggregate behavior is ignored in the IBM Cognos studios.
The Semi-Aggregate property will not be supported in future releases. Instead, use
the Aggregate Rules property for semi-additive measures.

Formatting query items (SAP BW)
For example, you can assign the Currency format type to a numeric query item,
and then use the No. of Decimal Places property in the Data Format dialog box to
specify how many decimal places display in reports.
Some characters are language-sensitive and display properly only when your locale
supports the applicable font. For example, for Japanese currency symbols to
display correctly, your locale must be set to Japanese.
If IBM Cognos Framework Manager does not show the currency you require, you
must ensure that you install the appropriate language packs to support the
currency symbols. For example, to have the Indian currency symbol (rupee)
display, you must run an operating system or install a language pack that can
show this symbol. The Japanese operating system or Japanese language is one that
can show the Indian currency symbol.
You can define properties for several query items at the same time. However, if the
query items have different format types, all properties that were previously
specified are overridden and the default values from the data source are used. If
the original format types of the selected query items are the same, all the
properties for the selected query items are set identically.
For example, to use the same decimal separator for two query items and to keep
the number of decimals different, each query item must be changed individually. If
both are selected and changed at the same time, all properties including the
number of decimals are set identically for both query items.

Steps to format query items (SAP BW)
Procedure
1. In the Project Viewer pane, click the query item you want to format.
2. In the Properties tab of the Properties pane, click the Format property.
3. Set the format type to currency to ensure that currency formatting is applied to
all types of reports.
4. In the Currency scope box, specify the type of currency. If you do not see the
currency you want to use, click the Add button.
5. In the Properties box, select or type the appropriate property value.
6. Click OK.

Defining a prompt control (SAP BW)
You can use prompts in:
v Parameter maps
v Session parameters
v Expressions, including filters and calculations

210

IBM Cognos Framework Manager Version 10.1.1: User Guide

Note: If the caption is a different datatype than the business key (MUN) for the
level, use the Filter Item Reference in conjunction with setting the Prompt Type
for the caption. This ensures that the right datatype is used when filtering in the
studios.
This is useful for query items, such as ProductTypeCode, whose values are not
shown in a report but are useful for filtering data. In general, it is better to define
type-in prompts in the reports to make use of the additional prompt features.
However, your users cannot modify some variables. For these variables, you can
use IBM Cognos Framework Manager instead of the reports to define type-in
prompts.
The Prompt Info properties set in Framework Manager give you the ability to
control default filtering and prompting. The properties are used by:
v Query Studio to create a filter expression and set the use and display items in a
prompt and prompt query
v The Build Prompt Page tool in Report Studio to create a filter expression and set
the use and display items in a prompt and prompt query
v Generated prompts in Report Studio to set the use and display items in the
prompt and prompt query
The syntax for using a prompt as a value is
??

Steps to define a prompt control
Procedure
1. Click the query item.
2. In the Properties pane, click the Properties tab.
3. Click the plus sign (+) next to the Prompt Info property.
This is a compound query item property.
4. Modify the following properties to reflect the behavior you require.
Goal

Property

Set the type of prompt control that is
generated when the report is run.

Prompt Type

Set the generated prompt as part of a series
of generated cascading prompts.

Cascade On Item Reference

Specifies which query item is displayed to
the report user in the prompt.

Display Item Reference

The values in the prompt are data values of
the query item.
Each value in the prompt is associated with
a value in the query item specified in the
Use Item Reference property.

Chapter 6. SAP BW metadata

211

Goal

Property

Specifies which query item is passed from
the prompt to the filter.

Use Item Reference

Each value is associated with a value in the
query item specified in the Display Item
Reference property.
Specifies which query item is used in the
filter expression to retrieve data.

Filter Item Reference

Prompt type property
The Prompt Type property sets the type of prompt control that is generated when
the report is run, such as an edit box or a pull-down list.
The default value for this property is Server Determined.
Note: Prompt types set on attributes are now processed. The report user will see
the prompt that matches the prompt type on the attribute. Because prompt types
on attributes were not processed in the previous release, some differences may
occur.
Value

Prompt Control

Server Determined

The type of prompt control is based on
information in the server, such as the data
type of the query item.

Edit Box

A simple text box. If the data type of the
column is date or dateTime, this value
generates a date or date-time control as well
as the text box.

Select Date

A date control with a calendar interface.

Select Date/Time

A date-time control with a calendar
interface.
For SAP BW metadata, this value is not
relevant.

Select Interval

A date-time interval control.
For SAP BW metadata, this value is not
relevant.

Select Time

A time control that filters data based on the
selected time period. For example, if you
define a Select Time prompt for Order Time,
the user can use the time control to show all
orders placed after 1:00, or all the orders
placed between 10:00 and 11:00.
If you are referring to a time member, you
must use the exact values only.
If you are using a range, the end points of
the range must correspond to values in the
data source.

Select Value

212

IBM Cognos Framework Manager Version 10.1.1: User Guide

A drop-down list.

Value

Prompt Control

Select with Search

A list control so that users can search for
values.
For SAP BW metadata, this value is not
relevant.

Select with Tree

A tree prompt control for prompts that are
based on a hierarchy node.

Cascade on item reference property
The Cascade On Item Reference property indicates that the generated prompt is
part of a series of generated cascading prompts. The query item that you reference
in this property is the parent item in the cascade. The system prompts the user for
the cascade item before prompting them for the current query item.
For example, if you want to prompt for Product Line and then Product within the
selected line, set the Cascade On Item Reference property of the Product query
item to Product Line.

Display item reference and use item reference properties
The Display Item Reference property specifies which query item is displayed to
the user in the prompt. The Use Item Reference property specifies which query
item is passed from the prompt to the filter. Each value in the list of display items
is associated with a value of the query item specified in the Use Item Reference
property.
For example, you want the prompt to display Country Name while using Country
Code to retrieve data. Set the Display Item Reference property to Country Name
and the Use Item Reference property to Country Code. The prompt for Country
Name makes it easy for the report user to select required values. However, using
the Country Code in the filter is more efficient for data retrieval.
These properties are used by
v Query Studio to create a filter expression and set the use and display items in a
prompt and prompt query
v The Build Prompt Page tool in Report Studio to set the use and display items in
a prompt and prompt query
v Generated prompts in Report Studio to set the use and display items in the
prompt and prompt query
Note: The values of the Use Item Reference and Filter Item Reference properties
must be compatible. Otherwise, the report user may receive unexpected results. For
more information, see “Filter item reference property” on page 139.
Default: If no values are set, the properties default to the name of the query item.
These properties are used only for data driven prompt controls whose Prompt
Type property is set to either Select Value or Select with Search.

Filter item reference property
The Filter Item Reference property identifies the query item used when Report
Studio or Query Studio generates a filter. This property can help create more
efficient queries by ensuring that a filter uses an indexed numeric column rather
than a non-indexed string column.
Chapter 6. SAP BW metadata

213

For example, a report author wants to create a filter for the Country Name query
item. You set the Filter Item Reference property to use Country Code instead of
Country Name for any filter that uses the Country Name query item.
In another example, a report author wants to create a filter for the Country Code
query item that displays in the Orders table. You want that filter to use the
Country Code in the Country table because there are fewer rows to read in the
Country table so you set the Filter Item Reference in the model to
Country.Country Code.
This property is used by:
v Query Studio to create a filter expression
v The Build Prompt Page tool in Report Studio to create a filter expression
Default: If no value is set, the property defaults to the name of the query item.

Using the filter item reference and use item reference properties
The values of the Filter Item Reference and Use Item Reference properties must
be compatible. The value of the Use Item Reference property must be a type that
is expected by the Filter Item Reference property. Otherwise, the report user may
receive unexpected results. This may occur when a report user creates a filter
without creating a prompt page.
In an example model, the Use Item Reference property is set to Employee Number
and the Filter Item Reference property is Employee Name. In Report Studio, a
report author creates the following filter without creating a prompt page:
Reference.EmployeeName in ?parm1?

Report Studio automatically generates prompts when you create a filter without
creating a prompt page. Because the prompt is generated, Report Studio uses the
Prompt Info properties from the Employee Name query item in the Framework
Manager model.
The Use Item Reference indicates that the values being passed to the filter are
employee numbers. The Filter Item Reference is filtering data based on Employee
Name. The filter is as follows: Reference].[Employee Name] in ("1", "2"). Since
there are no Employee Name values of "1" or "2", the report will be blank.

Using filter item reference for dimensionally modeled relational
metadata
For dimensionally modeled relational metadata, Prompt Info is specified on the
attribute with the role of _memberCaption, instead of the level. Although set on
the attribute, the Prompt Info properties are processed as if they were on the level.
By default, when the level is included in a report, users are prompted to enter
MUNs in the level's prompt. To enter caption values instead, set the attribute's
Filter Item Reference property to itself. When the prompted filter is applied, the
filtered values will be based on the attribute values.
For example, the level Product Line has an attribute of Product Line with a role of
_memberCaption. If the Filter Item Reference property value is set to Product
Line, report users are prompted to enter Product Line values. If the Filter Item
Reference property value is left blank, users are prompted to enter MUNs.

214

IBM Cognos Framework Manager Version 10.1.1: User Guide

Note: Do not use the Filter Item Reference property with the Select with Tree
prompt type. Because a Select with Tree prompt can only filter on a level or
hierarchy, setting the Filter Item Reference property will cause an error.

Testing prompts
When you test a model object that references a prompt, IBM Cognos Framework
Manager asks you to enter the prompt value. Framework Manager uses this value
for either the duration of the session, or until you clear the prompt value.
You can change the session value of prompt values through the Options dialog
box. This dialog box is available when you modify a dimension or query subject,
or define a calculation, filter, query set, or complex relationship. You can change
the prompt value at the time that you are testing the expression that references
that value.
If you select the Always prompt for values when testing check box in the Prompt
dialog box, Framework Manager prompts you for a value every time you test the
object. When updating the object or performing a count, Framework Manager uses
the existing prompt value, if one exists.
A prompt on a query item in a model query subject is associated only with that
query item. A prompt on a query item in a data source query subject is associated
with the entire query subject and therefore, the prompt displays when you test any
query item in the query subject.

SAP BW variables
SAP BW variables are parameters of an SAP BW Query that are set up during
query definition. When you run the query, the SAP BW variables are filled with
values. They function as placeholders and can be processed in different ways. They
are automatically exposed as prompts at run time.
SAP BW variable information is included in a composite custom property named
SAP BW Variables that exists only if a data source has one or more variables
associated with it. The SAP BW Variables property contains one or more
composite properties, each of which must be assigned a unique name. Each
property represents a description of a single SAP BW variable. Because the variable
information is specified in a custom property, Framework Manager does not
validate these properties.
The SAP BW variable information is obtained using the SAP BW BAPI
MDDataProviderBW::GetVariables.
Framework Manager supports these types of SAP BW variables:
v Characteristic
There are two kinds of characteristic variables: characteristic value and hierarchy
node. Characteristic values variables select characteristic values. Hierarchy node
variables select values from any position in a presentation hierarchy.
v Hierarchy
The user is not prompted for a value because IBM Cognos software
automatically populates it at run time, based on the selected hierarchy. Variables
for hierarchies function act as placeholders for the hierarchy of a characteristic.
All the values for hierarchy variables are read-only.
v Formula

Chapter 6. SAP BW metadata

215

The user types a numeric value at run time. Use formula variables if a formula
component should be entered only when a query is run. For example, you can
use a formula variable for a value-added tax rate to process the current rate at
run time.
v Authorization
Authorization variables are like other variables, but IBM Cognos software
automatically populates the variable values with the user's credentials. SAP BW
uses these credentials to supply the information needed by an SAP BW Query
that has security applied to it.
Variables for hierarchies function as placeholders for the hierarchy of a
characteristic. All the values for hierarchy variables are read-only.

Name property
This property is a string value.
SAP BW equivalent: VARIABLE_NAME
Restrictions: Read-only.

Caption property
The string value for this property is a composite and is locale-dependent.
Represent each locale in the model by a custom property whose value is the locale
name. For example, if the locales en-ca and fr-fr exist in the model, define two
custom properties named en-ca and fr-fr.
The default value is obtained from SAP BW.

Default low caption and default high caption properties
The value for each of these properties is a composite, locale-dependent string
value. Represent each locale in the model by a custom property whose value is the
locale name. For example, if the locales en-ca and fr-fr exist in the model, define
two custom properties named en-ca and fr-fr.
The default value is obtained from SAP BW.
Restrictions: The Default High Caption property is applicable only for variables
with a Selection Type of interval.

Selection type property
The possible values are value, interval, complex, multiValued.
Value

SAP BW equivalent
SAP_VAR_SEL_TYPE_VALUE

value
SAP_VAR_SEL_TYPE_INTERVAL
interval
SAP_VAR_SEL_TYPE_COMPLEX
complex

216

IBM Cognos Framework Manager Version 10.1.1: User Guide

Value

SAP BW equivalent
SAP_VAR_SEL_TYPE_COMPLEX

multiValued

Restrictions: Read-only.

Entry type property
The default value is obtained from SAP BW.
Value

SAP BW equivalent
SAP_VAR_INPUT_TYPE_OPTIONAL

optional
SAP_VAR_INPUT_TYPE_MANDATORY
mandatory
SAP_VAR_INPUT_TYPE_MANDATORY_NOT_INITIAL
mandatoryNotInitial

Restrictions: Read-only.

Default low value and default high value properties
Each of these properties specifies a range of values.
The default value is obtained from SAP BW.
Restrictions: The Default High Value property is applicable only for variables with
a Selection Type of interval.

Description property
This property is a string value.

SAP BW variable type property
The possible values are numeric, characteristic, hierarchy, or hierarchicalNode.
The default is obtained from SAP BW.
Restrictions: Read-only.

Prompt type property
The default value depends on the variable type. If the value of this property is not
one of the predefined values, the value used is hierarchyPickList. The predefined
values for the Prompt Type property are as follows.
Value

Restrictions

typeIn

Required for numeric variables and optional
for characteristic values

Chapter 6. SAP BW metadata

217

Value

Restrictions

pickList

Optional for characteristic variables

calendar

Only for characteristic variables based on
0CALDAY

hierarchyPickList

Optional for all presentation hierarchies

notApplicable

Required for hierarchy variables

Use this property to specify the type of prompt.
You can improve the performance of variable prompts that use either a picklist or
hierarchical picklist. Use the Level Restriction, Initial Number of Picklist Values,
and Use Default Value properties to control the performance of those types of
variable prompts.
Changing a picklist or hierarchical picklist prompt to a type-in prompt can
dramatically improve performance because it does not require the application
server to populate a picklist with values. However, it requires your users to be able
to accurately enter characteristic values.
Restrictions: Read-only for some types of variables such as characteristic and
formula.

Level restriction property
This property is a numeric value.
The default value is 1.
Use this property to reduce the number of characteristic values that populate a
hierarchical picklist. There is a limited number of levels of a hierarchy from which
values are obtained.
If the value is zero (0), which is the default, then characteristic values from all
levels of a hierarchy (if applicable to the type of prompt) populate the picklist.
Otherwise, the property specifies a colon-separated range of levels from which
values are obtained (the root level is zero).
For a ragged hierarchy, you must specify all levels that you may want to use even
if some branches do not have that level.
Restrictions: Applicable only for hierarchical node variables with a Prompt Type of
hierarchyPickList.

Use default values property
This property is a boolean property that determines whether the default values are
used. If this property is set to true, users are not prompted for the associated
variable, and the default value is always applied.

218

IBM Cognos Framework Manager Version 10.1.1: User Guide

Use this property to set the variable to a single value. Users are not prompted for
the value of a variable and consequently, the IBM Cognos BI server does not
populate a picklist with values. However, users can no longer change the value of
a variable.
The default value is false.

Show key and caption property
To show keys and captions for SAP BW variables, set this property to true. This
property is applicable only for pick list prompts and hierarchy node prompts.
The default value is false.

Initial number of pick list values property
This property specifies the initial number of values used to populate a picklist,
hierarchical picklist, or prompt.
The default value is zero (0), which means all.

Numeric variable property values (SAP BW)
The following variable properties are applicable to numeric variables:
Property

Default value

Type

numeric

Caption
Selection Type

value

Entry Type

obtained from SAP BW

Default Low Value
Default High Value
Prompt Type

typeIn

Use Default Value

false

You can change the default values for a numeric variable except for the Prompt
Type property, which is read-only.

Characteristic variable property values (SAP BW)
There are two kinds of characteristic variables: characteristic value and hierarchy
node. Characteristic values variables select characteristic values. Hierarchy node
variables select values from any position in a presentation hierarchy.

Characteristic value variable property values
The following variable properties are applicable to characteristic value variables:
Property

Default value

Type

characteristic

Caption
Selection Type

obtained from SAP BW

Entry Type

obtained from SAP BW

Chapter 6. SAP BW metadata

219

Property

Default value

Default Low Value

If the entry type is value or complex, the
default property is shown.
If the entry type is interval, the default low
property is shown. This value is obtained
from SAP BW.

Default High Value

If the entry type is value or complex, the
default property is shown.
If the entry type is interval, the default high
property is shown. This value is obtained
from SAP BW.

Prompt Type

typeIn or pickList
This depends on the number of members in
the referenced dimension.
If the value is invalid, typeIn is used.

Use Default Value

false

Show Key and Caption

false

Initial Number of Picklist Values

zero (0)

A characteristic value variable for the 0CALDAY dimension is shown in the model
as a date. The Data Type property is set to xsdDate and the Prompt Type property
is set to calendar. The Prompt Type property is read-only for the 0CALDAY
dimension.

Hierarchy node variable property values
The following variable properties are applicable to hierarchy node variables:
Property

Default value

Type

characteristic

Caption
Selection Type

obtained from SAP BW

Entry Type

obtained from SAP BW

Default LowValue
Default HighValue
Prompt Type

hierarchy PickList
You can change the Prompt Type property
to typeIn or pickList.

Level Restriction

zero (0)

Use Default Value

false

Picklist prompts(SAP BW)
Each picklist prompt contains a pre-defined number of values. These values are
determined by the Maximum Number of Values property.

220

IBM Cognos Framework Manager Version 10.1.1: User Guide

If the number of actual values is less than or equal to the default number of
values, the prompt is generated as a single picklist prompt. If the number of actual
values exceeds the default number, two prompts are generated in this order:
v A bound range parameter with a starting value of 1 and an ending value
determined by the Maximum Number of Values property
This parameter is of the type xsdUnsignedLong and is optional. The name of the
parameter is the name of the original prompt followed by _range_prompt. The
caption is locale-specific. If this is a multilingual model, you must store the
template for the caption in a message file.
v A picklist prompt containing the default number of values

Adding business rules (SAP BW)
Business rules that were created in SAP BW are imported into IBM Cognos
Framework Manager. You can add more business rules to your model to refine the
retrieved data and to ensure that the right information is available for your users.
Creating business rules and storing them in the model instead of in reports has
many advantages. You save time because you and your users do not have to
re-create the business rules every time they are needed. The business rules ensure
consistency because your users all use the same definitions. For example, Low
Margin means the same thing throughout the organization. They are easy to
update because you maintain the business rules centrally so that all reports are
updated automatically as the rules evolve. For example, if the definition for Low
Margin changes, all reports that use the Low Margin calculation are updated
automatically. The business rules enhance security.

Procedure
1. Add calculations so that your users can include calculated data in their reports
“Create a calculation (SAP BW).”
2. Create and apply filters so that you can limit the data that a query subject
retrieves “Creating a filter (SAP BW)” on page 223.
3. Add prompts that will automatically display whenever a dimension or query
subject is used in a report; report consumers are then prompted to filter data
“Defining a prompt control (SAP BW)” on page 210.
4. Use session parameters “Create a session parameter (SAP BW)” on page 228
and parameter maps “Creating a parameter map (SAP BW)” on page 227 to
dynamically resolve expressions.
5. Create a security filter to control the data that is shown to your users when
they set up their reports “Adding data security” on page 239.

Create a calculation (SAP BW)
Punctuation characters, such as the question mark (?), must be in 7-bit ASCII
character code. If you type a punctuation character from a multi-byte enabled
keyboard, ensure that you type the 7-bit ASCII representation of the character. For
example, type Alt+063 for the question mark.
Avoid using characters that are used for expression operators in the name of the
calculation. Syntax errors may occur when the expression is evaluated. For
example, a calculation named Margin * 10 causes errors when used in an
expression such as [Margin * 10]< 20.

Chapter 6. SAP BW metadata

221

In expressions, an operator or function may require operands to be of a particular
dimensional type. When an operand is not of the required type, one or more
coercion rules may be applied to coerce the operand to the appropriate type.
Because coercion rules are not applied to expressions in model query subjects,
ensure that those expressions are valid without relying on coercion rules. For more
information about coercion rules, see the IBM Cognos Report Studio User Guide.
If you insert an imported user-defined function in the calculation, ensure that the
function name does not repeat vendor-specific names. For example, if the
user-defined function name is CHAR you will receive and error when testing the
function in the Calculation Definition dialog box because this name is considered
identical as char in Microsoft SQL Server. For information about function names
used in your database, see the database product documentation.
At query time, IBM Cognos Framework Manager returns a null value for any
calculation that contains a divisor whose value is zero. Framework Manager cannot
detect zero-division errors in functions such as average and mod, because the
division operator is not explicit.
You can apply a stand-alone calculation to one or more dimensions or query
subjects to provide calculated data to a report, or include it in a package to make it
available to your users. By moving a stand-alone calculation or a shortcut to it into
a folder, you can better organize the model objects.

Steps to create a calculation
Procedure
1. Click the namespace or folder and, from the Actions menu, click Create,
Calculation.
2. In the Name box, type a name for the calculation.
3. Define the expression.
Goal

Action

Add items

On the Model tab, click a query item, filter,
or calculation and click the arrow.

Add functions

On the Functions tab, choose a component
and click the arrow.

Add parameters

On the Parameters tab, click a parameter
and click the arrow.

Retrieve all data and show a specified
number of rows

Click the options button, select the Restrict
the maximum number of rows to be
returned check box, and type the required
number of rows to be returned.

This setting does not improve performance
for retrieving data when testing dimensions
and query subjects.

222

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Override session parameters

Click the options button, click Set, enter a
value in the Override Value field, and click
OK.

Override prompt values

Click the options button, and then click
Prompts.
The Model Prompts Manager dialog box
displays, which shows all prompts, and their
values, that are in the model.

4. To test the calculation, click the test button
.
You can test only calculations that contain query items. If a calculation contains
a function, for example _add_days, the Test Sample button is not available.
5. Click OK.
6. Modify the Data Type property to identify the type of data the calculation
returns.
The IBM Cognos studios use this information to format the data that the
calculation returns.

Results
For information about functions, see The expression editor.

Creating a filter (SAP BW)
For example, you can use the in_range function to create a filter that retrieves data
for products introduced in a specific time frame. The syntax for this example looks
like this:
[gosales_goretailers].[Products].[Introduction
date]
in_range {Feb 14, 1999 : July 14, 2007}

Note: When using a date or time function, you must use a 24-hour clock. IBM
Cognos Framework Manager does not support "a.m." or "p.m." in expressions. For
example, use 20:00 to signify 8 p.m.
You can restrict the data represented by dimensions or query subjects in a project
by creating a security filter. The security filter controls the data that your users can
see when they set up their reports.
You can also apply governors to restrict the data that the queries in a package
retrieve.
Framework Manager supports stand-alone filters and embedded filters.
v Use a stand-alone filter when you want to reuse the expression.
You can add a stand-alone filter to one or more dimensions or query subjects to
limit the data that the query retrieves when the filtered dimension or query
subject is used in a report, or you can include it in a package to make it
available to your users. By moving a stand-alone filter or a shortcut to it into a
folder, you can better organize the model objects.
Chapter 6. SAP BW metadata

223

v Use an embedded filter when you want to use a filter with only one dimension
or query subject.
You can create an embedded filter when modifying a dimension, relational data
source query subject, or model query subject.
If you start with an embedded filter, you can later convert it into a stand-alone
expression that you can apply to other dimensions or query subjects. Tip:
Right-click the filter expression in the Filters tab and click Convert to
Stand-alone Filter.
When you embed a filter, the data source query subject must have a relationship
to any query subject referenced by the expression. This relationship is necessary
even if the expression references a model query subject based on the same table
as the data source query subject in which you are embedding the expression.
To create a filter on an unrelated query subject, do one of the following:
– Ensure that there is a join path between the new query subject and the one
that contains the filter.
– Base the embedded filter on a query item that is based on the data source
query subject you want.
– Convert the calculation to a stand-alone filter, so that it is not part of the
query subject.
– Create a stand-alone filter that references the embedded object.
You may be interested in the following related topics:
v Security filters “Adding data security” on page 239
v Functions The expression editor
v Parameters “Creating a parameter map (SAP BW)” on page 227
v Session parameters “Create a session parameter (SAP BW)” on page 228
You can also apply governors to restrict the data that the queries in a package
retrieve.

Steps to create filters
Procedure
1. Do one of the following:
v To create a stand-alone filter, click the namespace or folder, and click
Actions, Create, Filter.
v If you want to create an embedded filter, double-click the dimension or
query subject that will contain the filter, click the Filters tab, and then click
Add.
2. In the Name box, type a name for the filter.
3. Define the expression.
Tip: If there is an invalid expression in the filter, review the Tips box in the
expression editor for more information.

224

Goal

Action

Add query items and filters

On the Model tab, drag the objects you
want to the Expression Definition box.

Add functions

On the Functions tab, drag the functions to
the Expression Definition box.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Add parameters

On the Parameters tab, drag the parameters
to the Expression Definition box.

Retrieve all data and show a specified
number of rows

Click the options button, select the Restrict
the maximum number of rows to be
returned check box, and type the required
number of rows to be returned.

This setting does not improve performance
for retrieving data when testing dimensions,
query subjects, and query sets.
Override session parameters

Click the options button, click Set, enter a
value in the Override Value field, and click
OK.

Override prompt values

Click the options button, and then click
Prompts.
The Model Prompts Manager dialog box
displays, which shows all prompts, and their
values, that are in the model.

4. Click OK.

Results
You can also apply governors to restrict the data that the queries in a package
retrieve. For more information, see “Governors” on page 283.
You may be interested in the following related topics:
v “Adding data security” on page 239
v
v

Appendix B, “Using the expression editor,” on page 365
“Creating parameter maps” on page 149

v
v
v

“Creating session parameters” on page 151
“Testing query subjects or query sets” on page 90
“Mandatory and optional prompts” on page 157

Applying a filter (SAP BW)
You can embed a stand-alone filter in dimensions or query subjects, but if you
want a different usage for each embedded filter, you must create different versions
of the stand-alone filter. Otherwise, your users could be required to fill in a prompt
that you thought was optional if there is any instance where the usage is set to
mandatory. For information about mandatory and optional prompts, see
“Mandatory and optional prompts” on page 157.
For example, in query subject A, you embed a stand-alone filter and define it as
optional. In query subject B, you define it as mandatory. When your users create a
report that uses both query subjects, they are required to choose values in both
Chapter 6. SAP BW metadata

225

filters, even the one defined as optional. All instances of the filter are considered to
be mandatory when used in the same query. The solution is to create different
versions of the filter, each with its own name.

Steps to apply a filter
Procedure
1.
2.
3.
4.

Create a filter.
Select the filter, and click Actions, Edit Definition.
Click the Filters tab, and drag the filter you created to the Filters box.
Select a usage value for the filter.

Usage Value

Description

Always

Use this usage value to ensure specified data
is filtered out of all reports. For example,
your company may have obsolete
information that it stores but does not want
to report on.
Always is the default usage value.

Design Mode Only

Retrieves a small subset of the data for the
sample report. Use this usage value when
you do not need to see all the data, for
example when testing a query subject.
To apply design mode filters in Framework
Manager, select the Apply all relevant
design mode filters when testing option.
This option is available on the Test Settings
tab.
Your users may need the design mode filter
in Query Studio when they want to focus on
designing the layout and format of a report
and not retrieve all the data as they work.
To access the design mode filter in Query
Studio, run the report with limited data.

Optional

Specifies that the filter is optional. The user
is prompted to filter data and can leave the
prompt blank. If the prompt is blank,
Framework Manager ignores the filter and
retrieves all data for the dimension or query
subject.
The ? ? syntax is required for optional
prompts.
Use this usage value if your users want to
control when the filter is applied. For
example, you want to see on one country
sometimes and see the data for all countries
at other times. An optional filter for country
looks like this:
([GeoNamespace].[Countries]
.[CountryName]
=
?WhichCountry?)

226

IBM Cognos Framework Manager Version 10.1.1: User Guide

5. If you want to view the SQL, click the Query Information tab.
6. Click OK.

Creating a parameter map (SAP BW)
Parameter maps are similar to data source look-up tables. Each parameter map has
two columns, one for the key and one for the value that the key represents. You
can manually enter the keys and values, import them from a file, or base them on
existing query items in the model.
You can also export parameter maps to a file. To modify the parameter map, you
can export the map values to a file, do additions or modifications and then import
it back into IBM Cognos Framework Manager. This is especially useful for
manipulating large, complex parameter maps.
All parameter map keys must be unique so that Framework Manager can
consistently retrieve the correct value. Do not place quotation marks around a
parameter value. You can use quotation marks in the expression in which you use
the parameter.
The value of a parameter can be another parameter. However, you must enclose
the entire value in number signs (#). The limit when nesting parameters as values
is five levels.
When you use a parameter map as an argument to a function, you must use a
percentage sign (%) instead of a dollar sign ($).
Assign an alias to a query item that uses a parameter map as part of its name and
to add the multilingual names to the object in the Language tab (Properties pane).
Note: If you are using SAP BW metadata, you cannot use a query item to generate
the keys and values of a parameter map.

Steps to manually create a parameter map
Procedure
1. Click the Parameter Maps folder, and click Actions, Create, Parameter Map.
2. In the Name box, type a name for the new parameter map.
3. Click Manually enter the parameter keys, and/or import them from a file and
click Next.
4. Do one of the following:
v To manually enter values, click New Key, type a key, and press Tab to enter
a value for that key.
v To import keys and values, click Import File and identify the location of the
appropriate .csv or .txt file. For a .txt file to be used for import, the values
must be separated by tabs and the file must be saved as UTF8 or Unicode
format. ANSI text files are not supported.
Note: If you are going to use a parameter in a data source query subject, the
value must use English-specific punctuation. This means that you must use a
period (.) to represent a decimal and a comma (,) to separate lists of values.
5. Modify existing parameters as required.

Chapter 6. SAP BW metadata

227

Goal

Action

Assign a default value

In the Default Value box, type a value.
If the key used in an expression is not
mapped, the default value is used.
Setting a default value is optional. However,
if no default is provided, an unmapped key
could produce an error.

Load on demand

A parameter map containing a large number
of keys may be slow to load when running a
report. You can restrict the load to only
those keys that are required for a specific
report by setting Load on demand to true.
By default, the value is set to false and all
keys are loaded.

Remove a parameter

Select a row and click Delete.

Modify a parameter

Select the row you want to modify, click the
Edit button, and type a value.

Clear all keys and values

Click Clear Map.

6. Click Finish.

Default values and parameter maps
The Default Low Value and Default High Value properties may contain
expressions that use parameter maps. You can use parameter maps to define a
value for a target currency variable based on the user’s locale. For example, you
define a parameter map that provides an ISO currency code. The value for the
Default Low Value property could be defined as
#$Currency_Map[runLocale}#

This parameter map is used when the SAP BW variable Target Currency is used in
a report.
These are the only properties related to SAP BW variables that can use parameter
maps.

Create a session parameter (SAP BW)
For example, user ID and preferred language are both session parameters. Because
session parameters are key and value pairs, you can think of each session
parameter as an entry in a parameter map named Session Parameters. You use a
session parameter in the same way that you use a parameter map entry, although
the syntax for session parameters is slightly different.
There are two types of session parameters: environment and model.
Environment session parameters are predefined and stored in Content Manager. By
default, the following session parameters display in Framework Manager:

228

IBM Cognos Framework Manager Version 10.1.1: User Guide

v

runLocale
Returns the code for the current active language in Framework Manager. The
model content is shown in this language.
You can change the active language at any time for your current session only. In
future sessions, the model continues to open in the design language. For more
information, see the section “Adding a language to a project” on page 122.

v

account.defaultName
Specifies the name of the current user as defined in the authentication provider.
For example, user's first and last name.
If you log on anonymously, you will see Anonymous.

account.personalInfo.userName
Specifies the user ID used to log on to IBM Cognos BI.
If you log on anonymously, you will not see this parameter.
v current_timestamp
Specifies the current date and time.
v machine

v

Specifies the name of the computer where Framework Manager is installed.
If your authentication source supports other parameters and you entered
information about them in the authentication source, you see other session
parameters, such as account.personalInfo.email or account.personalInfo.surname.
You can define additional parameters by using model session parameters. Model
session parameters are stored in a parameter map named _env. They are set in the
project and can be published with a package.
Model session parameters must have their values set within the scope of objects in
the Framework Manager model. The scope can include the use of existing
environment session parameters, as well as static values.
Each session parameter must have a name and a default value. You can define an
override value to test the results that value returns. The override value is valid
only when you have the model open, and is not saved when you save the model.
If no override value exists, Framework Manager uses the default value when it
executes a query that contains a session parameter.
The rules governing the use of parameters include the following:
v All possible return values must have the same data type.
v Only one value can be defined.

Steps to create session parameters
Procedure
1. Click Project, Session Parameters.
2. Click New Key and type a session parameter key and value.
3. Choose how to handle the override value.
v To avoid having to set the override value every time you edit the project, set
the session parameter as a value.
v To avoid having to remove the project setting each time before you publish
it, set the session parameter as a session override.
4. Modify existing parameters as required.
Chapter 6. SAP BW metadata

229

Goal

Action

Change the parameter value

Click the row that contains the value you
want to change, click Edit, and type a value.

Assign a default value

In the Default Value box, type a value.
Framework Manager uses the default value
if a key has an invalid value.

Remove a parameter

Click a row and click the Delete button. You
cannot delete an environment session
parameter.

Clear an override value

Click a row and click Clear Override.

5. Click OK.

Organizing the model (SAP BW)
A best practice is to create several views, or layers, in the model:
v Keep the metadata from the data source in a separate namespace or folder.
In IBM Cognos Framework Manager, this is called the import view.
v Create one or more optional namespaces or folders for resolving complexities
that affect querying using query subjects or dimensional objects.
To use IBM Cognos Analysis Studio or any OLAP-style queries, there must be a
namespace or folder in the model that represents the metadata with dimensional
objects.
v Create one or more namespaces or folders for the augmented business view of
the metadata that contains shortcuts to dimensions or query subjects.
In Framework Manager, these are called the business view. Use business
concepts to model the business view. One model can contain many business
views, each suited to a different user group. You publish the business views.
Security can be defined in any of the views. It depends on your business
requirements. For example, if you need to keep everyone from viewing an object,
you add security to the object in the import view. Typically security is applied in
the business view.
To organize a model you can include metadata in several folders by using
shortcuts or create namespaces or folders.

Shortcuts (SAP BW)
For example, you create folders named Orders, Products, and Customers. If you
want both Orders and Customers to contain the same dimension, you must create
a shortcut to the dimension and add it to both folders.
Note: Two shortcuts to namespaces or folders must not have the same name in a
model. For other types of shortcuts (e.g., a shortcut of a query subject), the name
must be unique within the parent namespace.
When you create a shortcut, IBM Cognos Framework Manager does not set the
Screen Tip and Description properties. Unless you define these properties, the
values shown in the IBM Cognos studios are the same as those defined in the
object that the shortcut references.

230

IBM Cognos Framework Manager Version 10.1.1: User Guide

Tip: To go to the object that the shortcut references, right-click the shortcut and
click Go To Target.
Shortcuts are less flexible from a presentation perspective than model objects, but
they require much less maintenance because they are automatically updated when
the target object is updated. If maintenance is a key concern and there is no need
to customize the appearance of the query subject, use shortcuts.
IBM Cognos Framework Manager has two types of shortcuts:
v regular shortcuts, which are a simple reference to the target object.
v alias shortcuts, which behave as if they were a copy of the original object with
completely independent behavior. Alias shortcuts are available only for query
subjects and dimensions.

Shortcuts and dimensions
Shortcuts result in fewer dimensions to maintain. You can keep dimensions in the
import view and keep shortcuts in the business view.
When you create a shortcut to a dimension, you cannot customize which query
items are in the shortcut. The entire dimension is included in the shortcut.
The security you specify for an object is passed to shortcuts that reference the
secured object. If you have a shortcut to a secured object, only users with
permission to see the secured object can see the shortcut in the published package.
Right-click the query subjects, dimensions, or folders that you want to create
shortcuts to, and click Create, Shortcut.

Creating folders or namespaces (SAP BW)
You can create folders or namespaces to organize objects in the model.
The most important thing to know about namespaces is that once you have begun
authoring reports, any changes you make to the names of published namespaces
will impact your IBM Cognos content. This is because changing the name of the
namespace changes the IDs of the objects published in the metadata. Because the
namespace is used as part of the object ID in IBM Cognos Framework Manager,
each namespace must have a unique name in the model. Each object in a
namespace must also have a unique name. Part of the strategy of star schema
groups is placing shortcuts into a separate namespace, which automatically creates
a unique ID for each object in the namespace. For relational databases, this allows
us to use the same name for shortcuts to conformed dimensions in different star
schema groups.
The next time you try to run a query, report, or analysis against the updated
model, you get an error. If you need to rename the namespace that you have
published, use Analyze Publish Impact to determine which reports are impacted.
Folders are much simpler than namespaces. They are purely for organizational
purposes and do not impact object IDs or your content. You can create folders to
organize objects by subject or functional area. This makes it easier for you to locate
metadata, particularly in large projects.

Chapter 6. SAP BW metadata

231

The main drawback of folders is that they require unique names for all query
subjects, dimensions, and shortcuts. Therefore, they are not ideal for containing
shared objects.
Tip: When viewing metadata in the Diagram tab, you can expand or collapse
folders and namespaces. From the Diagram menu, click Collapse All or Expand
All.
If you set security on a folder and then move objects into the folder, confirm that
exclusions are set correctly.
For SAP BW metadata, shortcuts to namespaces are not supported.

Steps to create a folder
Procedure
1. Click Actions, Create, Folder.
2. In the Folder name box, type a name for the new folder.
3. Click Next.
4. Choose whether to move the objects or to create shortcuts:
v To move selected objects to the folder, click Move the selected items to the
new folder. When you move an object that participates in a relationship, the
relationships to this object also move.
v To create shortcuts that reference selected objects, click Create a shortcut for
the selected items. Do not select all the objects in the namespace to avoid
creating a recursive structure in the published package.
5. Select the objects you want to add to the folder.
6. Click Finish.

Steps to create a namespace
Procedure
1. Click Actions,Create, Namespace.
2. Right-click the namespace, click Rename, and give the namespace a descriptive,
unique name.
3. Add objects by importing metadata or moving model objects or shortcuts to the
objects into the namespace.

232

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 7. Publishing packages
You publish a package to make the metadata available to your users. You create
packages based on your user groups. Packages must contain all the information
that a specific user or group of users needs to create reports.
The following tasks are involved when publishing packages:
v Verify the model and repair any problems.
v Analyze the model for potential modeling issues that you should examine before
publishing the metadata.
v Set security to restrict access to metadata and data across IBM Cognos products.
v Specify the languages published with each package.
v Create or modify a package.
v Specify the suppression options that will be available to package users.
v Publish the package.
v Verify the package, and repair any problems.
When publishing packages, you have the option to externalize query subjects and
dimensions to convert them to formats that you can use in IBM Cognos
Transformer or in other applications.
Note: Externalizing queries will not be supported in future releases of Transformer.

Verifying models or packages
At any point in the modeling process, you can check the validity of the whole
model or selected objects in the model such as a package. First, verify the model
and repair any problems, and then verify each package within a model
individually. By verifying a package, you can find and remove invalid objects that
can cause a query to fail.
When you verify a model or package, IBM Cognos Framework Manager looks for
messages in the following categories:
Category

Description

Internal Model Inconsistencies

Verifies that objects are properly defined and
that duplicate names are not used. Always
run this group of tests.

Invalid or Incomplete Object References

Checks for dangling references or references
to missing objects.

Determinant Completeness

Verifies that determinants are completely
defined with keys and attributes, and that
all query items are accounted for in a
determinant.

Dimension Completeness

Verifies that dimensions are fully defined
with level member captions and business
keys.

© Copyright IBM Corp. 2005, 2011

233

Category
Query Status

Description
Verifies that the evaluation status for query
subjects and dimensions is valid and is not
set to "needs reevaluation" or "invalid".
Query status does not verify shortcut
objects. For example, you create a shortcut
to an object. The object becomes invalid for
some reason. If you verify the object, a
message is shown because it is invalid.
When you verify the shortcut, no message is
shown.

Backward Compatibility

Informs you that a model contains features
from a previous release that have been
maintained but will be deprecated in a
future release.

Verify Relationship Cardinality

Warns when many-to-many relationships are
found.

Each category can generate multiple messages for an object. For each message, the
severity, object icon, object ID, description of the message, explanation of how to
correct the problem, and possible actions that can be performed on the object are
provided. You may be able to correct a problem immediately by modifying the
object that caused the problem or by asking Framework Manager to repair the
problem.

Procedure
1. Choose one of the following:
Goal

Action

Verify a model

From the Project menu, click Verify Model.

Verify a package

In the Project Viewer, right-click a package,
and click Verify Selected Objects.

Verify selected objects

In the Project Viewer, select one or more
objects, right-click, and click Verify Selected
Objects.

2. On the Options tab, select the message severity levels that you want to see in
the results.
By default, all message severity level check boxes are selected. Clear the ones
that you do not want.
3. Select the categories that you want to verify.
By default, all category check boxes are selected. Clear the ones that you do not
want.
4. Click Verify Model.
The Verify Model Results tab shows the results.
5. To sort the messages, click Sort in the severity, object type, or name column
heading.
6. To see the object that is related to the message, under the Actions heading,
click Find in Project Viewer.
7. To repair problems for a group, select a grouping criteria from the list.

234

IBM Cognos Framework Manager Version 10.1.1: User Guide

8. Select the check box beside each message for the problem that you want to
repair.
Tips:
v To select all messages, select the check box at the top of the check box
column. To clear all selected messages, clear the check box at the top of the
check box column.
v If you grouped the messages, select the check box at the top of the group
check box column to select all messages in the group.
v To hide the message detail information, click Collapse in the group heading.
9. Click Repair Selected.
Framework Manager repairs the problems in the following order:
v invalid references
v invalid objects, invalid relationships, invalid aggregation rules, missing
locales, unsupported prompt types, inferred roles, and re-evaluate; in no
particular order
v upgraded model errors
You can also repair problems by clicking the Edit Definition icon under the
Actions heading for the message. In the dialog box, modify the definition of
the object as required.

Results
When the repair process is finished, a summary of the repair results displays. The
model or package is verified again and the results are shown in the Verify Model
Results tab.
Tip: Problems that cannot be repaired during the verification of a package may be
repaired using verify model.
For stand-alone filters, if the underlying objects might not be valid, a "needs
reevaluation" message displays. The Repair option does not work for stand-alone
filters. To ensure that the stand-alone filters are valid, open each filter and save it.

Creating or modifying packages
You create a package to make metadata available to your users. A package is a
subset of a project. It must contain all the information that a specific user or group
of users needs to create reports. You can also apply security to the package.
For example, if your data source contains information from different areas of a
business, you might decide to create different packages for Human Resources and
Finance. Ensure that your package meets a broad, but related reporting need. Each
report can contain information from a single package only.
When creating or modifying packages, consider the following information:
v Reusing packages
You can reuse packages by creating nested packages. When you create nested
packages, you create a master package that is based on other existing packages.
Using nested packages saves you time, and they are easier to maintain. Another
advantage of using nested packages is that you publish only the master package.
For example, you create three separate packages named Canada, Mexico, and
the United States. Each package contains the project objects and security
Chapter 7. Publishing packages

235

appropriate for that package. You can create one master North America package
and include the packages Canada, Mexico, and the United States.
You can also reuse packages to create a consolidated package with connections
to multiple data sources.
v Selecting, hiding, or unselecting objects
When you create a package, you can choose whether objects in a project can be
selected based on the requirements of your users.
Option

Description

Select

The object can be used in reports and can be
selected by your users.

Hide

The data within the object cannot be used in
reports because it cannot be selected by your
users. Any existing reports referencing this
object will not run.
For example, you include a model query
subject in a package. Because model query
subjects are dependent on data source query
subjects “Query subjects” on page 75, you
must add the data source query subject to
your package. If you do not want your users
to see the data source query subject, hide it.

Unselect

The object is not published. It cannot be
used for reports and cannot be selected by
your users.

Note: IBM Cognos Framework Manager supports Ctrl+shift and Alt+shift
functionality. Use these keystrokes to select multiple objects that you wish to
include or hide. For example, if you wish to only include two items in a large
branch, select the entire branch, then use Ctrl+shift to deselect the items you
wish to include, and hide the remaining selected items.
v Including a model query subject in a package
If a model query subject references other query subjects in a macro or a prompt,
ensure that you include the referenced query subjects in the package.
This can occur in the following situations:
– A macro for the model query subject references query items in another query
subject.
– Another query subject is referenced in the Prompt Info properties.
After a package is published to the server, it is available to your users.

Creating a package
Procedure
1. Click the Packages folder, and from the Actions menu, click Create, Package.
2. In the Provide Name page, type the name for the package and, if you want, a
description and screen tip. Click Next.
3. Specify whether you are including objects from existing packages or from the
project and then specify which objects you want to include.

236

IBM Cognos Framework Manager Version 10.1.1: User Guide

4.

5.
6.
7.

8.

If you created other packages, we suggest that you add package references by
clicking Using existing packages.
Choose whether to use the default access permissions for the package:
v To accept the default access permissions, click Finish.
v To set the access permissions, click Next.
Specify who has access to the package, and click Next.
You can add users, groups, or roles.
Move the language to be included in the package to the Selected Languages
box, and click Next.
Move the sets of data source functions you want available in the package to the
Selected function sets box.
If the function set for your data source vendor is not available, make sure that
it was added to the project. For more information, see “Selecting function sets”
on page 293.
Click Finish and choose whether to publish the package.

Modifying a package
Procedure
1. Click the package that you want to modify.
2. Click Actions, Edit Definition.
3. Click the objects you want to add to or remove from the package.
Tip: To toggle through the options for an object, click the object icon, or select
an option from the list.
4. Click OK.
5. If you want to add or remove package references to the package you are
modifying, click Edit.

Security
In IBM Cognos Framework Manager, security is a way of restricting access to
metadata and data across IBM Cognos products.
There are different types of security in Framework Manager:
v Data security
You create a security filter and apply it to a specific query subject. The filter
controls the data that is shown to your users when they set up their reports.
v Object security
You secure an object directly by allowing users access to the object, denying
users access to the object, or keeping it hidden from all users.
v Package security
You apply security to a package and identify who has access to that package.
Each type of security uses users, groups, and roles to define access.
There are business reasons for restricting access to data. For example, you may
have confidential data that only specific users are allowed to see. You may have a
variety of data, and your users only need to retrieve data from specific tables or
columns. Or, you may have a table that contains many records, and your users
only need to retrieve a subset of records from that table.
Chapter 7. Publishing packages

237

If you are using SAP BW metadata, there can be underlying SAP BW security that
affects your users' access to level members. You cannot override SAP BW security
in Framework Manager. For more information, see “Import from an SAP BW data
source” on page 183.
Before you add security in Framework Manager, ensure that security was set up
correctly in IBM Cognos BI. For more information, see the Administration and
Security Guide.

Users, groups, and roles
Users and groups are created for authentication and authorization purposes. You
can create your own users and groups in IBM Cognos BI or use users and groups
created in other authentication providers.
For more information about security, users, groups, and roles, see the
Administration and Security Guide.

Users
A user entry is created and maintained in an authentication provider to uniquely
identify a human or a computer account. You cannot create users in IBM Cognos
BI.
Information about users, such as first and last names, passwords, IDs, locales, and
e-mail addresses, is stored in the providers.
Users can become members of groups defined in authentication providers and
groups defined in IBM Cognos BI. A user can belong to one or more groups. If
users are members of more than one group, their access permissions are merged.

Groups and roles
Examples of groups are Employees, Developers, or Sales Personnel. Members of
groups can be users and other groups. Group membership is part of the user's
basic identity. When users log on, they cannot select a group they want to use for a
session. They always log on with all the permissions associated with the groups to
which they belong.
A role is a special group. It represents a collection of users that have similar
responsibilities and similar privileges in the organization. Members of roles can be
users, groups, and other roles. Role membership is not part of the user's basic
identity.
You can use groups created by your organization in authentication providers, or
create new groups in the Cognos namespace.
Create IBM Cognos groups when:
v You cannot create groups in your authentication provider.
v Groups are required that span multiple namespaces.
v Portable groups are required that can be deployed.
v You want to address specific needs of IBM Cognos administration.
v You want to avoid cluttering your organization security systems with
information used only in IBM Cognos BI software.

238

IBM Cognos Framework Manager Version 10.1.1: User Guide

Adding data security
You can restrict the data represented by query subjects in a project by creating a
security filter. The security filter controls the data that is shown to your users
when they set up their reports.
For example, your Sales team consists of a Sales Director, and four Sales Managers.
You create a security filter that includes a group for the Sales Director and a group
for Sales Managers, and apply the filter to the Salary query subject. When the
package is available for your users, and a report is generated for the Sales
Managers and the Sales Director, only the Sales Director can see the salary
information for the Sales Managers. For more information about groups, see
“Users, groups, and roles” on page 238.
If a user has multiple roles, the security filters belonging to these roles are joined
together with ORs. If a role is based on another role, the security filters are joined
together with ANDs.
You can base the security filter on an existing security filter. If you choose this
option, the security filter inherits the filter and all the filter properties.
When you create a security filter, you can also use existing project filters, or create
new filters using the expression editor. For more information, see “Creating filters”
on page 144.

Procedure
1. Click the required query subject.
2. Click Actions, Specify Data Security.
3. To add new users, groups, or roles, do the following:
v Click Add Groups.
v In the Select Users and Groups window, add users, groups, or roles. For
information about how to do this, see the Administration and Security Guide.
v In the Select Users and Groups window, click OK.
4. If you want to base the group on an existing group, click a group in the Based
On column.
Tip: If you do not see the group you want in the list, you must add the group
to the security filter.
5. If you want to add a filter to a group, in the Filter column, click either
Create/Edit Embedded Filter or Insert from Model.

The CSVIdentityName macro function
If you want row-level security based on UserClass values stored in your data
source, implement a parameter map that maps the values in the data source to the
corresponding roles and groups based on the user you are logged on as.
You do this by using a parameter map as an argument with the CSVIdentityName
macro function. This macro function retrieves account, group, and role information
for the current user. It returns a string of comma-separated values from the
parameter map in single quotation marks, such as 'clerks', 'technicians', or 'typists'.
The CSVIdentityName macro function is used as a key in the specified map. You
can use the list that is returned to build partial In clauses or to filter data based on
the identity name of the current user.

Chapter 7. Publishing packages

239

For example, you have user classes whose names do not correspond to the
Roles_Groups parameter map:
Key (role or group)

Value (user classes)

Everyone

Group1

Authors

Group2

System Administrators

Group3

Query Users

Group2

NTLM

Group2

You have this query subject:
(Security_column, value 1, value 2, value 3)

When you add a filter to the query subject, the filter uses a macro to look up a list
of values, for example:
Security_column in (#CSVIdentityName(%Roles_Groups)#)

For users in the Everyone, Authors, and System Administrators roles, testing
shows this as:
Security_column in (’Group1’,’Group2’,’Group3’)

The CSVIdentityNameList macro function
If security data in the data source is identical to the roles and groups defined in
IBM Cognos BI, you can use the CSVIdentityNameList macro function. The macro
function optionally accepts a list separator as a parameter and then returns a
separator-delimited list that can be used in a filter with the In operator. You do not
need a parameter map.
Here is an example:
Security_column in (#CSVIdentityNameList()#)

For users in the Everyone, Authors, and System Administrators roles, testing
shows this as:
Security_column in (’Everyone’,’Authors’,’System
Administrators’)

Consider the following:
v Users can belong to several groups or roles.
v There is no way to distinguish between groups and roles so each group and role
must have a unique name.
v This function works only in a filter and always returns 0..n values.

Object security
Metadata security can be applied directly to objects in a project.
If you do not set object-based security, all objects in your project are visible to
everyone who has access to the package. Users, groups, or roles that do not have
allow or deny settings for an object are considered to be undefined. The object then
inherits the security that was defined for its parent object. When you explicitly
allow or deny access to an object, you override the inherited settings. The parent
and child objects then have different settings. When you apply security to a parent
object, all its child objects in the model will also have security applied to them.

240

IBM Cognos Framework Manager Version 10.1.1: User Guide

After you set security for one object, you must set it for all objects. You can do this
by setting security on the root namespace.
You may want an object to be visible to only selected users, groups, or roles. For
example, in your project, you may have a Salary query subject. You can make the
Salary query subject visible to the Managers group, and keep it hidden from
everyone else.
If a user is a member of multiple user groups and an object is visible to one user
group and denied to the other, the user will not have access to the object. For
example, Jane belongs to two user groups: Sales and Marketing. The Sales group
has access to the Products and Sales query subjects, and is denied access to the
Sales Forecast query subject. The Marketing group has access to Products, Sales,
and Sales Forecast query subjects. Jane does not have access to Sales Forecast.
When you secure an object, a package is automatically created in IBM Cognos
Framework Manager. The package name consists of an underscore (_) and the
name of the secured object. These object-based packages are visible in the Explorer.
You can use this package to see which objects in the project are included, hidden,
or excluded from a specific user group.
Every time you include that object in a package, and publish it for your users, the
same security rules apply for that object. When you publish a package that
contains secured objects, the visible objects for users are the intersection of the
package definition and the object security settings. If object-based security is not
used, security applied to a package remains unchanged.

Scope of object security
The security you specify for an object is passed to shortcuts that reference the
secured object. If you have a shortcut to a secured object, only users with
permission to see the secured object are able to see the shortcut in the published
package.
If a model query subject, calculation, or filter references a secured object, the
object's security is not passed to the model query subject, calculation, or filter.
When you create a package containing the shortcut, the secured object does not
need to be included in the package.
For example, only sales managers are allowed to see the Sales Target query subject.
You create a shortcut to Sales Target. When you package the model, you include
the shortcut but not the Sales Target query subject. Sales managers are the only
ones able to see the shortcut in the published package.
If your model is segmented, object security is not inherited from the master model.
You must define object security on all model segments.

Adding object-based security
To implement object-based security, you add a specific user, group, or role to the
object. Only those users, groups, or roles can access the object.
The following tips may be helpful when adding object-based security:
v To see a list of the object-based packages, double-click the Packages folder. The
list displays in the Explorer tab. To see which objects are secured against that

Chapter 7. Publishing packages

241

specific object-based package, click the Packages folder, and from the Actions
menu, click Packages, Explore Packages “Exploring packages” on page 253.
v To determine if object-based security is set in the model, click the Packages
folder, and from the Actions menu, click Packages, Explore Packages. Click the
Roles Explorer tab. If object-based security was set, you see a package for the
Everyone role.
v To determine which objects are explicitly secured in the model, look at the object
icon in the Project Viewer. The top left corner of the icon is marked with an
overlay.
v To find all objects that were explicitly secured under a given object, select the
object and click Tools, Find All Secured Objects.

Procedure
1. Click the object you want to secure, and from the Actions menu, click Specify
Object Security.
Tip: You can select more than one object at a time.
2. Select the users, groups, or roles you want to change. Or, click Add to add new
users, groups, or roles.
For more information, see the Administration and Security Guide.
3. Specify security rights for each user, group, or role by doing one of the
following:
v To deny access to a user, group, or role, select the Deny check box next to
the name for the user, group, or role. Deny takes precedence over Allow.
v To grant access to a user, group, or role, select the Allow check box.
Tip: To allow everyone to see all objects unless specifically denied access, select
the Allow check box for the Everyone role.
4. Click OK.
A list of new and updated object-based packages displays.

Removing object-based security for an individual object
To remove object-based security for a particular user, group, or role, delete the
package for that user, group, or role from the Project Viewer.
To completely remove object-based security from the model, delete the package for
the Everyone role from the Project Viewer. You cannot deny the Everyone group
access to all objects.

Procedure
1. Click the required object.
2. Click Actions , Specify Object Security.
3. Remove security rights by clearing both the Allow and Deny check boxes for
all users, groups, or roles.
4. Click OK.
A list of packages that are affected by these changes displays.

Modifying package security
You can use IBM Cognos Connection to define or change metadata security after a
package has been published.

242

IBM Cognos Framework Manager Version 10.1.1: User Guide

Security settings modified through IBM Cognos Connection are added to the
portal's security definition of the package. The settings affect access but do not
change the package definition in IBM Cognos Framework Manager.
To define metadata security the first time you publish a package, see “Publishing
packages” on page 247.
You can organize your security by specifying which users, groups, and roles have
access to certain parts of the published model.
To add metadata security, do the following:
v Decide whether the objects can be selected, unselected, or hidden in the package.
v Decide which users will have administrative access to a package.
v Add users, groups, and roles to the package.
When you apply administrative access to a package, you give access to the user or
users who are responsible for
v republishing a package in Framework Manager to the IBM Cognos server
v ensuring that no reports are impacted when a Framework Manager package is
republished to the server

Procedure
1. Click the package that you want to edit, and from the Actions menu, click
Package, Edit Package Settings.
This invokes IBM Cognos Connection.
2. In IBM Cognos Connection, click the Permissions tab.
3. Create, add, or remove groups or roles as required. For information about how
to do this, see the IBM Cognos Connection User Guide.
4. After you finish modifying the security definition for the package, click OK to
return to Framework Manager.

Specifying languages
You can specify which languages are published with each package. You can create
several packages based on the same model, each using a different language.
For example, the package for the Mexican sales office includes Spanish and
English. The package for the Canadian sales office includes French and English.
You can also specify the languages for all packages at one time.
You must add languages to the project “Multilingual metadata” on page 118 before
you can specify the languages that your users require in packages.

Specifying languages for one package
Procedure
1. In the Project Viewer, click the package that you want to modify.
2. In the Properties tab, find the Language property, and click Click to edit.
3. Click a language (or Ctrl+click multiple languages) in the Available Project
Languages box, and use the arrow icon to move it to the Selected Languages
box.
Chapter 7. Publishing packages

243

Specifying languages for all packages
Procedure
1. In the Project Viewer, click the Packages folder.
2. From the Actions menu, click Packages , Specify Package Languages.
3. Select the check box for the language that you want for each package.

Setting suppression options
You can set suppression properties for the package published with IBM Cognos
Framework Manager. These properties determine whether IBM Cognos studio
users can choose multi-edge or single edge suppression. The properties also
determine the types of values that can be suppressed. Types of values that users
can choose to suppress depend on the studio.
When a package is created, the suppression properties are automatically set to
true. If you want to change the values on a published package, you must
re-publish the package.

Procedure
1. In the Project Viewer, click the package that you want to modify.
2. On the Properties tab, find the suppression property, and select one of the
following values.
v Allow Null Suppression - When true, this property makes suppression
available to IBM Cognos studio users. When false, suppression is not
available in the published package.
v Allow Multi-Edge Suppression -When true, users can select multi-edge or
single edge suppression options. When false, users will only have access to
single edge suppression. The Allow Null Suppression property must also be
true.
v

Allow Access to Suppression Options - When true, users can choose the
types of values that will be suppressed, such as zero or missing values. By
default, all the types of values are suppressed. The Allow Null Suppression
property must also be true.

Externalized query subjects and dimensions
When publishing a package, you have the option to externalize query subjects and
dimensions into formats that you can use in IBM Cognos Transformer or other
applications. Special considerations must be given when externalizing models
based on SAP BW metadata.
For more information, see “Working with SAP BW Data Using Externalized CSV
Files in Framework Manager” on page 572.
You first define how each object will be externalized by specifying a method to
use. When you publish the package, you specify that the query subjects and
dimensions are to be externalized.
If you specified a maximum number of rows to be retrieved in the Governors
dialog box, this setting is ignored.
You have several options for the externalization method.

244

IBM Cognos Framework Manager Version 10.1.1: User Guide

The Default method
Use the Default method to specify the objects in a package that you do not want to
be externalized. To improve performance, you may not want to externalize all
objects in a package.

The CSV method
Use the CSV method to generate a comma separated file that contains the results
of the query subject. In a CSV file, the first row represents the column names and
each of the following rows contains one record from the query result set. One file
is generated for each query subject or dimension that is set to be externalized.
With the CSV method, you can use locally processed functions to create a dataset
for use in Transformer. You can process Cognos SQL locally or on the data source,
and capture the result set in a file that can be used in IBM Cognos Transformer.
The generated file is restricted to 2 GB in size and contains data based on the
native encoding of the current operating system. For example, for Windows 2000,
this is specified by the default system locale in the Windows regional settings. For
Windows XP and 2003, this is specified by the language for non-Unicode
programs option in the Windows regional settings.
This option is intended for use only with Transformer. For any other purpose, use
the Tab method.
To externalize SAP BW query subjects, use the CSV method. For more information,
see “Working with SAP BW Data Using Externalized CSV Files in Framework
Manager” on page 572.

The Tab method
Use the Tab method to generate a tab delimited file that contains the results of the
query subject or dimension. The generated file can be used directly as a data
source. The generated file contains data based on Unicode using UTF-16 LE (Little
Endian) encoding with BOM (Byte Order Mark). One file is generated for each
query subject or dimension that is set to be externalized.
This method does not work with Transformer because Transformer does not
support Unicode. Use the CSV method to create files for Transformer.

The IQD method
Use the IQD method to generate a query definition file to be used in IBM Cognos
Transformer. One file with Native SQL is generated for each query subject or
dimension that is set to be externalized. The generated file contains data based on
the native encoding of the current operating system. For example, for Windows
2000, this is specified by the default system locale in the Windows regional
settings. For Windows XP and 2003, this is specified by the language for
non-Unicode programs option in the Windows regional settings.
The query subject must not require any local processing. It must be able to be run
entirely on the data server. Test the query subject by setting the query processing
for this data source to database only. An error message then displays if the query
subject requires local processing.

Chapter 7. Publishing packages

245

If you must use locally processed functions to create a dataset, use the CSV
method. With the CSV method, you can process Cognos SQL locally or on the data
source and capture the result set in a file that can be used in Transformer.
Stored procedure query subjects can be externalized for use in Transformer. The
stored procedures must not contain any parameters.
Note: Note that the IQD method will continue to be supported in this release but
will not be enhanced. For more information, see “Deprecated features in version
8.3” on page 8

The Externalize Auto Summary property
You can specify that the output be aggregated or grouped or both. By default, IBM
Cognos Framework Manager returns rows at the detail level without applying any
aggregation or grouping. This property is used when you want to have relational
data aggregated when it is externalized. Specify determinants for the query subject
before externalizing it.
Use the Externalize Auto Summary property to apply the setting of the Regular
Aggregate property to query items whose Usage property is set to fact.
If you want to have a specific order of items in the Group By clause, specify
determinants first, and then set the Externalize Auto Summary property.
You can use the Externalize Auto Summary property with all externalize methods.

Supported data types
Framework Manager supports strings, integers, and dates. It does not support time
dimensions. Use a date key on the fact query subject in Framework Manager, and
let Transformer generate the time dimension.

Shortcuts
If a shortcut is included in a package and it points to a query subject that has been
externalized, the shortcut will also be externalized. The name of the data file is the
name of the query subject to which the shortcut points. If more than one shortcut
points to the same query subject, then the query subject is externalized each time
the shortcut is encountered.

Query processing
Native SQL is used to generate an IQD, so the native SQL produced when
externalizing must run successfully.
Some queries cause more than one query to be issued, or local processing to be
performed to retrieve data, or both. To prevent this, ensure that the Query
Processing property for all data source objects in the model is set to Database
Only. For more information about query processing, see “Improving performance
by setting the query processing type” on page 291.

Process to externalize dimensions
Perform the following tasks to externalize dimensions:

246

IBM Cognos Framework Manager Version 10.1.1: User Guide

v Create a model query subject or a data source query subject that contains the
dimensions you want to externalize. For information, see“Query subjects” on
page 75.
v Add any filters that you require.
For information about filters for relational metadata, see “Creating filters” on
page 144. For information about filters for SAP BW metadata, see “Creating a
filter (SAP BW)” on page 223.
v In the Properties pane, set the Externalize Method property to the method you
want.
v Publish the package to externalize the dimensions you selected.

Publishing packages
In IBM Cognos Framework Manager, you can publish a package to any folder in
Content Manager so your users can access it.
You can also publish a package to a network location. A package on a network
location cannot be used by your users. Publishing to a network location is useful
for backing up a package. When you publish to a LAN location, be careful that
you do not over-write any existing files, particularly Framework Manager models
and the model that is currently open.
Objects that are excluded or hidden, but are necessary in a query path, are
included but marked as hidden in a published package.
The governor settings that take precedence are the ones that apply to the model
that is currently open (whether it is a parent model or a child model).
To avoid problems, troubleshoot the package before publishing it by using the
Verify the Package Before Publishing check box in the Publish wizard to ensure
that it is complete and does not contain errors.
When you publish a package, you can
v Set the number of model versions to retain on the server. For more information
about model versions, see “Updating reports to use the latest version of
packages” on page 251.
Tip: To see the number of model versions set for a package, select a package
and, in the Property pane, find the Max Versions property.
v Externalize query subjects and dimensions so that you can use them with
Transformer “Externalized query subjects and dimensions” on page 244.
v

Specify whether a package will use dynamic query mode.

For more information about dynamic query mode, see the Dynamic Query Guide.
Note: You can create packages directly in IBM Cognos Connection for IBM Cognos
PowerCubes and SAP BW cubes and queries. For more information, see the section
about packages in the Administration and Security Guide.

Procedure
1. Select the package that you want to publish.
2. From the Actions menu, click Package, Publish Packages.
3. Choose where to publish the package:

Chapter 7. Publishing packages

247

v To publish the package to the report server, click IBM Cognos Content
Store, open, and select an existing folder or create a new folder in the
Content Store.
v To publish the package to a network location, click Location on the
network. Ensure that you select a different location than the directory
where the project files are stored. In general, avoid saving to the same
location as a model as the model could be overwritten.
4. To enable model versioning when publishing to the IBM Cognos Content
Store, select the Enable model versioning check box, and type the number of
model versions of the package to retain.
Tip: To delete all but the most recently published version on the server, select
the Delete all previous model versions check box.
5. Click Next.
6. In the Add Security window, define security for the package (optional):
Goal

Actions

Create, add, or remove a user, group, or
role.

On the User Access tab, click Add.
In the Select Users and Groups window,
define user security. For information about
how to use the Select Users and Groups
window, see the Administration and Security
Guide. Users, groups, or roles defined in the
user Access Tab have Read, Write, Execute,
and Traverse permissions.

Grant administrative access to a user, group,
On the Administrator Access tab, click Add.
or role.
In the Select Users and Groups window,
define administrator security. For
information about how to use the Select
Users and Groups window, see the
Administration and Security Guide. Users,
groups, or roles defined in the Administrator
Access Tab have Read, Write, Set Policy, and
Traverse permissions.

7.
8.
9.

10.

248

Note: The Add Security window in the Publish Wizard is only available the
first time you publish a package. If you re-publish the package to the same
location, you cannot override the existing security. To change security for
published packages, see “Modifying package security” on page 242.
Click Next.
If you want to externalize query subjects, select the Generate the files for
externalized query subjects check box.
By default, the package is verified before it is published. If you do not want to
verify your model prior to publishing, clear the Verify the package before
publishing check box.
If the package contains data sources supported by dynamic query mode, you
have the option to enable dynamic query mode for the package. Select the
Use Dynamic Query Mode check box. You will be asked to confirm this
selection when you click Publish. This step applies when the Query Mode
property of the project is set to Compatible.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Note: If a package containing both supported and unsupported data sources is
published with dynamic query mode, users will get an error when opening
the package in the Studios.
For information on data sources supported by dynamic query mode, see the
IBM Cognos Administration and Security Guide.
11. Click Publish.
If you chose to externalize query subjects, Framework Manager lists which
files were created.
12. Click Finish.

Publishing packages based on OLAP data sources
You can use IBM Cognos Framework Manager to connect to an OLAP data source
and create a package based on a cube. You can then publish the package directly to
IBM Cognos Connection, making it available for use in the IBM Cognos studios.
By default, each package contains a connection to only one cube. If you want to
create a package containing multiple cubes, run the metadata wizard and create a
package for each cube. Then create a package that includes individual packages as
required.
Before creating a package containing multiple cubes, consider the potential
performance impacts. In IBM Cognos Connection, each time a package is used, a
connection is made to each of the data sources defined in the package. Creating
large packages with multiple cubes can have a negative impact on performance. To
offset the potential performance impact of creating one large package containing
many cubes, create one package per cube and then create smaller combinations of
packages as required.
By default, packages based on an OLAP data source do not contain vendor
function lists. If you want to include the vendor function list, specify the function
sets to include and then republish the package.
Note: To publish a package that contains a single cube, use IBM Cognos
Connection. For information on publishing a package from IBM Cognos
Connection, see the Administration and Security Guide.

Steps to create and publish a package
Procedure
1. In the Welcome page, click Create a new project.
Tip: If you are already in Framework Manager, click File, New Project.
2. In the New Project page, specify a name and location for the project, and click
OK.
You may be prompted to provide authentication information.
3. In the Select Language page, click the design language for the project.
The language that you select cannot be changed after you click OK, but you
can add other languages. For more information, see “Adding a language to a
project” on page 122.
4. In the Metadata Wizard dialog box, click Data source, Next.
5. Select your data source from the list of available data source connections, and
click Next.

Chapter 7. Publishing packages

249

If the data source connection is not available in the list, you can click New to
create the data source connection. For more information, see “Creating data
source connections” on page 44.
6. Specify a name for the package, and click Next.
Optionally, you can specify a description and screen tip for the package.
7. Specify who has access to the package.
You can add users, groups, or roles. For more information, see “Users, groups,
and roles” on page 238.
8. Click Finish to import the metadata and create the package.
9. When prompted, click Yes to publish the package, or click No to return to the
Project Viewer.

Results
The namespace displays in the Project Viewer. You cannot see objects in the native
metadata model from within Framework Manager. The native metadata objects are
visible from within the IBM Cognos studios when the native metadata package is
used.

Steps to add another package
Procedure
1. In the Project Viewer, right-click the model that you want to use, and click
Run Metadata Wizard.
2. In the Metadata Wizard dialog box, click Data Sources, Next.
3. Select your data source from the list of available data source connections, and
click Next.
If the data source connection is not available in the list, you can click New to
create the data source connection. For more information, see “Creating data
source connections” on page 44.
4. Specify a name for the package, and click Next.
Optionally, you can specify a description and screen tip for the package.
5. Specify access permissions for the package.
You can add users, groups, or roles to the package. For more information, see
“Users, groups, and roles” on page 238.
6. Click Finish to import the metadata and create the package.
7. When prompted, click Yes to publish the package, or click No to return to the
Project Viewer.

Results
The namespace displays in the Project Viewer. You cannot see objects in the native
metadata model from within Framework Manager. The native metadata objects are
visible from within the IBM Cognos studios when the native metadata package is
used.

Publishing packages by running scripts
IBM Cognos reports are dependent on the objects in the package on which the
report is based. If your report uses objects that no longer exist in the package, the
reports will not run. You can have this problem if you make changes to the
physical data source, and then use a script to generate the model and republish the

250

IBM Cognos Framework Manager Version 10.1.1: User Guide

package. After the script is run and the package is published, analyzing the impact
of publishing the package does not identify the broken reports.
To avoid this problem when using scripts to publish packages, perform your
publishing tasks in the specified order.

Procedure
1. Run the script excluding any steps that publish the package.
2. Verify the model or analyze the impact of publishing the package.
3. Publish the package.

Updating reports to use the latest version of packages
When you publish a package for the first time, you create a corresponding package
on the IBM Cognos server. The package contains a model, but no reports.
When you publish a package, you can select the number of versions of the model
to keep on the server. The next time you publish the package, the version of the
model is updated in the existing package on the server.
New or modified reports use the latest version of the model in the package. When
a report is saved, the version of the model used is saved in the report specification.
If the package is republished, the report author is notified that the report uses the
newest version of the model in the package. The report author must save the
report to complete the update. If you open a saved report after the package it is
based on is republished, one of two things happens:
v If the original version of the package still exists, the report runs against the
original version. If you want the report to run against the latest version of the
package, you must update the report to use the latest version of the package.
See the steps below.
v If the original version of the package no longer exists, the report is updated to
run against the most recent version.

Procedure
Do one of the following:
v Move one report to the latest version of the model by editing and saving the
report.
v Before republishing the model, move all reports to the latest version of the
model by selecting the Delete all previous model versions check box in the
Publish wizard.
v Before republishing the model, disable model versioning by setting the model
version limit to 1.

Chapter 7. Publishing packages

251

252

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 8. Project management
During the lifetime of a project, data may change and new requirements may
display that require you to update models and data sources.
After publishing your project, you can do the following to manage the content:
v Understand what metadata is in your model.
v Implement multiuser modeling.
v Administer the metadata.
v Synchronize projects.
v Control and optimize query behavior.

Metadata in your model
Before making changes to a published model, you can better understand the
metadata by doing the following:
v Exploring your projects to see packages and roles in a project.
v Viewing the objects in your packages to see where specific objects exist.
v Creating documentation about your model to satisfy the specific requirements of
your company.

Exploring packages
When you have a large number of projects and object-based security in a project, it
can be difficult to keep everything organized. You can explore packages to see the
packages and roles in a project.
On the Package Contents tab, you see a list of all the packages (normal and
object-based) in a project, as well as the objects that were selected, unselected, or
hidden for each package.
On the Object Security tab, you see a list of all the users, groups, and roles in a
project, and in which package the object-based security is applied. You can also see
whether the objects in the project are hidden or visible to that specific user, group,
or role.

Procedure
1. Select the Packages folder.
2. From the Actions menu, click Package, Explore Packages.
3. Choose what you want to do.
Goal

Action

View the contents of a package

Click the Package Contents tab.

Edit the package

Click the Package Contents tab, select the
package and click Edit.
For more information, see “Creating or
modifying packages” on page 235.

View the security for each package

© Copyright IBM Corp. 2005, 2011

Click the Object Security tab and select a
package.

253

4. Click Close.

Viewing the distribution of objects in packages
When you view the package inclusion of an object, you see, by package, where
that object exists and whether it is selected, unselected, or hidden in that package.
If the object is secured, you will also see the object-based package in which the
object exists.

Procedure
1. Click the object that you want to see, and click Actions, Edit Package
Inclusion.
2. To edit the package, click Edit Package.
For more information, see “Creating or modifying packages” on page 235.
3. Click OK.

Creating model documentation
After you model the metadata, you can create an HTML or XML representation of
the model that can be customized and printed. This is useful for debugging your
model or if your company requires this type of documentation to satisfy process
requirements.
When you create model documentation, you can document the entire model or
you can select a subset of the model. To document the entire model, you click the
top-level namespace. The model documentation shows the selected object and all
the properties and children of that object.
You can view, save, or print the report in XML or HTML format. By default, the
XML format within IBM Cognos Framework Manager is always raw XML. To
customize the XML report output in your browser, you can provide your own
XSLT transformation.
To customize the HTML output, you can use your own XSLT by specifying the
path and XSL file in the ModelDocXSL section of the fm.ini file, located in the
install_location/configuration directory. Framework Manager will use the specified
XSL file when showing the HTML version of the Model Report.

Procedure
1. Click the object that you want to document.
Tip: Click the top-level namespace to document the entire model.
2. Click Tools, Model Report.
The model report displays.
You can save, print, or change the format of the report.

Multiuser modeling
You can implement multiuser modeling in IBM Cognos Framework Manager by
branching and merging or by segmenting and linking.
v Branching and merging

254

IBM Cognos Framework Manager Version 10.1.1: User Guide

If you use branching and merging to manage a multiuser project, each user can
modify the same objects in a project at the same time. Each user has a copy of
the entire project and can work on any part of it. When the branches are merged
back into the root project, all conflicts between the root project and the branches
are resolved. For more information, see “Branching and merging projects.”
v Segmenting and linking
If you use segmenting and linking to manage a multiuser project, each user can
look at the same parts of a project at the same time. However, you must ensure
that each user modifies discrete parts of the project. Use links to allow different
users to refer to a project at the same time as another user is working on it. For
more information, see “Segmented and linked projects” on page 260.

Branching and merging projects
Branching and merging enables multiple users to work on the same model at the
same time. To do this, the project owner creates a branch of the root project, which
is a copy of the project. A team member can modify the branch as required,
independently of the root project. Branches can be merged back into the root
project as required. Conflicts between the root project and a branch are resolved
during the merge process.
There is no limit to the number of branches you can create. You can create a
branch from a branch.

Branching and merging
Use the following guidelines when branching a project:
v Decide how you want to share the metadata in your organization. For more
information, see “Methodologies for branching” on page 256.
v Divide the project into logical pieces and branch the project to create the logical
pieces. For more information, see “Ways to branch a project” on page 258.
v Communication between team members that are working on various branches is
very important. Before making a major change to your branch, talk to the other
team members to see how the change will impact their branches. For example,
adding objects to a branch will probably not impact other team members but
deleting an object that other team members are using in their branches will
create a conflict when you merge your branch back into the root project.
v Merge the branches in the reverse order that you created them in. For example,
Sean creates a branch from the root project. Susan creates a branch from Sean's
branch. When it is time to merge the branches back into the root project, Susan
first merges her branch back into Sean's branch and then Sean merges his branch
back into the root project.
v Merge branches back into the root project often, after making a few changes to
your branch, rather than making many changes and merging only occasionally.
This makes it easier to resolve conflicts during the merge process. You can
merge all branches back to the root project and then branch the project again.
Each team member receives an updated version of the model.
v In a branched project, any archived transactions will not be available when you
merge back into the main project. For more information, see “Viewing and
saving a transaction history” on page 275

Chapter 8. Project management

255

Methodologies for branching
Before you branch a project, you must decide how you want to share the metadata
in your project. This section describes some common methodologies for sharing
metadata.

Hub and spoke
In hub and spoke, a project uses common metadata that must be shared by all
functional areas. The root project consists of a fully modeled physical layer
containing the objects that all functional areas require. The root project is branched
for each functional area. Each functional area can create its own branches if there
are multiple people working on it. At any time, a functional area modeler can
merge a branch back into the root project to update the root project, and then
branch again to receive updates. Objects that are common to all functional areas
are kept in the root project.

Functional area specific metadata
In functional area specific metadata, there is little or no common metadata in the
project. Each functional area develops their own objects in the project
independently. Each functional area is unaware of the objects in the other
functional areas. The master modeler controls merging of the branches to prevent
each functional area from seeing objects in the other functional areas.

256

IBM Cognos Framework Manager Version 10.1.1: User Guide

Distribution by layers
In distribution by layers, the metadata is organized in layers. Each layer requires
access to the metadata of the layer above it. For example, a model contains three
layers. The top layer is the root project, consisting of a fully modeled physical
layer. The root project is branched to create the second layer, the intermediate
branch. The intermediate branch contains a fully modeled development layer. The
intermediate branch is branched to create the third layer, the presentation branch.
The presentation branch contains a fully modeled business layer where reporting
packages are defined and published.

Chapter 8. Project management

257

Ways to branch a project
Here are some ways to divide a project:
v By task and skill set
Create separate branches for one person to work on star schemas and packages,
one person to work on calculations and filters, one person to work on
dimensions, and one person to work on queries and object naming.
v By model layers
Create separate branches for the import layer, the intermediate layer, and the
presentation layer.
v By business unit or functional area
Create separate branches for sales and retailers.
v By type of data source
Create separate branches for relational, dimensional, and ERP data sources.

Creating branches
You can create a branch in a project.
he log file associated with the new branch will be empty. When you create a
branch for a read-only project, the resulting branch is writable.

Procedure
1. Open the project from which you want to branch.
2. Click Project, Branch to.
3. In Project name box, type a name for the project.
4. In the Location box, type the path to the folder where you want to store the
branched version.

Merging projects
You can merge a branch back into its root project.
To merge a branch back into the root project, IBM Cognos Framework Manager
shows a list of transactions that have been performed on the branch. Beside each
transaction is a check box. For each transaction that has its check box selected,
Framework Manager attempts to perform the transaction on the project with which
you are merging. If a transaction is completed successfully, it is marked with a
check mark and the next transaction is attempted. If a transaction fails, it is
marked with an "X" and processing stops.
When a transaction fails, you may be able to correct the problem immediately. For
example, if an object is missing, Framework Manager identifies the missing object
and prompts you to replace it with another object.
When you reach the end of the transaction list, you can accept or cancel the
changes. If you accept the changes, the transactions that were successful are
removed from the transaction list. If you do not accept the changes, the transaction
list is not updated and you can perform the same merge again at a later time.
Some conflicts cannot be resolved during the merge process or there may be more
than one transaction related to a failed transaction. In these situations, you can
skip the transactions by selecting the Uncheck dependent transactions check box.
Framework Manager then clears the check box for each transaction related to the
failed transaction. When Framework Manager resumes running the transaction list,
it does not run the transactions if their check boxes are cleared. When you reach

258

IBM Cognos Framework Manager Version 10.1.1: User Guide

the end of the transaction list, you can accept the changes to that point,
troubleshoot the transactions that were skipped, fix the error, and then perform the
merge again. When you perform the merge again, the transaction list contains only
the transactions that were not performed.
Note: Before the transaction list is run, Framework Manager makes a backup of
the merging project. The backup is stored in the same directory as the merging
project.

Procedure
1. Open the project into which you want to merge a branch.
2. Click Project, Merge from.
3. In the Select Project to Merge From dialog box, click Files of Type, All
Files (*.*).
4. Locate the log.xml file for the branch to be merged, and click Open.
The Perform the Merge window opens, showing a list of transactions. The
transactions that you selected are run.
Framework Manager requires only the log.xml and the IdLog.xml files, not the
entire set of project files to populate the transaction history list. If you do open
the .cpf file directly when prompted, Framework Manager locates and opens
the log.xml file. The advantage of directly opening the log.xml file is to reduce
the number of large files that may need to be distributed in a multiuser
environment.
5. Choose how to run the transactions:
v To run the entire transaction list continuously from start to finish, click Run.
v To run one transaction and then pause, click Step.
When a transaction is completed, a check mark or an "X" displays beside it. A
check mark indicates that the transaction was applied successfully to the model
you are merging into. An "X" means that the transaction failed. Detailed
information for each transaction is listed under Transaction Details. If a
transaction fails, the merge process pauses.
6. Choose one of the following:
Goal
Fix a failed transaction

Action
See “Fixing failed transactions” on page 260.

Skip the current transaction and run the one Click Skip.
after it
Run the current transaction and pause

Click Step.

Run the transaction list from the current
transaction to the end

Click Continue.

Accept transactions run to this point and
return to the project page

Click Accept.

Cancel all transactions run to this point and
return to the project page

Click Revert.

7. Perform the previous step until you reach the end of the transaction list or you
have accepted or reverted the changes.
If you accepted the changes, they display in the Project Viewer. If you reverted
the changes, none of the changes display.

Chapter 8. Project management

259

8. If you accepted the changes, save the merged project in the project page. If you
decide not to save the changes, close the project without saving it.
Note: If you accept the changes in the Perform the Merge window but do not
save the project you can never perform the same merge again. After you accept
transactions they are removed from the transaction list.
Fixing failed transactions:
During the merge process, transactions may fail. You can fix most transactions by
substituting one object for another. You can fix all transactions by modifying the
project.
Case 1
An object used in the branch project is not in the root project. In the Merge dialog
box, you see the Replace box indicating the name of the object that is missing from
the root project.
To resolve this problem, you can select an alternative object from the root project in
the following way:
v From the Project Viewer or Diagram, select the name of the object to use in
place of the missing object.
In the Merge dialog box, the object displays in the Replacement Field.
v Click Replace.
The transaction runs again, substituting your replacement object for the missing
object.
For more complex problems, you may be prompted to select the object that cannot
be found in the root project from the Object Naming Conflict Resolution dialog
box. If a warning displays, you are unable to resolve the problem using this dialog
box. Instead, you can modify the root project or skip the transaction.
Case 2
For all failed transactions, you can resolve the problem by modifying the root
project. First, modify the model as required, and then, from the Perform the Merge
dialog box, click Continue to run the entire transaction list starting from the failed
transaction.
Case 3
You are unable to fix the transaction. To resolve this problem, do the following:
v Click Skip to skip the next transaction.
v Clear the check box for the failed transaction.
v Ensure the Uncheck dependent transactions check box is selected.
v From the Perform the Merge dialog box, click Continue.

Segmented and linked projects
You can use IBM Cognos Framework Manager to create and link segments,
projects, and folders. A segment is a project within a main project. A segment is
owned by its main project. A link is a shortcut to an existing project. The project
that is linked can be shared by multiple projects.

260

IBM Cognos Framework Manager Version 10.1.1: User Guide

A project segment is a complete project and changes to that project impact all
projects to which it is linked. If you want to open a segment as a separate project,
it must be structured as a complete project. There must be a physical layer in each
segment that contains a subset of the data source query subjects on which they are
based. These data source query subjects provide access to the data and metadata
and must be included in the appropriate segments.
Do not change the physical layer in a segment. Any change will be reflected in the
linked parent model and will impact all model segments that share data source
query subjects. Changes may not be apparent outside the model in which they are
made until the model is closed and reopened.
Before a project is segmented, ensure that the folder and namespace are named
correctly. You cannot rename the folder or namespace after it has been segmented.
Changes made in the root model, such as upgrading and setting object security, are
not inherited by the segmented model. You have to apply the changes to each
segment of the model.
The governor settings that take precedence are the ones that apply to the model
that is currently open (whether it is a parent model or a child model).
The main project has access to the entire model, including the segments. You can
make changes to the segments when working in the main project, however, if the
segment is being accessed by more than one user, the potential exists for updates
to be lost.
Note: When changing the project structure, do not open the segments as
individual projects. Instead, check the main project and make changes from within
it.
You can link the segments to other projects that contain related information to
maintain consistency and reuse information. If you plan to link model segments,
follow the steps for segmenting projects. As a general practice, link to relatively
complete segments and regularly verify your model.

Segmenting projects
Understanding project segmentation is critical to ensure stability and minimize
complexity in a multiuser modeling environment. If you intend to segment your
project, do the following:
v Model the physical layer as completely as possible by:
– Ensuring that the namespace in the main project and any links in the project
to folders have the same identifier. See “Importing objects with the same
name” on page 64.
For example, you have a main project and a link in the project to a folder. The
folder you link to must exist in a namespace that has the same name as the
main project. If the identifier in the main project and that of the linked folder
are not the same, any relationships, shortcuts, or expressions that reference
objects in the link, from the main project, may not work.
– Ensuring all objects in a project have unique identifiers
For example, you have a main project that contains a query subject named
NewQS, and a segment in the project. You open the segment, add a new

Chapter 8. Project management

261

query subject named NewQS, and save the segment. When you open the
main project, an error occurs because a query subject named NewQS already
exists in the main project.

v

v

v
v

– Updating references in both the main project and segments in the project
For example, you have a main project and a segment in the project. In the
main project, you have a relationship named qs1_qs2 that exists between
query subject1 and query subject2. The query subject named query subject 2
is in the segment. You open the segment, rename query subject2 to query
subject3, and save the segment. When you open the main project, an error
occurs because the relationship qs1_qs2 is broken. In Framework Manager,
any object that relies on a reference, such as shortcuts, model query subjects,
and expressions are also affected.
– Ensuring that the main project and any segments in the project have the same
languages
For example, you have a main project and a segment in the project. In the
segment, you defined the languages English and French. You open the main
project, add the language Chinese, and save the segment. When you open the
segment, an error occurs because the language Chinese is not defined in the
segment.
Organize the physical layer using namespaces.
You should create a namespace for query subjects, calculations, and filters that
you expect to be necessary for more than one segment.
You should create a namespace for each collection of query subjects that is
unique to a planned model segment.
Accept the default project name when creating the segmented project.
The segmented project must be created in a sub-folder within the master project
folder. The default project name is the same as the folder or namespace that
contains it.
Segment the model for each namespace you created.
Use a source control repository when possible to restrict access and track
changes to your projects and segments.

Limitations of segmenting and linking projects
The following limitations apply to segmenting and linking projects:
v You cannot test objects in a segment or linked project if they refer to objects that
exist in an unavailable segment.
v You cannot create new objects in a segment or linked project if they refer to
objects that exist in an unavailable segment.
v When you link to a project, all referenced objects (namespace objects, data
sources, and parameter maps) are linked. Packages are not linked.
v Changes that you make to a child segment are not reflected in the main project,
even after doing a refresh (F5). This happens because another child segment
linked to the parent or the main project itself is open. Close all child segment
projects and then reopen the main project.
v The point at which you create a segment in a project determines the point at
which you can see the segment. If you create a nested segment from the main
project, you can see the nested segment from the main project. If you open the
segment containing the nested segment as a standalone project, you cannot see
the nested segment. If you create a nested segment from a segment opened as a
standalone project, you can see the nested segment from the standalone project.
If you open the main project, you cannot see the nested segment created from
the standalone segmented project.

262

IBM Cognos Framework Manager Version 10.1.1: User Guide

Creating segments
With segments, you can organize a project according to business rules and
organizational requirements, and share and reuse project information.
You create segments at the folder level or the namespace level. You can create a
new project in a new folder, complete with its own associated project files.
When a new segment is created, existing parameter maps from the main project
are copied to the new segment. After the segment is created, parameter maps are
unique to each segment and cannot be shared between segments. For example, if
you are working in the main project, you can use a parameter map in a query
subject belonging to a segment. However, if you open the segment, the parameter
map is not available.
You can access a segment only from the project in which it was created. For
example, you open the main project and create a segment (Segment A). Then you
create another segment (Segment B) inside Segment A. From the main project, you
can see Segment A and Segment B. However, if you open Segment A by itself, you
do not see Segment B.
Before you create segments, consider dividing your project into business units. For
example, you have a project named Sales. You can create two folders, one named
Products and the other named Orders. You can divide the Sales project at the
Products folder and at the Orders folder.

Procedure
1. Click the folder or namespace that you want to divide.
2. Click Project, Create Segment.
You can accept the default settings for the project name.
3. To rename the segment, in the Project Name box, type a different name.
This does not change the folder name. If you want to rename the folder, you
should rename it in Project Viewer before creating the segment.
For ease of use, keep the same name for both the folder and the segment.
4. Click OK.
The Project Viewer is refreshed and the icons representing the segmented
folder or the segmented namespace are shown.

Creating links
You create links to help organize work across large projects, to maintain
consistency, and to reuse information.
For example, the project named Inventory contains the folder named Products. You
can create a link from the Sales Products to Inventory Products. If any changes or
additions are made to the Inventory Products folder, you will see them in the Sales
Products folder.
If you plan to link model segments, ensure that you follow the steps for model
segmentation. For more information, see “Segmenting projects” on page 261.
A linked project is shared by other projects. It should not be created in a
sub-directory within the master project directory.

Chapter 8. Project management

263

Before you begin
You must create the project, folder, or namespace before you can link to it.
The projects you link must have and the same design language the same languages
defined.

Procedure
1. In the Project Viewer, click the project, segment, namespace, or folder that you
want to link to.
Tip: You can create links only to folders, namespaces, projects, or segments.
2. Click Project, Link Segment.
3. Locate and click the .cpf file of the project that contains the object that you
want to link to.
4. Click Open.
v If the project you selected requires upgrading, you are prompted. For more
information, see Chapter 11, “Upgrading models,” on page 351.
v If the project uses a mapped drive letter, you are prompted to keep the
mapped drive letter or to change it to a UNC path.
You must choose the UNC path if your project will be shared by others.
5. Choose the project, segment, namespace, or folder to link to:
v To link to another project, click Add Project, locate the .cpf file and click
Open. Select the project and click Add.
v To link to a segment, click the segment and click Add.
6. Click OK.
A new folder displays in the Project Viewer.

Leveraging read-only projects
You can make a read-only project available for other developers to leverage while
protecting the project from unwanted changes.
You can make a project read-only by changing the file properties. The user
interface changes when a project is read-only. Greyed-out names, properties or
actions indicate that no modifications can be made.

Procedure
1. Create a share that will host the project that is to be protected.
2. Give read-only access to that share for any developer leveraging the project.

External repository control
You can use IBM Cognos Framework Manager with an external source control
system. This procedure explains how to put the Framework Manager project files
into an external repository. You can work on the project in Framework Manager
and the external repository can manage the version control of the project files.
To use an external source control system, do the following:
v Ensure that the project is closed.
v Delete the repository.xml file, if it exists.
v Add all the files that exist in the project directory to the external repository.
The project directory is the directory that contains the project name.cpf file.
v Check the project files out of the external repository.

264

IBM Cognos Framework Manager Version 10.1.1: User Guide

v Work on the project in Framework Manager.
v Save your changes.
v Check the project files into the external repository.

Segmenting projects
You can create a segment for a project that is stored in an external repository. The
segments are project directories that are stored under the main project directory.
Maintain the same hierarchy in the repository as in the project directory.
The segments can be opened individually as stand-alone projects.
A segment can also be opened as part of the main project. In this situation, you
must check out the project for each segment that you want to modify.

Metadata administration
You can change the metadata in your models to meet your specific modeling goals.
You can do the following:
v Copy, move, rename, or delete your projects to organize them in meaningful
ways for your reporting environment.
v Analyze the changes made to a model to see how they affect the packages and
the reports that use the model.
v Remap an object to a new source.
v Export your model to exchange metadata between different data warehouse
tools and repositories.
v Reuse the same model and reports with different sets of data.
v Move a model from one relational database to another.

Copying, moving, renaming, or deleting projects
You should organize projects in a meaningful way so that you can easily find
them. Within IBM Cognos Framework Manager, you can copy, move, rename, and
delete projects.
You can manage your projects using segmenting and linking. These project
management features help organize a project according to business rules and
organizational needs, set run-time processing options, and give other users access
to sections of the project. For more information, see “Creating segments” on page
263 and “Creating links” on page 263.
You can also identify the vendor-specific functions that you want to use for each
data source you import into your project. For more information, see “Selecting
function sets” on page 293
If your project is segmented, the segments are treated as standalone projects. If you
save or copy a project within an existing project, it is treated as a segment.

Copying projects
When you copy a project, you create a replica of that project in another location.
All files in the project folder, including sub-folders, are copied to the new location.
When you make changes to the project in one folder, these changes are not
reflected in copies of the project in other folders.
Chapter 8. Project management

265

Copying a segmented model copies all segments as well as the main project.
There may be times when you cannot copy a project and must use Save As
instead. Saving the project with a new name creates a new project folder while
saving the project with the existing name overwrites the current project. This is
useful if you want to save changes made to a read-only project or if you want to
save a project with a different name or to a new location without overwriting the
original project.
You cannot create a copy of a project in the same folder as the original. If you copy
a project under an existing project folder, Framework Manager treats it like a
project segment. For more information, see “Segmented and linked projects” on
page 260.
If a project or segment is open when you copy it, the last saved version is copied.

Procedure
1. Click File, Manage Projects, Copy.
2. In the From box, click the browse button and select the .cpf file for the project
that you want to copy.
Note: The project folder name is shown in the text box.
3. In the To box, type the project name.
By default, the project name and the directory where the project is saved are
the same.
4. In the Location box, type the new location or click the browse button and select
the new project location.
5. Click OK.

Moving projects
You may decide to move a project if your folder becomes so full that it is difficult
to locate particular projects. When you move a project, you are actually copying it
to a new folder and deleting it from the current folder. All files in the project
folder, including sub-folders, are moved to the new location.
Moving a segmented model moves all segments as well as the main project.
Before you can move a project, the project must be closed in Framework Manager.

Procedure
1. Click File, Manage Projects, Move.
2. In the From box, click the browse button and select the .cpf file for the project
you want to move.
Note: The project folder name is shown in the text box.
3. In the To box, type the new location or click the browse button and select the
new project location.
4. Click OK.

Renaming projects
When you rename a project, you provide a new name for the .cpf file. You are not
changing the location of the project. Secondary project files and log files keep their
original name.

266

IBM Cognos Framework Manager Version 10.1.1: User Guide

If a project displays in the recent projects list on the Framework Manager Welcome
page and you proceed to rename it, you cannot open the project by clicking the
link. You must open the project using the Open command from the File menu.
Before you can rename a project, the project must be closed in Framework
Manager.

Procedure
1. Click File, Manage Projects, Rename.
2. In the From box, click the browse button and select the .cpf file for the project
you want to rename.
Note: The project folder name is shown in the text box.
3. In the To box, type the new name for the project and click OK.
If the original project folder and .cpf file have the same name, both the folder
and .cpf file are renamed.

Deleting projects
When you delete a project, the project folder and all its contents, including any
user files, are deleted from the file system and sent to the recycle bin.
If your project is segmented and you delete the main project, the segments are
deleted as well. Deleting a project segment deletes only the segment and not the
model it is based on.
As a general rule, delete segments from within the model. If you delete the
segment using Delete from the File menu, it displays as if the segment still exists
within the model. For more information, see “Segmented and linked projects” on
page 260.
Before you delete a project, ensure that the project and all its segments are closed.
Framework Manager does not support a file locking mechanism so it is possible
under certain circumstances to delete a project with open segments. If you delete a
project with open segments, the segments can no longer be saved.

Procedure
1. Click File, Manage, Projects, Delete.
2. In the Project Folder box, click the browse button and select the .cpf file for the
project you want to delete.
Note: The project folder name is shown in the text box.
3. Click OK.
The project folder and all its contents are deleted.

Analyzing the impact of changes to packages
Before publishing packages and running reports, you can see how the changes you
make to a model will affect the package and the reports that use it. You can find
the changes that were made to the package, and see details about each change and
which reports are affected by a specific selected change.
Reports that are created using the package may be impacted by changes that you
made to the model. For example, adding new objects to a package does not affect a
report. Changing the name of a query item does affect a report. The report
definition will not be valid because the query item is not in the package definition.

Chapter 8. Project management

267

If you use the durable model capability, you can avoid the impact that changing
query item names has on reports. For more information, see “Durable models” on
page 174.
Note: Because a report uses a published package, if you make changes to the
model, but do not publish the package that uses it, the report is not impacted by
the changes.
If you change the name of an object, it shows up as "modified" in the results of the
analysis.
The analysis is done on objects that a model uses directly, as well as the
underlying objects. For example, you have a model query subject that is based on a
data source query subject. If you change the model query subject, it will show up
as a modified object. If you change the data source query subject, it will also show
up as a modified object.
The following types of objects are analyzed: query subjects, query items, measures,
regular dimensions, measure dimensions, hierarchies, levels, stand-alone filters,
and stand-alone calculations.

Procedure
1. In the Project Viewer, click a package that has been published.
2. Click Actions,Package, Analyze Publish Impact.
3. Choose what you want to do:
Goal

Action

View report dependencies

See “Finding report dependencies.”

View the dependencies for an object

See “Showing object dependencies” on page
269.

See the details for an object

Click the row that contains the object.
The details for the object display under
Change Details for.

Find an object in the Project Viewer

In the row that contains the object, under
Actions, click Find in Project View.

Sort the results

Click Sort at the top of a column.

Display modeler's comments, last changed
by, and last date changed

Click the double down arrow.

4. Click Close.

Finding report dependencies
You can find the reports that use an object.

Procedure
1. From the Analyze Publish Impact dialog box, do one of the following:
v Select each object for which you want to determine the report dependencies
by selecting individual check boxes.
v Select all objects by selecting the check box at the top of the check box
column.
2. Click Find Report Dependencies.
3. Specify the scope of the search:

268

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Search all folders

Click All Folders.

Restrict the search to a specific folder

Click Restrict Search (Browse and select a
folder). Type the name of the folder or click
Browse to search for a folder.

4. Click Search.
A list of report names displays in the Report Dependency window under
Impacted Reports. The results show both direct and indirect dependencies. The
names of objects that indirectly impact reports are displayed in a lighter color.
5. To sort the results, click Sort at the top of a column.
6. Click Close.

Showing object dependencies
You can find objects that depend on other objects, or show the dependencies of a
child object.
You cannot show dependencies for parameter maps.

Procedure
1. In the Project Viewer, click an object.
2. Click Tools, Show Object Dependencies.
The objects that depend on the selected object display under Dependent
objects.
3. To show the object identifier for the dependent objects, select the Show Object
ID check box.
4. If the object has children and you want to see the dependencies for a child
object, click the plus sign (+) beside the object that contains the child object.
5. Click a child object under the parent object.
The objects that depend on the child object display under Dependent objects.
6. Optional: You can also show object dependencies in the following way:
v In the Project Viewer, right-click an object and select Show Object
Dependencies.
v In the Context Explorer window, right-click an object and select Show
Object Dependencies.
v In the Analyze Publish Impact window, click the Show Dependencies icon
under Actions in the row that contains the object.

Remapping objects to new sources
During the life cycle of an IBM Cognos Framework Manager model, you may need
to change the data source it uses. For example, you may want to use the model
against a different database with the same data, migrate the model from a
transactional schema to a star or snowflake schema, or replace a previously
existing database or import view with a new view. All of these actions can affect
your reports. For example, if you change the names of objects, reports may no
longer validate.
You can minimize the effect of model changes and data source changes by
remapping higher level model objects so that they continue to run and return
correct data. When you remap, you match and substitute object references or
names in an original object, to object references or names in another object. You
Chapter 8. Project management

269

can remap query items and measures. You can remap individual objects manually
or you can remap multiple objects at the same time. When remapping multiple
objects, Framework Manager matches items in the original object to items in the
other object using the matching criteria you specify. Only the objects that meet the
matching criteria are remapped. You can use the object name or the object
reference as the matching criteria for both the original and other objects.
When you change the matching criteria for remapping, you are specifying the
criteria that will be used to remap to subsequent objects.
If a model query subject or model dimension contains a filter or calculation, the
model filter or calculation is also remapped when you remap the model query
subject or model dimension. You do not see a message or warning about this.
Validate all affected reports whenever you make changes to your model. To
identify affected reports, see “Showing object dependencies” on page 269 and
“Finding report dependencies” on page 268
You cannot remap data source query subjects or data source dimensions.
Remapping is only supported when using the design locale of the model.

Procedure
1. In the Project Viewer, right-click an object and select Remap To New Source.
2. If you want to change the matching criteria, click Options and do the
following:
v Choose the matching criteria for the object you are using to remap, and for
the original object that you are remapping.
You can match objects by name or by object reference.
v The default criteria options are By Name for the object you are using to
remap, and By Object References for the original object that you are
remapping.
v Click OK.
v To use the criteria you specified, select the Use matching criteria options
check box.
If the matching criteria is By Name to By Name, spaces within the string are
removed.
If there is no object reference, the object name is used.
3. Do one or more of the following:
Goal

Action

Remap an individual object manually

Under Available Model Objects, drag an
object to the object that you want to remap
under Query Items, Measures, Calculations,
and Filters.
The new value for the object displays under
Remap To.

Remap multiple objects automatically

Under Available Model Objects, drag a
query subject to any row under Query
Items, Measures, Calculations, and Filters.
All of the objects that meet the matching
criteria are remapped and their values
display under Remap To.

270

IBM Cognos Framework Manager Version 10.1.1: User Guide

Goal

Action

Change the expression for an object

Click the ellipsis (...) button beside the
object. For information on how to create an
expression, see “Creating calculations” on
page 142.

Restore a remap value to the original source
value

Right-click the row that contains the object
that you want to restore, and select Restore
to Original Value.

Click the row that contains the object, and
Clear the remap value and the original value click Clear.
for the selected object
Clear the remap value for all objects

Click Clear All.

4. Click OK when you are finished remapping.

Exporting metadata
You can export your IBM Cognos Framework Manager model as a Common
Warehouse Metamodel (CWM) file. CWM exchanges metadata between different
data warehouse tools and repositories. Each instance of the CWM metamodel is
exchanged using XMI (.xml metadata interchange) documents.
When you export a Framework Manager model as a Common Warehouse
Metamodel (CWM) file, joins, folders, namespaces, prompts, and calculations are
not exported. Only query subjects, query items, and functions are exported.
When you export to CWM, use the default options, which optimize the metadata
export. Only change these options if you have specific information that affects your
export. For more information about export options, see the Meta Integration web
site.
Do not use Japanese characters in the export path.

Procedure
1. Right-click the root namespace of the metadata you want to export, and click
Export Model.
You are prompted to save the project.
2. Select the export target.
3. In the Framework Manager Specific Export Options dialog box, click the
options you want.
Note: As a general rule, use the default options. These options optimize the
metadata import. If you change the options, you may see unexpected results.
To revert to the default options, click Use Defaults.
4. Click Next.
5. In the Third Party Specific Export Options dialog box, use the File option to
identify the file to contain the exported metadata.
Click the other options you want.
In the Option Description pane, you see a description of the options available.
The options are based on the selected data source. For more information, see
the data source vendor documentation.
6. Click Next.
The input validation results from the export process display.
Chapter 8. Project management

271

7. Click Next, Finish.

Project reuse
You may have to use the same model and reports with different sets of actual data.
The data sets may be different databases, accounts, or schemas in a single
database.
You may encounter multiple data sets in the following situations:
v When you use a different data set than the one used in production.
v In large enterprises, where each division has it own data set.
v In OEM applications that have no direct control over customer data.
The tables and columns used by the project must be logically the same across all
data sets. You must also ensure that the correct data set is identified in each case.
Data sources in IBM Cognos Framework Manager contain information that
identifies the location of any data source tables needed for the query subjects. This
information is the name of the data source in the content store, as well as the
optional catalog and schema names. Ensure that the catalog and schema names use
the desired data set.
If different content stores are in use, and a different version of the project is
deployed to each content store, you can specify the data source information in the
project for each site. If you have only one content store, you can publish each
project as a separate package. These solutions require a lot of manual maintenance.
To reduce this level of maintenance, you can use one of the following options.

Determining the data source information
The simplest solution is to determine the name of the data source in the content
store, the name of the catalog, if applicable, and the name of the schema in the
database. You can then use these names in all the data sets.
If some data sets use the same content store, create a separate connection for each
data set in a single content store. For more information, see the IBM Cognos
Administration and Security Guide. For information about how Framework Manager
handles multiple connections, see “Multiple data source connections” on page 41.
Because the data source name in the content store can differ from the name of the
customer database, this solution offers a lot of flexibility. However, it still requires
that the catalog and schema names be identical across all data sets. Even if all the
data sets use the same database type, this may be difficult to ensure. If different
database types are involved, it may be impossible. For example, SQL Server has a
catalog level, but Oracle does not.

Using user-based default data set identification
Each database user has access to a default schema and catalog, if applicable. If the
schema and catalog are not defined, or if they are blank in the Framework
Manager project data source, the default is used. As in the previous solution, this
option may be combined with multiple connections so that different users can use
different databases for the same data source.
However, when you edit a query subject, IBM Cognos Framework Manager uses
the catalog and schema names in the data sources to match them to items that are

272

IBM Cognos Framework Manager Version 10.1.1: User Guide

dragged to the SQL windows from the data source tree. For this reason, the catalog
and schema names cannot be blank in the project data source while you are
modeling.
Therefore, you must use a macro expression in the catalog and schema of each
data source in the project. This ensures that the catalog or schema names are blank
at run time, but explicitly sets the catalog or schema you want while modeling.

Steps to explicitly set a catalog or schema
Procedure
1. Create a single session parameter whose value identifies whether you are in
design mode. When you are in design mode, set the value of this session
parameter to a specific value, such as design. Otherwise, leave the value empty.
Tip: If you use a project or override value, you must set it each time you open
the model for editing.
2. For each catalog and schema in each project data source, create a parameter
map that contains
v An empty default value.
v A key whose name is the design value of the session parameter above, and
whose value is the name of the design mode catalog or schema for that data
source.
3. Select the data source, and replace the catalog and schema property values with
a macro that uses the corresponding parameter map and session parameter.
For example, use
#$DBSchemaName ($DeployOrDesign) #

Model portability
You can use a IBM Cognos Framework Manager model to access data from
different database instances. The database instances can be from the same or
different vendors.
There are several things to consider when moving a Framework Manager model
from one relational database to another. Unlike changing from one identical
database to another on the same platform, it may not be sufficient to change the
data source connection information.
Review the generation of determinants and relationships based on indexes and do
not assume that the indexes reliably describe functional dependencies or
relationships for reporting.
Scalar functions are imported into a model prefixed by a catalog or schema
qualification in the SQL statement. As with tables and views, you may have to
remove or alter the location qualification when switching vendors. For example, if
you create a model against an ORACLE database, and the connection is changed to
point to an equivalent SQL Server database, an error results because the model
data source type has remained OR instead of changing to the appropriate data
source type.
To move a model from one relational database to another, do the following:
v Evaluate the DDL (Data Definition Language) to determine portability for
physical names by

Chapter 8. Project management

273

– Constraining physical names to a lowest common denominator, such as 31
characters.
– Avoiding using reserved key words in the ANSI standard and vendor
documentation.
– Avoiding using vendor specific data fields.
– Avoiding conversions.
– Confirming that precision and scale is supported across all vendors.
– Using consistent and compatible collations.
– Using a consistent case on names, such as all lowercase.
v Evaluate the DDL to determine portability for database qualification.
v Evaluate the DDL to determine portability for data types in terms of
compatibility and the precision and scale of data types.
v Review any native SQL statements in your models and reports for
relational-specific syntax that may or may not be supported.
v Review usage of vendor-specific functions.
There may not be an equivalent vendor function or common function. A
common function that is unsupported by the relational database may result in
local processing that did not previously occur.
v Review the data source properties type.
If you change the RDBMS you use, such as from Oracle to SQL server, change
the type property for the data source in Framework Manager.
v Update the data source queries.
When you import tables, Framework Manager imports physical information
about the tables and columns that is used internally at run time. For example,
collation information is reconciled only by rebuilding the physical tables.
v Test the moved model.
There will be other differences, such as performance characteristics, how data is
ordered based on collations, and so on, that are revealed only by testing.

Moving models to different environments by using log files
In IBM Cognos Framework Manager, you can view and play back actions
performed on the project or you can use Script Player to play back transactions in
batch mode. An action log is an XML file that contains a set of transactions. Each
transaction has a sequence number and one or more actions. Each action is made
up of a name and input parameters. Some actions also have output parameters.
The action log file is in the project folder.
For example, you make changes to a project in a test environment. When it is time
to move the project to production, you can use log files to play back every action,
or series of actions, that you performed in the test environment to create an
identical project in the production environment.
There are two action log files. The log.xml file contains all the transactions that
have been run and saved in the project. This file is created the first time you save
the project and exists until you delete the project. The temporary file contains
transactions that have been run during the current session, but not saved. The
temporary file is deleted when you close the project.
Note: If the script has dependencies on the existing project, you must ensure that
the project is aligned with the script transactions to ensure the desired results.

274

IBM Cognos Framework Manager Version 10.1.1: User Guide

A large log file may affect performance. You can archive entries in log files to
reduce their size.
Viewing and saving a transaction history:
You can view the transaction history in an action log file and then save it as a
script.
Procedure
1. Click Project, View Transaction History.
Tip: To make the dialog box larger, double-click the caption. Double-click again
to restore the dialog box to its original size.
2. Click the transaction numbers that you want.
Tip: To view the details of a transaction, click the plus sign (+) next to a
transaction number.
3. Click Save as Script.
4. Type a name for the file.
5. Click Save. Do not save the file in the logs folder.
6. Click Close.
Play back transactions from a log file:
You can choose to play back a specific transaction or a combination of transactions
in a project or segment action log file.
When you play back transactions from a log file, the script player applies the
commands in the log file to the contents of the existing model. Errors display if
objects created by the log file already exist in the model.
After the script in a log file has run successfully, a backup of the original project is
created in the parent directory of the project. If you want to undo the transactions
performed in the script, you can use the backup to restore the project to its original
state.
You must disable or clear any commands that will conflict with the contents of the
model. You can then run the script again. Or, you can use the Synchronize
command, which begins with an empty model.
If you generate your own script outside Framework Manager, time stamps must be
in ascending order with no duplicates.
Procedure
1. Click Project, Run Script.
2. Select the script you want, and click Open.
3. If you want to view the details of a transaction, click the transaction.
4. Set the starting or stop point that you want.
v To set the starting point for running the script, select the script and then click
Set the starting point. You can do this at any time to skip an instruction or
.
run instructions that have already been executed
v To set a stop point for the script, select the script and then click Set the stop
point

.
Chapter 8. Project management

275

You can stop the script to make a manual fix and then start it again.
Tip: To remove the stop point, click Remove the stop point
5. Using the toolbar buttons, choose the run action that you want.
Button

Description
Runs the script
After an error is encountered, clicking this button attempts to
re-execute the failed instruction.
Skips to the next transaction and runs the script to the end
Runs the selected transaction only
Skips to the next transaction and stops, but does not run any
transactions

The project window is updated as the script is run.
6. Fix any errors encountered by the script either by retargeting objects or
modifying the temporary project as required.
For more information, see “Fixing errors caused by invalid objects” on page
278.
7. When the script has completed, click Accept to accept the changes or click
Revert to undo the changes.
Note: After clicking Accept or Revert, you cannot use Undo and Redo for the
current session.
Running action logs in batch mode:
Using the ScriptPlayer:
Syntax
At the command prompt, ensure you navigate to the installation location of the
BmtScriptPlayer.exe.
Use the following syntax to run the Script Player:
BmtScriptPlayer [-c|-m]  [-a ][options]

where  is the name of the project and  is the name
of the action log.
For example,
BmtScriptPlayer -m goSales.cpf -a import.xml

Options
You can specify how the Script Player runs using the following options.
Note: If you are working in a UNIX environment, you may want to create a script
to hide credentials that are passed on the command line.

276

IBM Cognos Framework Manager Version 10.1.1: User Guide

Option
-a FILEPATH

Description
Apply the specified action log.
FILEPATH is the path, including the file
name, to the action log file.

-b NUM

Execute transactions with sequence number
equal to or higher than the number specified
by NUM.
The default is the first transaction.

-c FILEPATH

Create a new project.
FILEPATH is the path, including the file
name, to the models project (.cpf) file.
Using this option without specifying an
action log results in the creation of an empty
model.
Note: If the model specified in the
FILEPATH already exists, it is silently
replaced.

-e NUM

Execute transactions with sequence number
equal to or lower than the number specified
by NUM.
If the option is not specified, execution ends
at the transaction with the highest sequence
number or transaction number 9999,
whichever comes first. For action logs that
contain transactions with sequence numbers
10,000 and higher, this option must be used.

-g

Upgrade the model (if required).
If this option is not specified and the model
was created with a previous version,
execution terminates.
If you specify this option without specifying
an action log, only the model upgrade is
performed.

-k DIRECTORY
-m FILEPATH

Specify the install directory.
Open an existing project.
FILEPATH is the path, including the file
name, to the models project (.cpf) file.

-n

Do not save the model.
This option can be used to test action log
files.

Chapter 8. Project management

277

Option
-p PASSWORD

-s NAMESPACE

-t DIRECTORY
-T PASSPORT

-u USER

-x

Description
Authenticate using the specified password
(if required).
Authenticate using the specified namespace
(if required).
Specify the template directory.
Specify a security passport. A passport is an
encrypted string used to allow secure
conversations for the plug-ins that need it.
Authenticate using the specified user name
(if required).
Terminate the test run when there is a
transaction error.
By default, the script player only terminates
with severe errors such as an invalid model
or action log, and continues executing, even
if some minor transactions fail.

-y PASSPORT

Authenticate using the specified passport (if
required).
This option overrides other specified
credentials (-s, -p, and -u). The Script Player
skips authentication and associates the
specified passport with the session.

Examples
This table shows some examples of Script Player commands.
Command

Description

BmtScriptPlayer -c 

Create a project.

BmtScriptPlayer -c 
-a 

Create a project and apply all the
transactions from the action log.

BmtScriptPlayer -c 
-a  -b2 -e20

Create a project and apply the transactions
numbered 2-20 from the action log.

BmtScriptPlayer -m 
-a  -e20

Open an existing project and apply the
transactions numbered 1-20 from the action
log.

BmtScriptPlayer-m 
-a  -n

Open an existing project and apply all the
transactions from the action log. Do not save
the project.

Fixing errors caused by invalid objects:

278

IBM Cognos Framework Manager Version 10.1.1: User Guide

You may encounter errors when running script files or verifying models if an
object that is referenced by a transaction no longer exists, or if you renamed
objects.
If an object no longer exists, retarget the missing object to another object.
Working with scripts
If you are working with scripts and you retarget an object, all remaining script
transactions use the new object. If the script stops for any other reason, you should
modify the temporary project to correct the problem.
Note: Fixing errors by making changes to the main project can produce
unpredictable results. Always fix errors by changing the temporary project.
When a script encounters errors, you can choose how you want to resolve the
problem.
Solution

Action

Skip transactions that include this object

Click Exclude and in the Exclude
Transactions that Use this Object dialog
box, select the level of exclusion that you
want.
The current transaction and all subsequent
ones that reference the excluded object are
ignored. For example, if a transaction
attempts to create a package that uses the
excluded object, the package is not created.
Note: You must fix errors before skipping
transactions.

Replace this and all following occurrences of Click Replace and in the Replace Missing
the object
Objects dialog box, select the option that
you want.
Fix the problem manually

Click Stop and then fix the problem in the
temporary project.

Retargeting an object
If a transaction refers to an object that no longer exists, the script stops and a
dialog box displays with the name of the problematic object. You can retarget the
object by clicking Replace and selecting a new object.
If a missing object displays in an expression, the script stops and a dialog box
displays with the name of the problematic object. You must fix the problem
manually by opening the expression that contains the missing object.
Fixing other errors encountered by the script
You must fix script errors by modifying the temporary project. Fixing errors by
making changes to the main project can produce unpredictable results.
Tip: You can move or minimize the Synchronize dialog box to view and modify
the project.

Chapter 8. Project management

279

Archiving log file entries
Over time, log files for a project can become large. A large log file may affect the
performance of IBM Cognos Framework Manager, especially when manipulating
log files. You can remove a portion of the entries in a log file and append them to
the contents of the archive-log.xml file. Framework Manager archives all log file
entries before the selected transaction. The selected transaction is not archived.
Archived transactions are available when synchronizing projects. For more
information, see “Synchronizing projects.”
Archived transactions are no longer visible in the transaction history. These
transactions are not available when branching or merging projects. For example, in
a branched project, any archived transactions will not be available when you
merge back into the main project.

Procedure
1. Click Project, View Transaction History.
2. Locate the entry in a log file for the transaction that occurred after the last
transaction you want to archive.
All transactions in the current log file prior to the selected transaction will be
archived.
3. Click Archive Log File.

Synchronizing projects
You can use IBM Cognos Framework Manager log files to synchronize your
project.
You may choose to synchronize your project if you
v Updated metadata in another party modeling tool.
v Made changes to metadata using a multidimensional modeling tool.
When you synchronize your project, you create a new project by replaying from
the log files, all the actions you made in the original project.
Special considerations should be taken before synchronizing projects that contain
segmented models or linked models.
If your data source is a relational database, you can update only the query subjects
and do not need to perform a full project synchronization. You must perform a
project synchronization to synchronize changes made in another data source.
If you import a subset of a data source, any new objects that were added to the
data source are not included when you synchronize. The action log recorded the
importing of objects that you originally specified. When you synchronize, only the
originally imported objects are re-imported.
You can use project synchronization to run the complete action history of the
model and update the model's metadata. You can also save portions of the action
log to a separate script file for later use, or you can save the entire action log to a
script file if you want to build the same model in batch mode. If you encounter
errors when trying to run an action log script, see “Fixing errors caused by invalid
objects” on page 278.

280

IBM Cognos Framework Manager Version 10.1.1: User Guide

After synchronizing, you can choose to accept the new changes and create a new
project, or return to the original project. If you accept the new changes, the original
project is replaced.
Because every action that you made in your project is rerun, synchronization may
take a long time.
If an object that is referenced by a transaction no longer exists, either because it
was renamed or deleted, you will receive errors during the synchronization. For
example, if you imported a table named Products and then renamed the table to
New Products in your data source, you will receive an error when you synchronize
the project. The synchronization cannot detect that the table named New Products
was previously imported using a different name. You must manually retarget the
object to complete the synchronization. For information about fixing
synchronization errors, see “Fixing errors caused by invalid objects” on page 278.
Note: Action logs from IBM Cognos ReportNet are not supported in this release.
Before synchronizing a project, you should understand how synchronization
impacts segmented and linked models. You should also ensure that data source
connections have not changed and that data sources are online. You can check your
connections by testing a few key query subjects.

Segmented models
A segmented model should be synchronized only by synchronizing the main
project. The results of synchronizing the entire project are written to the log file of
the main project. The ability to synchronize individual segments is lost after the
first synchronization of the main project.
If you are working in the main project and change a segment, the main log file is
updated. If you are working in the segment and make changes, the segment log
file is updated.
Synchronization commands do not necessarily run in the order they display in the
log files. This happens because it is possible to update segments concurrently and
the action logs are replayed based on the time of the original action. Commands
may display to jump between log files, making it difficult to use debugging
features such as single stepping.

Linked models
Log files are contained in the project that is open and not in the model that is
updated.
If you open a main project and make changes to a linked model, the actions are
logged in the log file of the main project. If you then synchronize the linked
model, the change is lost because it did not display in the set of log files that were
used in the synchronization.
Synchronization can be run only on the main project or a stand-alone segment. You
cannot synchronize linked projects or segments in the main project. If the segments
are updated by the linked project, the synchronization can produce unpredictable
results in the main project.
Do not use model synchronization in combination with linked projects.
Chapter 8. Project management

281

Steps to synchronize
Procedure
1. Click Project, Synchronize.
2. You can create a backup of your Framework Manager project by selecting the
Backup project into this directory check box.
3. If you want to view the details of a transaction, click the transaction.
4. Set the starting or stop point that you want.
v To set the starting point for running the script, select the script and then click
Set the starting point. You can do this at any time to skip an instruction or
.
run instructions that have already been executed
v To set a stop point for the script, select the script and then click Set the stop
.
point
You can stop the script to make a manual fix and then start it again.
Tip: To remove the stop point, click Remove the stop point
5. Using the toolbar buttons, choose the run action that you want.
Button

Description
Runs the script
After an error is encountered, clicking this button attempts to
re-execute the failed instruction.
Skips to the next transaction and runs the script to the end
Runs the selected transaction only
Skips to the next transaction and stops, but does not run any
transactions

The project window is updated as the script is run.
6. Fix any errors encountered by the script either by retargeting objects or
modifying the temporary project as required.
For more information, see “Fixing errors caused by invalid objects” on page
278.
7. When the script has completed, click Accept.
The original project is replaced by the contents of the temporary project.
Tip: To return the project to its previous state, click Revert.

Query behavior
By monitoring and adjusting the behavior of queries in your project, you can
improve the performance of your model.
You can do the following:

Procedure
1. Set governors to reduce system resource requirements and improve
performance by ensuring that the metadata in a package contains the

282

IBM Cognos Framework Manager Version 10.1.1: User Guide

appropriate limits. For example, you can set limits on the amount of data
retrieved or the time that a query can take. For more information, see
“Governors.”
2. Specify whether aggregate rollups are computed locally or in the database. For
relational metadata, you can improve performance by selecting the right type of
query processing. After initial report execution, by turning the query reuse
feature on, you can create reports without querying the database again. For
more information, see “Specifying where aggregate rollups are processed” on
page 290.
3. Improve performance by setting the query processing type to determine
whether SQL processing is performed by the database server or processed
locally. For more information, see “Improving performance by setting the query
processing type” on page 291.
4. Improve performance by reusing cached data when running a report. By
reusing cached data, you can create a report without querying the database
again. For more information, see “Improving performance by reusing cached
data when running a report” on page 292.
5. Select the vendor-specific function sets for the data sources defined in the
project. For more information, see “Selecting function sets” on page 293.
6. Indicate the behavior of individual functions based on the data sources in the
project. For more information, see “Quality of service” on page 294.
7. Control and optimize how queries are run by modifying the properties of a
data source that was created using the Metadata Wizard in IBM Cognos
Framework Manager. For more information, see “Controlling and optimizing
queries” on page 296.

Governors
Use governors to reduce system resource requirements and improve performance.
You set governors before you create packages to ensure the metadata in the
package contains the specified limits. All packages that are subsequently published
use the new settings.
The governor settings that take precedence are the ones that apply to the model
that is currently open (whether it is a parent model or a child model).
In a new project the governors do not have values defined in the model. You must
open the Governors window and change the settings if necessary. When you save
the values in the Governors window by clicking OK, the values for the governors
are set. You can also set governors in Report Studio. The governor settings in
Report Studio override the governor settings in the model.
For information about the governors specific to dynamic query mode (DQM), see
the Dynamic Query Guide.

Maximum Number of Report Tables
You can control the number of tables that a user can retrieve in a query or report.
When a table is retrieved, it is counted each time it displays in the query or report.
The limit is not the number of unique tables. If the query or report exceeds the
limit set for the number of tables, an error message displays and the query or
report is shown with no data.
A setting of zero (0) means no limit is set.

Chapter 8. Project management

283

Note: This governor is not used in dynamic query mode.

Maximum Number of Retrieved Rows
You can set data retrieval limits by controlling the number of rows that are
returned in a query or report. Rows are counted as they are retrieved.
When you run a report and the data retrieval limit is exceeded, an error message
displays and the query or report is shown with no data.
You can also use this governor to set limits to the data retrieved in a query subject
test or the report design mode.
A setting of zero (0) means no limit is set.
If you externalize a query subject, this setting is ignored when you publish the
model. For more information, see“Externalized query subjects and dimensions” on
page 244.
Note: This governor is not used in dynamic query mode.

Query Execution Time Limit
You can limit the time that a query can take. An error message displays when the
preset number of seconds is reached.
A setting of zero (0) means no limit is set.
Note: This governor is not used in dynamic query mode.

Large Text Item Limit
You can control the character length of BLOBs (binary large objects) that a user can
retrieve in a query or report. When the character length of the BLOB exceeds the
set limit, an error message displays, and the query or report is shown with no
data.
A setting of zero (0) means no limit is set.

Outer Joins
You can control whether outer joins can be used in your query or report. An outer
join retrieves all rows in one table, even if there is no matching row in another
table. This type of join can produce very large, resource-intensive queries and
reports.
Governors are set to deny outer joins by default. For example, outer joins are not
automatically generated when you test a query item in Framework Manager.
SQL is generated automatically when you
v Run a report.
v Test a query item or relationship in Framework Manager.
v Create a new model query subject based on other objects.

284

IBM Cognos Framework Manager Version 10.1.1: User Guide

If you keep the setting as Deny, you are notified only if you create a relationship
in the Diagram tab that includes outer joins. You are not notified if you create a
relationship in a data source query subject that includes outer joins.
If you set the governor to Allow, dimension to fact relationships are changed from
inner joins to outer joins.
The outer joins governor does not apply in these circumstances:
v SQL that is generated by other means. If you set this governor to Deny, it does
not apply to the permanent SQL found in a data source query subject, whether
the SQL was generated on import, manually entered, or based on existing
objects.
v Framework Manager needs to generate an outer join to create a stitched query. A
stitched query is a query that locally combines the results of two or more
sub-queries by using a locally processed outer join.
Note: This governor is not applicable for SAP BW data sources.
Note: This governor is not used in dynamic query mode.

Cross-Product Joins
You can control whether cross-product joins can be used in your query or report. A
cross-product join retrieves data from tables without joins. This type of join can
take a long time to retrieve data.
The default value for this governor is Deny. Select Allow to allow cross-product
joins.

Shortcut Processing
You can control how shortcuts are processed by IBM Cognos software.
When you open a model from a previous release, the Shortcut Processing
governor is set to Automatic. Automatic is a shortcut that exists in the same folder
as its target and behaves as an alias, or independent instance. However, a shortcut
existing elsewhere in the model behaves as a reference to the original. When you
create a new model, the Shortcut Processing governor is always set to Explicit.
If you set the governor to Explicit, the shortcut behavior is taken from the Treat As
property. If the Shortcut Processing governor is set to Automatic, verify the model
and, when repairing, change the governor to Explicit. This changes all shortcuts to
the correct value from the Treat As property based on the rules followed by the
Automatic setting.
The Shortcut Processing governor takes priority over the Treat As property. For
example, if the governor is set to Automatic, the behavior of the shortcut is
determined by the location of the shortcut relative to its target regardless of the
setting of the Treat As property is.

SQL Join Syntax
You can control how SQL is generated for inner joins in a model by selecting one
of the following settings:

Chapter 8. Project management

285

v If the governor is set to Server determined, the CQEConfig.xml file is used to
determine the governor value. If there is no active CQEConfig.xml file or no
parameter entry for the governor in the CQEConfig.xml file, then the Implicit
setting is used.
v The Implicit setting uses the where clause.
For example,
SELECT publishers.name, publishers.id,
books.title FROM publishers, books WHERE publishers.id
= books.publisher_id ORDER BY publishers.name, books.title;

v The Explicit setting uses the from clause with the keywords inner join in an on
predicate.
For example,
SELECT
publishers.name, publishers.id,
books.title FROM publishers INNER JOIN books ON publishers.id
= books.publisher_id ORDER BY publishers.name, books.title;

You can set the join type on the query property in Report Studio to override the
value of this governor.
Regardless of the setting you use for this governor, the Explicit setting is used for
left outer joins, right outer joins, and full outer joins.
This governor has no impact on typed-in SQL.

Grouping of Measure Attributes (query items)
If the governor is set to Server determined, the CQEConfig.xml file is used to
determine the governor value. If there is no active CQEConfig.xml file or no
parameter entry for the governor in the CQEConfig.xml file, then the Disabled
setting is used.
The Disabled setting prevents aggregation of the measure for the attributes. This is
the default behavior. For example,
select Product.Product_line_code as Product_line_code,
Order_method.Order_method_code as Order_method_code,
XSUM(Sales.Quantity for Product.Product_line_code) as Quantity from ...

The Enabled setting allows aggregation of the measure for the attributes. Note:
This is the default behavior for IBM Cognos Framework Manager versions prior to
8.3.
select Product.Product_line_code as Product_line_code,
Order_method.Order_method_code as Order_method_code,
XSUM(Sales.Quantity for Order_method.Order_method_code,
Product.Product_line_code)
as Quantity
from ...

In these examples, Order_method.Order_method_code as Order_method_code defines
the measure attribute.
The XSUM syntax defines the aggregated measure.

286

IBM Cognos Framework Manager Version 10.1.1: User Guide

SQL Generation for Level Attributes
You can control the use of the minimum aggregate in SQL generated for attributes
of a level (member caption).
If the governor is set to Server determined, the CQEConfig.xml file is used to
determine the governor value. If there is no active CQEConfig.xml file or no
parameter entry for the governor in the CQEConfig.xml file, then the Minimum
setting is used.
The Minimum setting generates the minimum aggregate for the attribute. This
setting ensures data integrity if there is a possibility of duplicate records. For
example,
select XMIN(Product.Product_line
for Product.Product_line_code) as Product_line, //level attribute
Product.Product_line_code as Product_line_code
from
(...) Product

The Group By setting adds the attributes of the level in the group by clause. with
no aggregation for the attribute. The distinct clause indicates a group by on all
items in the projection list. The Group By setting is used if the data has no
duplicate records. It can enhance the use of materialized views and may result in
improved performance. For example,
select distinct
Product.Product_line as Product_line,//level attribute
,Product.Product_line_code
as Product_line_code
from(...) Product

Note: This governor is not used in dynamic query mode.

SQL Generation for Determinant Attributes
You can control the use of the minimum aggregate in SQL generated for attributes
of a determinant with the group by property enabled.
If the governor is set to Server determined, the CQEConfig.xml file is used to
determine the governor value. If there is no active CQEConfig.xml file or no
parameter entry for the governor in the CQEConfig.xml file, then the Minimum
setting is used.
The Minimum setting generates the minimum aggregate for the attribute. This
setting ensures data integrity if there is a possibility of duplicate records. For
example,
select PRODUCT_LINE.PRODUCT_LINE_CODE
as Product_line_code,
XMIN(PRODUCT_LINE.PRODUCT_LINE_EN
for PRODUCT_LINE.PRODUCT_LINE_CODE)
as Product_line //attribute
from
great_outdoors_sales..GOSALES.PRODUCT_LINE PRODUCT_LINE
group by
PRODUCT_LINE.PRODUCT_LINE_CODE //key

Chapter 8. Project management

287

The Group By setting adds the attributes of the determinants in the group by
clause with no aggregation for the attribute. This setting is used if the data has no
duplicate records. It can enhance the use of materialized views and may result in
improved performance. For example,
select
PRODUCT_LINE.PRODUCT_LINE_CODE as Product_line_code,
PRODUCT_LINE.PRODUCT_LINE_EN as Product_line //attribute
from
great_outdoors_sales..GOSALES.PRODUCT_LINE PRODUCT_LINE
group by
PRODUCT_LINE.PRODUCT_LINE_CODE //key
PRODUCT_LINE.PRODUCT_LINE_EN //attribute

SQL Parameter Syntax
This governor specifies whether generated SQL uses parameter markers or literal
values.
If the governor is set to Server determined, the CQEConfig.xml file is used to
determine the governor value. If there is no active CQEConfig.xml file or no
parameter entry for the governor in the CQEConfig.xml file, then the Marker
setting is used.
You can override the value of this governor in Report Studio.
Dynamic SQL applications have the ability to prepare statements which include
markers in the text which denote that the value will be provided later. This is most
efficient when the same query is used many times with different values. The
technique reduces the number of times a database has to hard parse an SQL
statement and it increases the re-use of cached statements. However, when queries
navigate larger amounts of data with more complex statements, they have a lower
chance of matching other queries. In this case, the use of literal values instead of
markers may result in improved performance.

Allow Enhanced Model Portability at Run Time
This governor is selected upon initial upgrade of a Cognos ReportNet 1.x model. It
prevents rigid enforcement of data types so that an IBM Cognos model can
function as a ReportNet 1.x model until you update the data types in the metadata.
After you have verified that the model has been upgraded successfully, clear this
governor.
Other than for initial upgrade, there are limited uses for this governor. For
example, you have created a model for use with a data source and you want to
run it against a different data source. The new data source must be structurally
similar to the original data source, and the database schema must be the same
between the two data sources. If you select this governor, IBM Cognos BI retrieves
metadata from the data source and caches it instead of using the metadata already
cached in the model. When you have completed modifying and testing the model
against the new data source, clear this governor.
If you do not use this governor, you must ensure that the following metadata is
the same in the original and new data sources:
v Collation sequence name
v Collation level
v Character set

288

IBM Cognos Framework Manager Version 10.1.1: User Guide

v
v
v
v
v

Nullability
Precision
Scale
Column length
Data type

Allow Usage of Local Cache
Select this governor to specify that all reports based on this model will use cached
data. For a new model, this governor is enabled by default.
This setting affects all reports that use the model. Use Report Studio if you want a
report to use a different setting than the model. For more information, see
“Improving performance by reusing cached data when running a report” on page
292.

Allow Dynamic Generation of Dimension Information
This governor is selected only upon initial upgrade of a ReportNet 1.x model. This
governor allows consistent behavior with ReportNet 1.x by deriving a form of
dimension information from the relationships, key information, and index
information in the data source.

Use With Clause When Generating SQL
You can choose to use the With clause with IBM Cognos SQL if your data source
supports the With clause.
The With clause is turned on for models created in IBM Cognos BI. For upgraded
models, it is turned off unless it was explicitly turned on in the Cognos ReportNet
model prior to upgrading.

Suppress Null Values for SAP BW Data Sources
You can control whether or not nulls are suppressed by any report or analysis that
uses the published package. The governor is also applied to test results during the
current Framework Manager session. It is supported for SAP BW data sources
only.
Some queries can be very large because null values are not filtered out. Null
suppression removes a row or column for which all of the values in the row or
column are null (empty). Null suppression is performed by SAP BW. This reduces
the amount of data transferred to the IBM Cognos client products and improves
performance.
By default, nulls values are suppressed. If you clear this governor, null values are
not suppressed.
There is a property called Suppress in Report Studio that overrides this governor.
If the Suppress property is set to None, null values are included in the result set
even if the governor is set to suppress null values.
Note: This governor is not applied when creating CSV files; therefore, CSV files
include null values if they exist in the data.

Chapter 8. Project management

289

Publish Entire Model When Processing
A published package includes the model objects selected when the package was
created. In addition, those model objects are analyzed in order to identify and
include dependent objects in the package.
In a complex or very large model, the analysis can take considerable time. To
shorten the publish time, set this governor to skip this analysis step and have the
entire model written to the content store. The resulting package may be larger
because the entire model is published instead of only required objects, however the
time required to publish should be reduced.

Maximum external data sources that can be merged with a model
To use external data, report users import their data into an existing package. This
governor controls the number of external data files that can be imported.
The default is 1.
For more information about external data sources, see the IBM Cognos Report
Studio User Guide.

Maximum external data file size (KB)
To use external data, report users import their data into an existing package. This
governor controls the size of each external data file.
By default, the maximum file size that report users can import is 2560 KB.
For more information about external data sources, see the IBM Cognos Report
Studio User Guide.

Maximum external data row count
To use external data, report users import their data into an existing package. This
governor controls the number of rows that can exist in each external data file.
By default, the maximum number of rows that report users can import is 20000.
For more information about external data sources, see the IBM Cognos Report
Studio User Guide.

Specifying where aggregate rollups are processed
The Rollup Processing property for data sources determines how aggregate rollups
above the detail level in the report are computed. The default is set to local if local
query processing is enabled, and is otherwise set to database.
Note: This property is not applicable for SAP BW data sources.
The possible options for this property are
v Unspecified
The aggregation rollup is not specified.
v Local

290

IBM Cognos Framework Manager Version 10.1.1: User Guide

All aggregation rollups are computed locally (in the report server) using a
running aggregate (for example, RSUM). Running aggregates spread the cost of
this computation as the data is retrieved. Use this option if the local computer
has more idle resources than the database computer, or if you find through
experiment that it is the fastest method.
v Database
Aggregation rollups are computed by the underlying database software if
possible. Otherwise, they are computed locally (provided local query processing
is enabled). Running aggregates are used, but the cost is incurred by the
database server instead of the report server. Use this option if the database
computer has more idle resources than the local computer, or if you find
through experiment that it is the fastest method.
v Extended
All aggregation rollups are computed by the database server using an extended
aggregate (for example, XSUM). Extended aggregates incur the entire cost of this
computation up front. Typically, this is the fastest method, but only where the
database is set up to take advantage of materialized views. For databases where
OLAP functionality is supported, this is translated into the appropriate OLAP
aggregate functions.

Procedure
1. In the Project Viewer, click the data source you want to change.
2. In the Properties pane, in the Rollup Processing list box, select the type of
rollup processing that you want.

Improving performance by setting the query processing type
The query processing property for data sources determines whether SQL
processing is performed by the database server or if it is processed locally. For
relational metadata, you can improve performance by selecting the right type of
query processing.
There are two types of query processing:
v Limited local
The database server does as much of the SQL processing and execution as
possible. However, some reports or report sections use local SQL processing.
v Database only
The database server does all the SQL processing and execution. An error
displays if any reports or report sections require local SQL processing.
Although the database server can usually run the SQL and run reports much faster,
local processing is sometimes necessary. For example, choose limited local
processing if you want to create cross database joins, or if you want your users to
use unsupported SQL99 functions.
Some complex queries require limited local processing, such as a query that must
generate an At clause to avoid double-counting.

Query processing for dynamic query mode
In Dynamic Query Mode, the query processing settings have an effect only on SAP
BW data sources.
v Limited local
Chapter 8. Project management

291

Limited Local is not supported at this time.
v Database only
Little, or possibly none of the query processing is performed by the report
server. Local processing only occurs if the database cannot handle the query.
Consider using this value only if your report performance is unacceptable with
the default setting, and becomes usable with this setting. Be aware that results
may change with this setting; test carefully to confirm that the results are still
correct.
In the Project Viewer, click the data source you want to change. In the Properties
pane, in the Query Processing list box, click either Limited Local or Database
Only

Improving performance by reusing cached data when running
a report
When you run a report, the query request is sent to the database and the result set
is returned. After the initial report execution, you may decide to make changes to
the report. Often, the report can be created without querying the database again.
To take advantage of this, turn the query reuse feature on.
When query reuse is turned on and you run a report for the first time, the query is
stored in the cache on the report server. Also, some data source resources may not
be available until the transaction using them is released. The current default
time-out is 60 minutes. If certain database activities involve modifying database
objects, you must wait for the time-out period to be completed, or you can disable
query reuse for reports.
The first time the report is run and the cache is created, the response time may be
slightly negatively impacted. The performance improvement is realized by the
report consumer on each subsequent report execution, when the response time is
improved by as much as 80%. This performance improvement occurs because the
report does not have to re-query the database. In addition to this, reduced queries
to the database yields improved overall system performance, which positively
impacts all users.
Query reuse can be set on the model or on individual reports. To specify that all
reports using a particular model should use cached data, enable the Allow Usage
of Local Cache governor on the model in IBM Cognos Framework Manager and
republish the model. By default, this setting affects all reports that use this model,
including analyses that are run as reports in IBM Cognos Viewer.

Query reuse in IBM Cognos Viewer
If you want a report to use a different setting than the model, you can do this in
IBM Cognos Report Studio. In the Properties pane, change the Use Local Cache
property. Set the property to No if you want to always execute the query. Set the
property to Yes if you want to use cached results. If you want the report to use the
same setting as the model, change the setting to Default.
Changing the Use Local Cache property for one report does not affect other
reports.

292

IBM Cognos Framework Manager Version 10.1.1: User Guide

Reusing cached data in Query Studio
IBM Cognos Query Studio reuses cached data under various conditions. If query
reuse is turned on in the model and the action can be satisfied by a subset of the
cached data set, the report uses the cached data. For example, changes to the
report such as adding a filter or removing a column, may change the report data,
but the request can still be satisfied from a subset of the cached data.
If query reuse is turned off and the action can be satisfied from the cached data set
without modifications, the report still uses the cached data. For example, changing
the report format uses the previous data set even if query reuse is turned off. This
is known as cursor reuse. Cursor reuse is used when the cached data can satisfy
the request without modifications.
Reports that were created in Query Studio always use the same setting as that
specified in the model. If the model has query reuse turned on, the report attempts
to use the cached data.

Deciding whether to use query reuse in your environment
Before deciding whether or not to turn query reuse on, consider the following:
v If most report consumers run reports interactively but run them only once, you
may not experience a high level of performance improvement by caching data.
Note: Regardless of the query reuse settings, reports that run in batch mode do
not cache data.
v The size of the cache may impact scalability. For example, if a report has a large
result set, the cache will also be large. This should be taken into account when
sizing and configuring your server environment.

Selecting function sets
A collection of vendor-specific functions is called a function set. When you create a
project that contains relational metadata, the expression editor lists the function
sets for all available vendors. However, you can restrict the function sets so that
they list only the vendors that you want to use in your project. You customize the
function set by identifying the specific vendor for each data source defined in the
project.
You can use functions that you defined in your relational data source in IBM
Cognos Framework Manager. If you imported the user-defined functions, they are
listed in Framework Manager for easy selection. If you did not import them, you
can type the name of the function into an expression. If the function must be
qualified, you must import them into Framework Manager.
Sometimes the vendor-specific functions were created on schemas with broad
access permissions. You cannot use these functions in IBM Cognos software on a
schema with restricted access permissions if both the schemas are on the same
database instance.
If an unrecognized function is typed into a report, it is assumed that the function
is native. For more information, see “Native SQL” on page 99.
Note: When you create a project that contains SAP BW metadata, Framework
Manager automatically lists only the functions that apply to SAP BW data.

Chapter 8. Project management

293

Procedure
1. Click Project, Project Function List.
2. Select the Set function list based on the data source type check box.
Tip: To disable this filter, select the Include all function sets check box.
3. In the Function set page, click the appropriate data source row.
4. From the drop down list on the Function set field, select the function set you
want to use with this data source.
5. Repeat steps 2 to 4 until finished.
6. Click OK.

Quality of service
With IBM Cognos Framework Manager, you can query any combination of data
source types, but not all data sources support functions the same way. The quality
of service indicator provides you and your users with a visual clue about the
behavior of individual functions when used in conjunction with the data sources in
the model.
Each function specified in your data source may have a different quality of service,
depending on the type of data source in use. For each query feature that does not
have the same quality of service across packages, you can override the level of
service and add text to describe the specific situation in that model. Your users can
see the quality of service indicators and the context specific description, and use
this information when determining which functions to use in reports.

Impact of overriding the quality of service indicator
IBM Cognos Framework Manager determines the quality of service for functions
based upon the data source type. Taking into consideration the context of the
model, you can override the quality of service that is determined by the product.
Overriding the quality of service provides guidance to your users. It does not
change the level of support for that function in your data source.
When a package is made by combining sub-packages, quality of service overrides
in the parent package take precedence. If there is no parent override, the quality of
service for the child packages are aggregated.

Consider your users
Ultimately, the goal is to provide your users with enough information to satisfy
their business requirements, but not enough to confuse them. If your users are
unable to make decisions regarding which functions to use based on the quality of
service indicators, you should consider publishing separate packages for different
groups of users. If your users require access to functions whose quality of service
is less than Unconstrained, you should document the restrictions of those functions
when you set the quality of service.

Impacts on performance
The quality of service indicators have no direct impact on query performance.
Service indicators are intended to give you some control over which functions are
available for use. You can then prevent your users from using functions that could
result in long running queries or queries that fail.

294

IBM Cognos Framework Manager Version 10.1.1: User Guide

It is important to note that if you use functions that are not available in your data
source, Framework Manager tries to compensate by using local processing on the
report server. This may have an impact on query performance because the work is
done on your report server instead of on your data source server.
In some situations, local processing may require more data to be retrieved from the
data source server, which has an impact on both the data source server and the
network. For example, OLAP functions are not available in a relational data source.
If you attempt to use OLAP functions with a relational data source, Framework
Manager uses the dimensional information in the data source to generate a local
cube and run the OLAP functions against the cube. This requires retrieval of
dimensional information from the data source server and extra processing on the
report server.

Defining the quality of service indicators
The quality of service for a function is specified at the data source level and can be
set for an individual function or for all functions in a package.
For more information about individual functions, see Appendix B, “Using the
expression editor,” on page 365.
The quality of service indicators are:
v Not available (X)
This function is not available for any data sources in the package.
v Limited availability (!!)
The function is not available for some data sources in the package.
v Limited support (!)
The function is available for all data sources in the package but is not naturally
supported for that data source. IBM Cognos software uses a local approximation
for that function. Because an approximation is used, performance can be poor
and the results may not be what you expect.
v Unconstrained (check mark)
The function is available for all data sources.
If there is more than one type of data source in the model, the quality of service
values are aggregated according to the following rules:
v If the quality of service is defined as Unconstrained, Limited Support, or Limited
Availability in one data source and defined as Not Available in another data
source, the quality of service for that function becomes Limited Availability.
v In all other cases, the lowest common dominator is used. For example, if the
quality of service is Unconstrained in one data source and Limited Support in
another data source, the quality of service for that function becomes Limited
Support. If the quality of service is Limited Support in one data source and
Limited Availability in another data source, the quality of service is reported as
Limited Availability.

Procedure
1. Click Project, Project Function List, Define Quality of Service.
2. Expand the tree nodes to view the quality of service for each function.
3. To override the quality of service, click the arrow beside each function and
select the quality of service indicator from the list.
4. After changing the quality of service, you can add detailed information about
the function in the text box on the right.
Chapter 8. Project management

295

This information becomes available to your users and can assist them in
determining whether to use this function in their reports.
Tip: Click Remove override to set the quality of service back to the default.
5. Click OK.

Controlling and optimizing queries
You can modify the properties of a data source that was created using the
Metadata Wizard in Framework Manager. The data source properties help you
control and optimize the way queries are run against the database.
You cannot modify the properties of a data source that was created using the
portal. These data sources can only be modified in the portal. For more
information, see the IBM Cognos Administration and Security Guide.

296

Data source property

Description

Name

Descriptive name of the data source
connection provided by the user at the time
of creation

Query Processing

Determines whether SQL processing is
performed by the database server or
processed locally

Rollup Processing

Determines whether aggregate rollups are
computed locally or in the database

Content Manager Data Source

Specifies the name of the data source as it is
identified in the Content Manager. If using
an XML data source, this property may be
parameterized.

Catalog

Represents different information for different
databases. For example, if the database is
SQL Server, the element contains the name
of the database; if the database is Oracle, it
is not used.

Cube

Specifies the name of the cube

Schema

Represents different information for different
databases. For example, for SQL Server or
Oracle, the element contains the name of the
owner.

Type

Specifies the type for the parent object.

Query Type

Specifies the type of query model that this
data source understands. For example, SQL
sources are relational and MDS sources are
multidimensional.

Query Interface

This element contains two letters, identifying
the provider type. It is maintained by the
application.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Data source property

Description

Function Set ID

Defines the function set that applies to a
data source. Used in the initial population of
the function sets of a security view when a
package is created.

Parameter Maps

References a parameterMap that represents a
Oracle Essbase alias table map.

Chapter 8. Project management

297

298

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 9. Guidelines for Modeling Metadata
IBM Cognos Framework Manager is a metadata modeling tool that drives query
generation for IBM Cognos BI. A model is a collection of metadata that includes
physical information and business information for one or more data sources. IBM
Cognos BI enables performance management on normalized and denormalized
relational data sources as well as a variety of OLAP data sources.
To access the IBM Cognos Guidelines for Modeling Metadata documentation in a
different language, go to installation_location\c10\webcontent\documentation and
open the folder for the language you want. Then open ug_best.pdf.

Understanding IBM Cognos Modeling Concepts
Before you begin, you need to understand fundamental IBM Cognos modeling
concepts about modeling metadata for use in business reporting and analysis.

Relational Modeling Concepts
When modeling in IBM Cognos Framework Manager, it is important to understand
that there is no requirement to design your data source to be a perfect star schema.
Snowflaked and other forms of normalized schemas are equally acceptable as long
as your data source is optimized to deliver the performance you require for your
application. In general, we recommend that you create a logical model that
conforms to star schema concepts. This is a requirement for IBM Cognos Analysis
Studio and has also proved to be an effective way to organize data for your users.
When beginning to develop your application with a complex data source, it is
recommended that you create a simplified view that represents how your users
view the business and that is designed using the guidelines in this document to
deliver predictable queries and results. A well-built relational model acts as the
foundation of your application and provides you with a solid starting point if you
choose to take advantage of dimensional capabilities in IBM Cognos software.
If you are starting with a star schema data source, less effort is required to model
because the concepts employed in creating a star schema lend themselves well to
building applications for query and analysis. The guidelines in this document will
assist you in designing a model that will meet the needs of your application.

Cardinality
Relationships exist between two query subjects. The cardinality of a relationship is
the number of related rows for each of the two query subjects. The rows are
related by the expression of the relationship; this expression usually refers to the
primary and foreign keys of the underlying tables.
IBM Cognos software uses the cardinality of a relationship in the following ways:
v to avoid double-counting fact data
v to support loop joins that are common in star schema models
v to optimize access to the underlying data source system
v to identify query subjects that behave as facts or dimensions

© Copyright IBM Corp. 2005, 2011

299

A query that uses multiple facts from different underlying tables is split into
separate queries for each underlying fact table. Each single fact query refers to its
respective fact table as well as to the dimensional tables related to that fact table.
Another query is used to merge these individual queries into one result set. This
latter operation is generally referred to as a stitched query. You know that you
have a stitched query when you see coalesce and a full outer join.
A stitched query also allows IBM Cognos software to properly relate data at
different levels of granularity. See “Multiple-fact, Multiple-grain Queries” on page
306.
Cardinality in Generated Queries:
IBM Cognos software supports both minimum-maximum cardinality and optional
cardinality.
In 0:1, 0 is the minimum cardinality, 1 is the maximum cardinality.
In 1:n, 1 is the minimum cardinality, n is the maximum cardinality.
A relationship with cardinality specified as 1:1 to 1:n is commonly referred to as 1
to n when focusing on the maximum cardinalities.
A minimum cardinality of 0 indicates that the relationship is optional. You specify
a minimum cardinality of 0 if you want the query to retain the information on the
other side of the relationship in the absence of a match. For example, a relationship
between customer and actual sales may be specified as 1:1 to 0:n. This indicates
that reports will show the requested customer information even though there may
not be any sales data present.
Therefore a 1 to n relationship can also be specified as:
v 0:1 to 0:n
v 0:1 to 1:n
v 1:1 to 0:n
v

1:1 to 1:n

Use the Relationship impact statement in the Relationship Definition dialog box
to help you understand cardinality. For example, Sales Staff (1:1) is joined to
Orders (0:n).

It is important to ensure that the cardinality is correctly captured in the model
because it determines the detection of fact query subjects and it is used to avoid
double-counting factual data.
When generating queries, IBM Cognos software follows these basic rules to apply
cardinality:
v Cardinality is applied in the context of a query.
v

300

1 to n cardinality implies fact data on the n side and implies dimension data on
the 1 side.

IBM Cognos Framework Manager Version 10.1.1: User Guide

v A query subject may behave as a fact query subject or as a dimensional query
subject, depending on the relationships that are required to answer a particular
query.
Use the Model Advisor to see an assessment of the behavior implied by
cardinality in your model.
For more information, see “Single Fact Query” on page 335 and “Multiple-fact,
Multiple-grain Query on Conformed Dimensions” on page 337.
Cardinality in the Context of a Query:
The role of cardinality in the context of a query is important because cardinality is
used to determine when and where to split the query when generating
multiple-fact queries. If dimensions and facts are incorrectly identified, stitched
queries can be created unnecessarily, which is costly to performance, or the queries
can be incorrectly formed, which can give incorrect results.
The following examples show how cardinality is interpreted by IBM Cognos
software.
Example: Query Subjects Behaving as a Dimension and a Fact:
In this example, Sales Branch behaves as a dimension relative to Order Header and
Order Header behaves as a fact relative to Sales Branch.

Example: Four Query Subjects Included in a Query:
In this example, all four query subjects are included in a query. Sales staff and
Order details are treated as facts. Order header and Sales branch are treated as
dimensions.

Chapter 9. Guidelines for Modeling Metadata

301

The SQL generated for this query will be split, treating Sales staff and Order
details as facts. The results of these two subqueries are stitched using the
information retrieved from Sales branch. This gives a report that lists the Sales staff
information by Sales branch next to the Order details and Order header
information by Sales branch.
Example: Three Query Subjects Included in a Query:
In this example, only three query subjects are included in a query. Order details is
not used. Order header is now treated as a fact. Sales staff continues to be treated
as a fact.

The SQL in this example also generates a stitched query, which returns a similar
result as above. Note that a stitch operation retains the information from both sides
of the operation by using a full outer join.

Determinants
Determinants reflect granularity by representing subsets or groups of data in a
query subject and are used to ensure correct aggregation of this repeated data.
Determinants are most closely related to the concept of keys and indexes in the
data source and are imported based on unique key and index information in the
data source. We recommend that you always review the determinants that are
imported and, if necessary, modify them or create additional ones. By modifying
determinants, you can override the index and key information in your data source,
replacing it with information that is better aligned with your reporting and
analysis needs. By adding determinants, you can represent groups of repeated data
that are relevant for your application.
An example of a unique determinant is Day in the Time example below. An
example of a non-unique determinant is Month; the key in Month is repeated for
the number of days in a particular month. When you define a non-unique

302

IBM Cognos Framework Manager Version 10.1.1: User Guide

determinant, you should specify Group By. This indicates to IBM Cognos software
that when the keys or attributes associated with that determinant are repeated in
the data, it should apply aggregate functions and grouping to avoid
double-counting. It is not recommended that you specify determinants that have
both Uniquely Identified and Group By selected or have neither selected.
Year Key

Month Key

Month Name

Day Key

Day Name

2006

200601

January 06

20060101

Sunday, January
1, 2006

2006

200601

January 06

20060102

Monday, January
2, 2006

You can define three determinants for this data set as follows -- two Group By
determinants (Year and Month) and one unique determinant (Day). The concept is
similar but not identical to the concept of levels and hierarchies.
Name of the
Determinant

Key

Attributes

Uniquely
Identified

Group By

Year

Year Key

None

No

Yes

Month

Month Key

Month Name

No

Yes

Day

Day Key

Day Name

Yes

No

Month Key
Month Name
Year Key

In this case, we use only one key for each determinant because each key contains
enough information to identify a group within the data. Often Month is a
challenge if the key does not contain enough information to clarify which year the
month belongs to. In this case, however, the Month key includes the Year key and
so, by itself, is enough to identify months as a sub-grouping of years.
Note: While you can create a determinant that groups months without the context
of years, this is a less common choice for reporting because all data for February of
all years would be grouped together instead of all data for February 2006 being
grouped together.

Using Determinants with Multiple-Part Keys
In the Time dimension example above, one key was sufficient to identify each set
of data for a determinant but that is not always the case.
For example, the following Geography dimension uses multiple-part key
definitions for all but one determinant.
Region

Region Key

State/Province Key

City Key

North America

USA

Illinois

Springfield

North America

USA

Missouri

Springfield

North America

USA

California

Dublin

Europe

Ireland

n/a

Dublin

Chapter 9. Guidelines for Modeling Metadata

303

Similar to the example about Time, you can define three determinants for this data
set as follows -- two Group By determinants (Region and State/Province) and one
unique determinant (City).
Name of the
Determinant

Key

Attributes

Uniquely
Identified

Group By

Region

Region Key

None

No

Yes

State/Province

State/Province
Key

None

No

Yes

None

Yes

No

City

Region Key
State/Province
Key
City Key

In this case, we used Region Key, State/Province Key, and City Key to ensure
uniqueness for City. We did this because in the data we were given, some city
names were repeated across states or provinces, which in turn were repeated for
regions.

Determinants Are Evaluated in the Order In Which They Are Specified
There is no concept of a hierarchy in determinants, but there is an order of
evaluation. When IBM Cognos software looks at a selection of items from a query
subject, it compares them to each determinant (keys and attributes) one at a time
in the order that is set in the Determinants tab. In this way, IBM Cognos software
selects the determinant that is the best match.
In the following example, the attributes current month, days in month, and
localized month names are associated to the Month key. When a query is
submitted that references any one of these attributes, the Month determinant is the
first determinant on which the matching criteria is satisfied. If no other attributes
are required, the evaluation of determinants stops at Month and this determinant
is used for the group and for clauses in the SQL.
In cases where other attributes of the dimension are also included, if those
attributes have not been matched to a previous determinant, IBM Cognos software
continues evaluating until it finds a match or reaches the last determinant. It is for
this reason that a unique determinant has all query items associated to it. If no
other match is found, the unique key of the entire data set is used to determine
how the data is grouped.

304

IBM Cognos Framework Manager Version 10.1.1: User Guide

When to Use Determinants
While determinants can be used to solve a variety of problems related to data
granularity, you should always use them in the following primary cases:
v A query subject that behaves as a dimension has multiple levels of granularity
and will be joined on different sets of keys to fact data.
For example, Time has multiple levels, and it is joined to Inventory on the
Month Key and to Sales on the Day Key. For more information, see
“Multiple-fact, Multiple-grain Queries” on page 306.
v There is a need to count or perform other aggregate functions on a key or
attribute that is repeated.
For example, Time has a Month Key and an attribute, Days in the month, that is
repeated for each day. If you want to use Days in the month in a report, you do
not want the sum of Days in the month for each day in the month. Instead, you
want the unique value of Days in the month for the chosen Month Key. In SQL,
that is XMIN(Days in the month for Month_Key). There is also a Group by clause
in the Cognos SQL.
There are less common cases when you need to use determinants:
v You want to uniquely identify the row of data when retrieving text BLOB data
from the data source.
Querying blobs requires additional key or index type information. If this
information is not present in the data source, you can add it using determinants.
Override the determinants imported from the data source that conflict with
relationships created for reporting.
You cannot use multiple-segment keys when the query subject accesses blob
data. With summary queries, blob data must be retrieved separately from the
summary portion of the query. To do this, you need a key that uniquely
identifies the row and the key must not have multiple segments.
v A join is specified that uses fewer keys than a unique determinant that is
specified for a query subject.

Chapter 9. Guidelines for Modeling Metadata

305

If your join is built on a subset of the columns that are referenced by the keys of
a unique determinant on the 0..1 or 1..1 side of the relationships, there will be
a conflict. Resolve this conflict by modifying the relationship to fully agree with
the determinant or by modifying the determinant to support the relationship.
v You want to override the determinants imported from the data source that
conflict with relationships created for reporting.
For example, there are determinants on two query subjects for multiple columns
but the relationship between the query subjects uses only a subset of these
columns. Modify the determinant information of the query subject if it is not
appropriate to use the additional columns in the relationship.

Multiple-fact, Multiple-grain Queries
Multiple-fact, multiple-grain queries in relational data sources occur when a table
containing dimensional data is joined to multiple fact tables on different key
columns.
Note that in this section, the term dimension is used in the conceptual sense. A
query subject with cardinality of 1:1 or 0:1 behaves as a dimension. For more
information, see “Cardinality” on page 299.
A dimensional query subject typically has distinct groups, or levels, of attribute
data with keys that repeat. The IBM Cognos studios automatically aggregate to the
lowest common level of granularity present in the report. The potential for
double-counting arises when creating totals on columns that contain repeated data.
When the level of granularity of the data is modeled correctly, double-counting can
be avoided.
Note: You can report data at a level of granularity below the lowest common level.
This causes the data of higher granularity to repeat, but the totals will not be
affected if determinants are correctly applied.
This example shows two fact query subjects, Sales and Product forecast, that share
two dimensional query subjects, Time and Product.

306

IBM Cognos Framework Manager Version 10.1.1: User Guide

Time is the focal point of the granularity issue in this example. Sales is joined to
Time on the Day key, and Product forecast is joined to Time on the Month key.
Because of the different join keys, a minimum of two determinants must be clearly
identified on Time. For example, the determinants for Month and Day have their
keys identified. Day is the unique key for Time, Month keys are repeated for each
day in the month.
For example, the determinant for Month is as follows.

Chapter 9. Guidelines for Modeling Metadata

307

The Product query subject could have at least three determinants: Product line,
Product type, and Product. It has relationships to both fact tables on the Product
key. There are no granularity issues with respect to the Product query subject.
By default, a report is aggregated to retrieve records from each fact table at the
lowest common level of granularity. If you create a report that uses Quantity from
Sales, Expected volume from Product forecast, Month from Time, and Product
name from Product, the report retrieves records from each fact table at the lowest
common level of granularity. In this example, it is at the month and product level.
To prevent double-counting when data exists at multiple levels of granularity,
create at least two determinants for the Time query subject. For an example, see
“Determinants” on page 302.
Month

Product name

Quantity

Expected volume

April 2007

Aloe Relief

1,410

1,690

April 2007

Course Pro Umbrella

132

125

February 2007

Aloe Relief

270

245

February 2007

Course Pro Umbrella

February 2006

Aloe Relief

1
88

92

If you do not specify the determinants properly in the Time query subject,
incorrect aggregation may occur. For example, Expected volume values that exist at
the Month level in Product forecast is repeated for each day in the Time query
subject. If determinants are not set correctly, the values for Expected volume are
multiplied by the number of days in the month.

308

Month

Product name

Quantity

Expected volume

April 2007

Aloe Relief

1,410

50,700

April 2007

Course Pro Umbrella

132

3,750

February 2007

Aloe Relief

270

7,134

IBM Cognos Framework Manager Version 10.1.1: User Guide

Month

Product name

February 2007

Course Pro Umbrella

February 2006

Aloe Relief

Quantity

Expected volume
29

88

2,576

Note the different numbers in the Expected volume column.

Model Design Considerations
When building a model, it is important to understand that there is no single
workflow that will deliver a model suitable for all applications. Before beginning
your model, it is important to understand the application requirements for
functionality, ease of use, and performance. The design of the data source and
application requirements will determine the answer to many of the questions
posed in this section.

Where Should You Create Relationships and Determinants?
A frequently asked question is where to create relationships. Should relationships
be created between data source query subjects, between model query subjects, or
between both? The answer may vary because it depends on the complexity of the
data source that you are modeling.
When working with data source query subjects, relationships and determinants
belong together.
When working with model query subjects, there are side effects to using
relationships and determinants that you should consider:
v The model query subject starts to function as a view, which overrides the As
View or Minimized setting in the SQL Generation type for a query subject.
This means that the SQL stays the same no matter which items in the query
subject are referenced. For more information, see “What Is Minimized SQL?” on
page 310.
v The model query subject becomes a stand-alone object.
This means underlying relationships are no longer applied, except those between
the objects that are referenced. It may be necessary to create additional
relationships that were previously inferred from the metadata of the underlying
query subjects.
v When a determinant is created on a model query subject, the determinant is
ignored unless a relationship is also created.
Here is an example of a relationship on a model query subject that purposely
overrides the Minimized SQL setting and simplifies the model. In this example,
Order Header and Order Details are combined so that they behave as a single fact.
They are placed in their own folder and all relationships to them are deleted
except the relationship between Order Header and Order Details. This is the only
relationship that will matter after a model query subject is created and
relationships attached to it.

Chapter 9. Guidelines for Modeling Metadata

309

To decide where to specify relationships and determinants in the model, you must
understand the impact of minimized SQL to your application.
For more information about relationships, determinants, and minimized SQL, see
the Model Advisor topics in the IBM Cognos Framework Manager User Guide.

What Is Minimized SQL?
When you use minimized SQL, the generated SQL contains only the minimal set of
tables and joins needed to obtain values for the selected query items.
To see an example of what minimized SQL means, you can use the following
Product tables. Four query subjects, Product Line, Product Type, Product, and
Product Multilingual all join to each other.

They can be combined in a model query subject.

310

IBM Cognos Framework Manager Version 10.1.1: User Guide

If you test the Products model query subject as a whole, you see that four tables
are referenced in the from clause of the query.
select
PRODUCT_LINE.PRODUCT_LINE_CODE as Product_Line_Code,
PRODUCT_LINE.PRODUCT_LINE_EN as Product_Line,
PRODUCT_TYPE.PRODUCT_TYPE_CODE as Product_Type_Code,
PRODUCT_TYPE.PRODUCT_TYPE_EN as Product_Type,
PRODUCT.PRODUCT_NUMBER as Product_Number,
PRODUCT_MULTILINGUAL.PRODUCT_NAME as Product_Name
PRODUCT_MULTILINGUAL.DESCRIPTION as Product_Description,
PRODUCT.INTRODUCTION_DATE as Introduction_Date,
PRODUCT.PRODUCT_IMAGE as Product_Image,
PRODUCT.PRODUCTION_COST as Production_Cost,
PRODUCT.MARGIN as Margin
from
gosl_82..gosl.PRODUCT_LINE PRODUCT_LINE,
gosl_82..gosl.PRODUCT_TYPE PRODUCT_TYPE,
gosl_82..gosl.PRODUCT PRODUCT,
gosl_82..gosl.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL
where
(PRODUCT_MULTILINGUAL."LANGUAGE" - N’EN’)
and
(PRODUCT_LINE.PRODUCT_LINE_CODE = PRODUCT_TYPE.PRODUCT_LINE_CODE)
and
(PRODUCT_TYPE.PRODUCT_TYPE_CODE = PRODUCT.PRODUCT_TYPE_CODE)
and
(PRODUCT.PRODUCT_NUMBER = PRODUCT_MULTILINGUAL.PRODUCT_NUMBER

If you test only Product name, you see that the resulting query uses only Product
Multilingual, which is the table that was required. This is the effect of minimized
SQL.
select
PRODUCT_MULTILINGUAL.PRODUCT_NAME as Product_Name
from
gosl_82..gosl.PRODUCT_MULTILINGUAL PRODUCT_MULTILINGUAL
where
(PRODUCT_MULTILINGUAL."LANGUAGE" - N’EN")

Example: When Minimized SQL Is Important
If you are modeling a normalized data source, you may be more concerned about
minimized SQL because it will reduce the number of tables used in some requests

Chapter 9. Guidelines for Modeling Metadata

311

and perform better. In this case, it would be best to create relationships and
determinants between the data source query subjects and then create model query
subjects that do not have relationships.
There is a common misconception that if you do not have relationships between
objects, you cannot create star schema groups. This is not the case. Select the
model query subjects to include in the group and use the Star Schema Grouping
wizard. Or you can create shortcuts and move them to a new namespace. There is
no need to have shortcuts to the relationships; this feature is purely visual in the
diagram. The effect on query generation and presentation in the studios is the
same.

Example: When Minimized SQL Is Not as Important as Predictable
Queries
There may be some elements in a data source that you need to encapsulate to
ensure that they behave as if they were one data object. An example might be a
security table that must always be joined to a fact. In the Great Outdoors Sales
model, Order Header and Order Details are a set of tables that together represent a
fact and you would always want them to be queried together. For an example, see
“Where Should You Create Relationships and Determinants?” on page 309.

What Is Metadata Caching?
IBM Cognos Framework Manager stores the metadata that is imported from the
data source. However depending on governor settings and certain actions you take
in the model, this metadata might not be used when preparing a query.
If you enable the Allow enhanced model portability at run time governor,
Framework Manager always queries the data source for information about the
metadata before preparing a query. If you have not enabled this governor, in most
cases Framework Manager accesses the metadata that has been stored in the model
instead of querying the data source. The main exceptions are:
v The SQL in a data source query subject has been modified. This includes the use
of macros.
v A calculation or filter has been added to a data source query subject.
Note: The generated metadata queries are well supported by most relational
database management system vendors and should not have a noticeable impact on
most reporting applications.

Query Subjects vs. Dimensions
Query subjects and dimensions serve separate purposes. The query subject is used
to generate relational queries and may be created using star schema rules, while
the dimension is used for dimensional modeling of relational sources, which
introduces OLAP behavior. Because query subjects are the foundation of
dimensions, a key success criterion for any dimensional model is a sound relational
model.
A dimensional model is required only if you want to use IBM Cognos Analysis
Studio, to enable drilling up and down in reports, or to access member functions
in the studios. For many applications, there is no need for OLAP functionality. For
example, your application is primarily for ad hoc query or reporting with no
requirement for drilling up and down. Or you are maintaining an IBM Cognos
ReportNet model. In these cases, you may choose to publish packages based on
query subjects alone.

312

IBM Cognos Framework Manager Version 10.1.1: User Guide

Determinants for query subjects are not the same as levels and hierarchies for
regular dimensions but they can be closely related to a single hierarchy. If you are
planning to use your query subjects as the foundation for dimensions, you should
consider the structure of the hierarchies you expect to create and ensure that you
have created determinants that will support correct results when aggregating.
Ensure that you have the following:
v The query subject should have a determinant specified for each level of the
hierarchy in the regular dimension.
v The determinants should be specified in the same order as the levels in the
regular dimension.
v If you expect to have multiple hierarchies that aggregate differently, you may
need to consider creating an additional query subject with different determinants
as the source for the other hierarchy.
By creating a complete relational model that delivers correct results and good
performance, you will have a strong foundation for developing a dimensional
model. In addition, by ensuring that a layer of model objects, either query subjects
or dimensions, exists between the data source and the objects exposed to the
studios, you are better able to shield your users from change.

Model Objects vs. Shortcuts
The key difference between model objects and shortcuts is that model objects give
you the freedom to include or exclude items and to rename them. You may choose
to use model objects instead of shortcuts if you need to limit the query items
included or to change the names of items.
Shortcuts are less flexible from a presentation perspective than model objects, but
they require much less maintenance because they are automatically updated when
the target object is updated. If maintenance is a key concern and there is no need
to customize the appearance of the query subject, use shortcuts.
IBM Cognos Framework Manager has two types of shortcuts:
v regular shortcuts, which are a simple reference to the target object.
v alias shortcuts, which behave as if they were a copy of the original object with
completely independent behavior. Alias shortcuts are available only for query
subjects and dimensions.
Regular shortcuts are typically used as conformed dimensions with star schema
groups, creating multiple references with the exact same name and appearance in
multiple places. In the example below, the shortcuts created for Products and
Order Time behave as references. If a query is written that brings Products from
both Product Forecast and Sales Target, the query uses the definition of Products
based on the original and this definition appears only once in the query.

Chapter 9. Guidelines for Modeling Metadata

313

Alias shortcuts are typically used in role-playing dimensions or shared tables.
Because there is already an example in this document for role-playing dimensions,
we will look at the case of shared tables. In this example, Sales Staff and Sales
Branch can be treated as different hierarchies. From our knowledge of the data, we
know that because staff can move between branches, we need to be able to report
orders against Sales Branch and Sales Staff independently as well as together. To
achieve this, we need to create an alias to Sales Branch that can be used as a level
in the Sales Staff hierarchy.

With the new alias shortcut in place, it is possible to create queries that require
orders by sales branch and orders by sales staff with their current branch
information simultaneously.
When you open a model from a previous release, the Shortcut Processing
governor is set to Automatic. When Automatic is used, shortcuts work the same as
in previous releases, that is, a shortcut that exists in the same folder as its target
behaves as an alias, or independent instance, whereas a shortcut existing elsewhere
in the model behaves as a reference to the original. To take advantage of the Treat
As property, it is recommended that you verify the model and, when repairing,
change the governor to Explicit. The repair operation changes all shortcuts to the
correct value from the Treat As property based on the rules followed by the

314

IBM Cognos Framework Manager Version 10.1.1: User Guide

Automatic setting, this means that there should be no change in behavior of your
model unless you choose to make one or more changes to the Treat As properties
of your shortcuts.
When you create a new model, the Shortcut Processing governor is always set to
Explicit.
When the governor is set to Explicit, the shortcut behavior is taken from the Treat
As property and you have complete control over how shortcuts behave without
being concerned about where in the model they are located.

Folders vs. Namespaces
The most important thing to know about namespaces is that once you have begun
authoring reports, any changes you make to the names of published namespaces
will impact your IBM Cognos content. This is because changing the name of the
namespace changes the IDs of the objects published in the metadata. Because the
namespace is used as part of the object ID in IBM Cognos Framework Manager,
each namespace must have a unique name in the model. Each object in a
namespace must also have a unique name. Part of the strategy of star schema
groups is placing shortcuts into a separate namespace, which automatically creates
a unique ID for each object in the namespace. For relational databases, this allows
us to use the same name for shortcuts to conformed dimensions in different star
schema groups.
The next time you try to run a query, report, or analysis against the updated
model, you get an error. If you need to rename the namespace that you have
published, use Analyze Publish Impact to determine which reports are impacted.
Folders are much simpler than namespaces. They are purely for organizational
purposes and do not impact object IDs or your content. You can create folders to
organize objects by subject or functional area. This makes it easier for you to locate
metadata, particularly in large projects.
The main drawback of folders is that they require unique names for all query
subjects, dimensions, and shortcuts. Therefore, they are not ideal for containing
shared objects.

Setting the Order of Operations for Model Calculations
In some cases, usually for ratio-related calculations, it is useful to perform the
aggregation on the calculation terms prior to the mathematical operation.
For example, the following Order details fact contains information about each
order:

Chapter 9. Guidelines for Modeling Metadata

315

Margin is a calculation that computes the ratio of profit:
Margin = (Revenue - Product cost) / Revenue

If we run a query to show Revenue, Product cost, and Margin for each product
using the Order details fact, we get the following results:
Product number

Revenue

Product cost

Margin

1

$23,057,141

$11,292,005

61038%

2

$11,333,518

$6,607,904

49606%

Notice that the value for Margin seems to be wrong. This is because of the order of
operations used in computing Margin. Margin is computed as:
Margin = sum( (Revenue - Product cost) / Revenue )

The aggregation took place after the mathematical operation and, in this case, it
produces undesired results.
To produce the desired values for Margin, we need to aggregate before the
mathematical operation:
Margin = ( sum(Revenue) - sum(Product cost) ) / sum(Revenue)

This produces the following results:
Product number

Revenue

Product cost

Margin

1

$23,057.141

$11,292,005

51.03%

2

$11,333,518

$6,607,904

41.70%

You can accomplish this in IBM Cognos Framework Manager by creating a
stand-alone calculation for Margin and setting its Regular Aggregate property to
Calculated. Each query item in the calculation's expression is aggregated as
specified in its Regular Aggregate property. The Regular Aggregate properties for
Revenue and Product cost are set to Sum and thus, when computing the
calculation, sum is used to aggregate those terms.

316

IBM Cognos Framework Manager Version 10.1.1: User Guide

Note: The calculated aggregation type is not supported for calculations that are
embedded within query subjects. It is supported only for stand-alone calculations
and for calculations that are embedded within measure dimensions and are based
on measures from the same measure dimension.
For example, consider the Margin calculation that is embedded in the Sales
measure dimension:

In this example, Margin is based on the measures Product cost and Revenue that
are within the same measure dimension, Sales. If the Regular Aggregate property
for Margin is set to Calculated, it is rolled up as:
Margin = sum(Revenue - Product cost ) / sum(Revenue)

If Margin is based on the source query items of the measures Product cost and
Revenue (Sales (model).Product cost, Sales (model).Revenue), the calculated
aggregation is not supported and the aggregation behaves as automatic. In this
case, Margin is rolled up as:
Margin = sum( Revenue - Product cost) / Revenue)

For more information about modifying how query items are aggregated, see the
IBM Cognos Framework Manager User Guide.

Impact of Model Size
The size of your model may affect the efficiency of the Framework Manager
application.
Very large models will cause extended processing times and, in extreme cases,
out-of-memory conditions. Actions such as Analyze Publish Impact, Find Report
Dependencies, Publish Packages and Run Model Advisor perform optimally on
models under 50 megabytes.

Dimensional Modeling Concepts
Regular and measure dimensions are used to enable an OLAP presentation of
metadata, drilling up and down, and a variety of OLAP functions. You must use
star schema groups (one fact with multiple dimensions) if you want to use IBM
Cognos Analysis Studio with a relational data source.
When building your model, it is recommended that model regular dimensions and
model measure dimensions be created based on a relational model in which star
schema concepts have been applied.
While you can convert data source query subjects to data source dimensions, data
source dimensions have limited functionality in comparison to query subjects or
model dimensions, and they are not recommended for general use.

Regular Dimensions
Regular dimensions represent descriptive data that provides context for data
modeled in measure dimensions. A regular dimension is broken into groups of
information called levels. In turn, the various levels can be organized into
hierarchies. For example, a product dimension can contain the levels Product Line,
Chapter 9. Guidelines for Modeling Metadata

317

Product Type, and Product organized in a single hierarchy called Product. Another
example is a time dimension that has the levels Year, Quarter, Month, Week, and
Day, organized into two hierarchies. The one hierarchy YQMD contains the levels
Year, Quarter, Month, and Day, and the other hierarchy YWD contains the levels
Year, Week, and Day.
The simplest definition of a level consists of a business key and a caption, each of
these referring to one query item. An instance (or row) of a level is defined as a
member of that level. It is identified by a member unique name, which contains
the values of the business keys of the current and higher levels. For example,
[gosales].[Products].[ProductsOrg].[Product]->[All Products].[1].[1].[2]
identifies a member that is on the fourth level, Product, of the hierarchy
ProductsOrg of the dimension [Products] that is in the namespace [gosales]. The
caption for this product is TrailChef Canteen, which is the name shown in the
metadata tree and on the report.
The level can be defined as unique if the business key of the level is sufficient to
identify each set of data for a level. In the Great Outdoors Sales model, the
members of the Product level do not require the definition of Product type because
there are no product numbers assigned to many different product types. A level
that is not defined as unique is similar to a determinant that uses multiple-part
keys because keys from higher levels of granularity are required. See “Using
Determinants with Multiple-Part Keys” on page 303. If members within ancestor
members are not unique but the level is defined as unique, data for the
non-unique members is reported as a single member. For example, if City is
defined as unique and identified by name, data for London, England and London,
Canada will be combined.
A regular dimension may also have multiple hierarchies; however, you can use
only one hierarchy at a time in a query. For example, you cannot use one hierarchy
in the rows of a crosstab report and another hierarchy from the same dimension in
the columns. If you need both hierarchies in the same report, you must create two
dimensions, one for each hierarchy.

Measure Dimensions
Measure dimensions represent the quantitative data described by regular
dimensions. Known by many terms in various OLAP products, a measure
dimension is simply the object that contains the fact data. Measure dimensions
differ from fact query subjects because they do not include the foreign keys used to
join a fact query subject to a dimensional query subject. This is because the
measure dimension is not meant to be joined as if it were a relational data object.
For query generation purposes, a measure dimension derives its relationship to a
regular dimension through the underlying query subjects. Similarly the
relationship to other measure dimensions is through regular dimensions that are
based on query subjects built to behave as conformed dimensions. To enable
multiple-fact, multiple-grain querying, you must have query subjects and
determinants created appropriately before you build regular dimensions and
measure dimensions.

Scope Relationships
Scope relationships exist only between measure dimensions and regular
dimensions to define the level at which the measures are available for reporting.
They are not the same as joins and do not impact the Where clause. There are no
conditions or criteria set in a scope relationship to govern how a query is formed,
it specifies only if a dimension can be queried with a specified fact. The absence of

318

IBM Cognos Framework Manager Version 10.1.1: User Guide

a scope relationship may result in an error at runtime or cause fact data to be
rolled up at a high level than expected given the other items in the report.
If you set the scope relationship for the measure dimension, the same settings
apply to all measures in the measure dimension. If data is reported at a different
level for the measures in the measure dimension, you can set scope on a measure.
You can specify the lowest level that the data can be reported on.
In this example, the Sales Target measure dimension has only one measure that is
in scope to the Order Month level on the Order Time Dimension and to the
Product level of the Product Dimension. This means that if your users try to drill
beyond the month level, they will see repeated data.

Building the Relational Model
Dimensional modeling of relational data sources is available in IBM Cognos
Framework Manager, however it depends on the existence of a sound relational
model.
IBM Cognos ReportNet provided some dimensional capabilities to enable
multiple-fact querying and to prevent double-counting. Subsequent to IBM Cognos
ReportNet, the IBM Cognos software has features designed explicitly for
dimensional representation of metadata and OLAP capability with relational data
sources. The concepts applied to relational modeling in IBM Cognos ReportNet
have been preserved with a few changes that are documented in the Framework
Manager User Guide.
When you create a new Framework Manager model, you will follow a common set
of steps to define query generation even if you do not intend to use dimensional
modeling capabilities. You must dimensionally model a relational data source
when you want to use it in IBM Cognos Analysis Studio, to enable drilling up and
down in reports, or to access member functions in the studios.

Defining the Relational Modeling Foundation
A model is the set of related objects required for one or more related reporting
applications. A sound relational model is the foundation for a dimensional model.
When you define the relational modeling foundation, consider the following:
v Importing the metadata. For information about importing, see the IBM Cognos
Framework Manager User Guide.
v “Verifying Imported Metadata” on page 320.
v “Resolving Ambiguous Relationships” on page 320.

Chapter 9. Guidelines for Modeling Metadata

319

v Simplifying the relational model using star schema concepts by analyzing
cardinality for facts and dimensions and by deciding where to put relationships
and determinants “Model Design Considerations” on page 309.
v Add data security, if required. For information about data security, see the
Framework Manager User Guide.
Then you can define the dimensional representation of the model if it is required,
and organize the model for presentation.

Verifying Imported Metadata
After importing metadata, you must check the imported metadata.
Verify these areas:
v
v
v
v

relationships and cardinality
determinants
the Usage property for query items
the Regular Aggregate property for query items

Relationships and cardinality are discussed here. For information on the Usage and
Regular Aggregate properties, see the Framework Manager User Guide.
Analyzing the Cardinality for Facts and Dimensions:
The cardinality of a relationship defines the number of rows of one table that is
related to the rows of another table based on a particular set (or join) of keys.
Cardinality is used by IBM Cognos software to infer which query subjects behave
as facts or dimensions. The result is that IBM Cognos software can automatically
resolve a common form of loop join that is caused by star schema data when you
have multiple fact tables joined to a common set of dimension tables.
To ensure predictable queries, it is important to understand how cardinality is used
and to correctly apply it in your model. It is recommended that you examine the
underlying data source schema and address areas where cardinality incorrectly
identifies facts or dimensions that could cause unpredictable query results. The
Model Advisor feature in Framework Manager can be used to help you
understand how the cardinality is interpreted.
For more information, see “Cardinality” on page 299.

Resolving Ambiguous Relationships
Ambiguous relationships occur when the data represented by a query subject or
dimension can be viewed in more than one context or role, or can be joined in
more than one way.
The most common ambiguous relationships are:
v “Role-Playing Dimensions” on page 321
v “Loop Joins” on page 324
v “Reflexive and Recursive Relationships” on page 325
You can use the Model Advisor to highlight relationships that may cause issues
for query generation and resolve them in one of the ways described below. Note
that there are other ways to resolve issues than the ones discussed here. The main
goal is to enable clear query paths.

320

IBM Cognos Framework Manager Version 10.1.1: User Guide

Role-Playing Dimensions:
A table with multiple valid relationships between itself and another table is known
as a role-playing dimension. This is most commonly seen in dimensions such as
Time and Customer.
For example, the Sales fact has multiple relationships to the Time query subject on
the keys Order Day, Ship Day, and Close Day.

Remove the relationships for the imported objects, fact query subjects, and
role-playing dimensional query subjects. Create a model query subject for each
role. Consider excluding unneeded query items to reduce the length of the
metadata tree displayed to your users. Ensure that a single appropriate relationship
exists between each model query subject and the fact query subject. Note: This will
override the Minimized SQL setting but given a single table representation of the
Time dimension, it is not considered to be problematic in this case.

Chapter 9. Guidelines for Modeling Metadata

321

Decide how to use these roles with other facts that do not share the same concepts.
For example, Product forecast fact has only one time key. You need to know your
data and business to determine if all or any of the roles created for Time are
applicable to Product forecast fact.
In this example, you can do one of the following:
v Create an additional query subject to be the conformed time dimension and
name it clearly as a conformed dimension.
Pick the most common role that you will use. You can then ensure that this
version is joined to all facts requiring it. In this example, Close Day has been
chosen.

322

IBM Cognos Framework Manager Version 10.1.1: User Guide

v You can treat Ship Day, Order Day, and Close Day as interchangeable time query
subjects with Product forecast fact.
In this case, you must create joins between each of the role-playing dimensions
and Product forecast fact. You can use only one time dimension at a time when
querying the Product forecast fact or your report may contain no data. For
example, Month_key=Ship Month Key (200401) and Month key=Close Month
Key (200312).

Chapter 9. Guidelines for Modeling Metadata

323

If modeling dimensionally, use each model query subject as the source for a
regular dimension, and name the dimension and hierarchies appropriately. Ensure
that there is a corresponding scope relationship specific to each role.
Loop Joins:
Loop joins in the model are typically a source of unpredictable behavior. This does
not include star schema loop joins.
Note: When cardinality clearly identifies facts and dimensions, IBM Cognos
software can automatically resolve loop joins that are caused by star schema data
when you have multiple fact tables joined to a common set of dimension tables.
In the case of loop joins, ambiguously defined query subjects are the primary sign
of problems. When query subjects are ambiguously defined and are part of a loop
join, the joins used in a given query are decided based on a number of factors,
such as the location of relationships, the number of segments in join paths, and, if
all else is equal, the alphabetically first join path. This creates confusion for your
users and we recommend that you model to clearly identify the join paths.
Sales Staff and Branch provide a good example of a loop join with ambiguously
defined query subjects.
In this example, it is possible to join Branch directly to Order or through Sales Staff
to Order. The main problem is that when Branch and Order are together, you get a
different result than when the join path is Branch to Sales Staff to Order. This is
because employees can move between branches so employees who moved during
the year are rolled up to their current branch even if many of the sales they made
are attributable to their previous branch. Because of the way this is modeled, there

324

IBM Cognos Framework Manager Version 10.1.1: User Guide

is no guarantee which join path will be chosen and it is likely to vary depending
on which items are selected in the query.

Reflexive and Recursive Relationships:
Reflexive and recursive relationships imply two or more levels of granularity. IBM
Cognos Framework Manager imports reflexive relationships but does not use them
when executing queries. Reflexive relationships, which are self-joins, are shown in
the model for the purpose of representation only.
To create a functioning reflexive relationship, you can either create an alias
shortcut, a copy of the data source query subject, or a model query subject. You
then create a relationship between the original query subject and the new one.
Using a model query subject tends to be the better option for flexibility because
you can specify which query items are included in the query subject. Shortcuts are
the better solution from a maintenance perspective. For more information, see
“Model Objects vs. Shortcuts” on page 313.
For example, the Sales Staff query subject has a recursive relationship between
Sales_Staff_Code and Manager_Code.

Chapter 9. Guidelines for Modeling Metadata

325

Create a model query subject to represent Manager. Create a relationship with a
1..1 to 1..n between Manager and Sales Staff. Then merge into a new model
query subject.
For a simple two-level structure using a model query subject for Manager that is
based on Sales Staff, the model looks like this:

For a recursive, balanced hierarchy, repeat this for each additional level in the
hierarchy.
For a deep recursive or unbalanced hierarchy, we recommend that the hierarchy be
flattened in the data source and that you model the flattened hierarchy in one
regular dimension.

Simplifying the Relational Model
You can simplify the model by applying star schema concepts to the dimensional
data and the fact data.
Modeling Query Subjects That Represent Descriptive Data:
IBM Cognos dimensional modeling requires that you apply star schema principles
to the logical layers of the model.

326

IBM Cognos Framework Manager Version 10.1.1: User Guide

Normalized or snowflaked data sources often have several tables that describe a
single business concept. For example, a normalized representation of Product may
include four tables related by 1..n relationships. Each Product Line has one or
more Product Types. Each Product Type has one or more Products. Products have
names and descriptions in multiple languages so they exist in the Product
Multilingual lookup table.

One way to simplify the model is to create one model query subject for each
descriptive business concept. Your users may not know the relationship between
the individual query subjects so it is helpful to group them together; in addition,
having to expand each model object and select a query item requires more effort.
The next step for analysis is to create a regular dimension with a level for each
query subject.
Modeling Fact Data:
Data sources often have master-detail tables that contain facts. For example, when
the Order header and Order details tables are used to insert and update data, the
master-detail structure is beneficial. When these tables are used for reporting and
analysis, you may choose to combine them into one logical business concept to
simplify the model. Or you may choose to insert a dimension between them, such
as Returned Items. Which solution you choose depends on your requirements.

Chapter 9. Guidelines for Modeling Metadata

327

To simplify the model in this example, apply star schema concepts to create one
model query subject that combines the foreign keys of both Order header and
Order details and includes all measures at the Order details level. This query
subject should be joined to the same query subjects that Order header and Order
details were joined to. You may choose to remove the original relationships from
the two data source query subjects except for the relationship that defines the join
between them. For a discussion of the pros and cons of creating relationships to
model query subjects, see the examples in “What Is Minimized SQL?” on page 310.
In the example below, Order header and Order details have been combined into a
new model query subject named Sales. This query subject has been joined to
Product, Time, and Order method.

The next step for analysis is to create a measure dimension based on the model
query subject.

Defining the Dimensional Representation of the Model
Dimensional modeling of relational data sources is a capability made available by
IBM Cognos Framework Manager. You can model dimensions with hierarchies and
levels and have facts with multiple measures. You can then relate the dimensions
to the measures by setting scope in the model.
You must dimensionally model a relational data source when you want to use it in
IBM Cognos Analysis Studio, enable drilling up and down in reports, or access
member functions in the studios.
You can use the relational model as the foundation layer and then define the
dimensional representation of the model.
Then you can organize the model for presentation. See “Organizing the Model” on
page 332.

Creating Regular Dimensions
A regular dimension contains descriptive and business key information and
organizes the information in a hierarchy, from the highest level of granularity to

328

IBM Cognos Framework Manager Version 10.1.1: User Guide

the lowest. It usually has multiple levels and each level requires a key and a
caption. If you do not have a single key for your level, it is recommended that you
create one in a calculation.
Model regular dimensions are based on data source or model query subjects that
are already defined in the model. You must define a business key and a string type
caption for each level. When you verify the model, the absence of business keys
and caption information is detected. Instead of joining model regular dimensions
to measure dimensions, create joins on the underlying query subjects and create a
scope relationship between the regular dimension and the measure dimension.

Modeling Dimensions with Multiple Hierarchies
Multiple hierarchies occur when different structural views can be applied to the
same data. Depending on the nature of the hierarchies and the required reports,
you may need to evaluate the modeling technique applied to a particular case.
For example, sales staff can be viewed by manager or geography. In the IBM
Cognos studios, these hierarchies are separate but interchangeable logical
structures, which are bound to the same underlying query.
Here is sales staff as a single dimension with two hierarchies:

The hierarchies are defined in Framework Manager as follows.

Chapter 9. Guidelines for Modeling Metadata

329

You can specify multiple hierarchies on regular dimensions in Framework
Manager. Multiple hierarchies for a regular dimension behave as views of the same
query. However, you can use only one hierarchy at a time in a query. For example,
you cannot use one hierarchy in the rows of a crosstab report and another
hierarchy from the same dimension in the columns. If you need both hierarchies in
the same report, you must create two dimensions, one for each hierarchy. In cases
where you have multiple hierarchies with significantly different levels or
aggregation, you may choose to model so that a separate query subject with
appropriate determinants exists as the foundation for that hierarchy. The only
requirement is that any query subject used as the basis for a hierarchy must have a
join defined to the query subject that provides the fact data.
Here are separate dimensions for each hierarchy.

330

IBM Cognos Framework Manager Version 10.1.1: User Guide

Use this approach if dramatically different sets of columns are relevant for each
hierarchy and it is more intuitive for your users to model the hierarchies as
separate dimensions with separate and simpler queries.

Creating Measure Dimensions
A measure dimension is a collection of facts. You can create a measure dimension
for one or more query subjects that have a valid relationship between them.
Model measure dimensions should be composed of only quantitative items.
Because, by design, model measure dimensions do not contain keys on which to
join, it is not possible to create joins to model measure dimensions. Instead of
joining model measure dimensions to regular dimensions, create joins on the
underlying query subjects. Then either manually create a scope relationship
between them or detect scope if both dimensions are in the same namespace.

Create Scope Relationships
Scope relationships exist only between measure dimensions and regular
dimensions to define the level at which the measures are available for reporting.
They are not the same as joins and do not impact the Where clause. There are no
conditions or criteria set in a scope relationship to govern how a query is formed,
it specifies only if a dimension can be queried with a specified fact. The absence of
a scope relationship results in an error at runtime.
If you set the scope relationship for the measure dimension, the same settings
apply to all measures in the measure dimension. If data is reported at a different
level for the measures in the measure dimension, you can set scope on a measure.
You can specify the lowest level that the data can be reported on.
When you create a measure dimension, IBM Cognos Framework Manager creates a
scope relationship between the measure dimension and each existing regular
dimension. Framework Manager looks for a join path between the measure
dimension and the regular dimensions, starting with the lowest level of detail. If
there are many join paths available, the scope relationship that Framework
Manager creates may not be the one that you intended. In this case, you must edit
the scope relationship.

Chapter 9. Guidelines for Modeling Metadata

331

Organizing the Model
After working in the relational modeling foundation and creating a dimensional
representation, you can organize the model.
v Keep the metadata from the data source in a separate namespace or folder.
v Create one or more optional namespaces or folders for resolving complexities
that affect querying using query subjects.
To use IBM Cognos Analysis Studio, there must be a namespace or folder in the
model that represents the metadata with dimensional objects.
v Create one or more namespaces or folders for the augmented business view of
the metadata that contains shortcuts to dimensions or query subjects.
Use business concepts to model the business view. One model can contain many
business views, each suited to a different user group. You publish the business
views.
v Create “Star Schema Groups.”
v Apply object security, if required.
v Create packages and publish the metadata.
For information about the topics not covered here, see the Framework Manager
User Guide.

Star Schema Groups
The concept of the conformed dimension is not isolated to dimensional modeling,
it applies equally to query subjects.
Use the Star Schema Grouping wizard to quickly create groups of shortcuts that
will provide context for your users regarding which objects belong together. This
makes the model more intuitive for your users. Star schema groups can also
facilitate multiple-fact reporting by allowing the repetition of shared dimensions in
different groups. This helps your users to see what different groups have in
common and how they can do cross-functional, or multiple-fact, reporting. For
more information, see “Multiple-fact, Multiple-grain Queries” on page 306.
Star schema groups also provide context for queries with multiple join paths. By
creating star schema groups in the business view of the model, you can clarify
which join path to select when many are available. This is particularly useful for
fact-less queries.
Multiple Conformed Star Schemas or Fact-less Queries:
You will likely see dimensional query subjects that are joined to more than one fact
query subject. Join ambiguity is an issue when you report using items from
multiple dimensions or dimensional query subjects without including any items
from the measure dimension or fact query subject. This is called a fact-less query.
For example, Product and Time dimensions are related to the Product forecast and
Sales facts.

332

IBM Cognos Framework Manager Version 10.1.1: User Guide

Using these relationships, how do you write a report that uses only items from
Product and Time? The business question could be which products were forecasted
for sale in 2005 or which products were actually sold in 2005. Although this query
involves only Product and Time, these dimensions are related through multiple
facts. There is no way to guess which business question is being asked. You must
set the context for the fact-less query.
In this example, we recommend that you create two namespaces, one containing
shortcuts to Product, Time, and Product forecast, and another containing Product,
Time, and Sales.

Chapter 9. Guidelines for Modeling Metadata

333

When you do this for all star schemas, you resolve join ambiguity by placing
shortcuts to the fact and all dimensions in a single namespace. The shortcuts for
conformed dimensions in each namespace are identical and are references to the
original object. Note: The exact same rule is applied to regular dimensions and
measure dimensions.
With a namespace for each star schema, it is now clear to your users which items
to use. To create a report on which products were actually sold in 2005, they use
Product and Year from the Sales Namespace. The only relationship that is relevant
in this context is the relationship between Product, Time, and Sales, and it is used
to return the data.

334

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 10. The SQL Generated by IBM Cognos Software
The SQL generated by IBM Cognos software is often misunderstood. This
document explains the SQL that results in common situations.
Note: The SQL examples shown in this document were edited for length and are
used to highlight specific examples. These examples use the version 8.2 sample
model.
To access the IBM Cognos Guidelines for Modeling Metadata documentation in a
different language, go to installation_location\c10\webcontent\documentation and
open the folder for the language you want. Then open ug_best.pdf.

Understanding Dimensional Queries
Dimensional queries are designed to enable multiple-fact querying.
The basic goals of multiple-fact querying are:
v Preserve data when fact data does not perfectly align across common
dimensions, such as when there are more rows in the facts than in the
dimensions.
v Prevent double-counting when fact data exists at different levels of granularity
by ensuring that each fact is represented in a single query with appropriate
grouping. Determinants may need to be created for the underlying query
subjects in some cases.

Single Fact Query
A query on a star schema group results in a single fact query.
In this example, Sales is the focus of any query written. The dimensions provide
attributes and descriptions to make the data in Sales more meaningful. All
relationships between dimensions and the fact are 1-n.

© Copyright IBM Corp. 2005, 2011

335

When you filter on the month and product, the result is as follows.

336

IBM Cognos Framework Manager Version 10.1.1: User Guide

Multiple-fact, Multiple-grain Query on Conformed Dimensions
A query on multiple facts and conformed dimensions respects the cardinality
between each fact table and its dimensions and writes SQL to return all the rows
from each fact table.
For example, Sales and Product Forecast are both facts.

Note that this is a simplified representation and not an example of how this would
appear in a model built using IBM Cognos modeling recommendations.

The Result
Individual queries on Sales and Product Forecast by Month and Product yield the
following results. The data in Sales is actually stored at the day level.

Chapter 10. The SQL Generated by IBM Cognos Software

337

A query on Sales and Product Forecast respects the cardinality between each fact
table and its dimensions and writes SQL to return all the rows from each fact table.
The fact tables are matched on their common keys, month and product, and, where
possible, are aggregated to the lowest common level of granularity. In this case,
days are rolled up to months. Nulls are often returned for this type of query
because a combination of dimensional elements in one fact table may not exist in
the other.

Note that in February 2004, Course Pro Umbrellas were in the forecast but there
were no actual sales. The data in Sales and Product Forecast exist at different levels
of granularity. The data in Sales is at the day level, and Product Forecast is at the
month level.

The SQL
The SQL generated by IBM Cognos software, known as a stitched query, is often
misunderstood. A stitched query uses multiple subqueries, one for each star,
brought together by a full outer join on the common keys. The goal is to preserve
all dimensional members occurring on either side of the query.
The following example was edited for length and is used as an example to capture
the main features of stitched queries.
select
coalesce(D2.MONTH_NAME,D3.MONTH_NAME) as MONTH_NAME,
coalesce(D2.PRODUCT_NAME,D3.PRODUCT_NAME) as PRODUCT_NAME,
D2.EXPECTED_VOLUME as EXPECTED_VOLUME,
D3.QUANTITY as QUANTITY
from (select TIME.MONTH_NAME as MONTH_NAME,
PRODUCT_LOOKUP.PRODUCT_NAME as PRODUCT_NAME,
XSUM(PRODUCT_FORECAST_FACT.EXPECTED_VOLUME for
TIME.CURRENT_YEAR,TIME.QUARTER_KEY,TIME.MONTH_KEY,
PRODUCT.PRODUCT_LINE_CODE, PRODUCT.PRODUCT_TYPE_CODE,
PRODUCT.PRODUCT_KEY) as EXPECTED_VOLUME
from
(select TIME.CURRENT_YEAR as CURRENT_YEAR,
TIME.QUARTER_KEY as QUARTER_KEY,
TIME.MONTH_KEY as MONTH_KEY,
XMIN(TIME.MONTH_NAME for TIME.CURRENT_YEAR,
TIME.QUARTER_KEY,TIME.MONTH_KEY) as MONTH_NAME
from TIME_DIMENSION TIME
group by TIME.MONTH_KEY) TIME
join PRODUCT_FORECAST_FACT PRODUCT_FORECAST_FACT
on (TIME.MONTH_KEY = PRODUCT_FORECAST_FACT.MONTH_KEY)
join PRODUCT PRODUCT on (PRODUCT.PRODUCT_KEY =
PRODUCT_FORECAST_FACT.PRODUCT_KEY)
where
(PRODUCT.PRODUCT_NAME in (’Aloe Relief’,’Course Pro
Umbrella’)) and
(TIME.MONTH_NAME in (’April 2004’,’February 2004’,’February

338

IBM Cognos Framework Manager Version 10.1.1: User Guide

2006’))
group by
TIME.MONTH_NAME,
PRODUCT_LOOKUP.PRODUCT_NAME
) D2
full outer join
(select TIME.MONTH_NAME as MONTH_NAME,
PRODUCT_LOOKUP.PRODUCT_NAME as PRODUCT_NAME,
XSUM(SALES_FACT.QUANTITY for TIME.CURRENT_YEAR,
TIME.QUARTER_KEY, TIME.MONTH_KEY,
PRODUCT.PRODUCT_LINE_CODE, PRODUCT.PRODUCT_TYPE_CODE,
PRODUCT.PRODUCT_KEY ) as QUANTITY
from
select TIME.DAY_KEY,TIME.MONTH_KEY,TIME.QUARTER_KEY,
TIME.CURRENT_YEAR,TIME.MONTH_EN as MONTH_NAME
from TIME_DIMENSION TIME) TIME
join SALES_FACT SALES_FACT
on (TIME.DAY_KEY = SALES_FACT.ORDER_DAY_KEY)
join PRODUCT PRODUCT on (PRODUCT.PRODUCT_KEY = SALES_FACT.PRODUCT_KEY)
where
PRODUCT.PRODUCT_NAME in (’Aloe Relief’,’Course Pro Umbrella’))
and (TIME.MONTH_NAME in (’April 2004’,’February 2004’,’February
2006’))
group by
TIME.MONTH_NAME,
PRODUCT.PRODUCT_NAME
) D3
on ((D2.MONTH_NAME = D3.MONTH_NAME) and
(D2.PRODUCT_NAME = D3.PRODUCT_NAME))

What Is the Coalesce Statement?
A coalesce statement is simply an efficient means of dealing with query items
from conformed dimensions. It is used to accept the first non-null value returned
from either query subject. This statement allows a full list of keys with no
repetitions when doing a full outer join.

Why Is There a Full Outer Join?
A full outer join is necessary to ensure that all the data from each fact table is
retrieved. An inner join gives results only if an item in inventory was sold. A right
outer join gives all the sales where the items were in inventory. A left outer join
gives all the items in inventory that had sales. A full outer join is the only way to
learn what was in inventory and what was sold.

Modeling 1-n Relationships as 1-1 Relationships
If a 1-n relationship exists in the data but is modeled as a 1-1 relationship, SQL
traps cannot be avoided because the information provided by the metadata to the
IBM Cognos software is insufficient.
The most common problems that arise if 1-n relationships are modeled as 1-1 are
the following:
v Double-counting for multiple-grain queries is not automatically prevented.
IBM Cognos software cannot detect facts and then generate a stitched query to
compensate for double-counting, which can occur when dealing with
hierarchical relationships and different levels of granularity across conformed
dimensions.
v Multiple-fact queries are not automatically detected.

Chapter 10. The SQL Generated by IBM Cognos Software

339

IBM Cognos software will not have sufficient information to detect a
multiple-fact query. For multiple-fact queries, an inner join is performed and the
loop join is eliminated by dropping the last evaluated join. Dropping a join is
likely to lead to incorrect or unpredictable results depending on the dimensions
and facts included in the query.
If the cardinality were modified to use only 1-1 relationships between query
subjects or dimensions, the result of a query on Product Forecast and Sales with
Time or Time and Product generates a single Select statement that drops one join
to prevent a circular reference.
The example below shows that the results of this query are incorrect when
compared with the results of individual queries against Sales or Product Forecast.
The results of individual queries are as follows.

When you combine these queries into a single query, the results are as follows.

The SQL
Because a circular join path was detected in the model, the generated SQL did not
include one of the relationships that was not necessary to complete the join path.
In this example, the relationship between Time and Product Forecast was dropped.

340

IBM Cognos Framework Manager Version 10.1.1: User Guide

A circular join path rarely results in a query that produces useful results.
select
TIME_.MONTH_NAME as MONTH_NAME,
PRODUCT_LOOKUP.PRODUCT_NAME as PRODUCT_NAME,
XSUM(SALES_FACT.QUANTITY for
TIME_.CURRENT_YEAR, TIME_.QUARTER_KEY, TIME_.MONTH_KEY,
PRODUCT.PRODUCT_LINE_CODE, PRODUCT.PRODUCT_TYPE_CODE,
PRODUCT.PRODUCT_KEY ) as QUANTITY,
XSUM(PRODUCT_FORECAST_FACT.EXPECTED_VOLUME for TIME_.CURRENT_YEAR,
TIME_.QUARTER_KEY, TIME_.MONTH_KEY, PRODUCT.PRODUCT_LINE_CODE,
PRODUCT.PRODUCT_TYPE_CODE, PRODUCT.PRODUCT_KEY ) as EXPECTED_VOLUME
from
(select TIME.DAY_KEY,TIME.MONTH_KEY, TIME.QUARTER_KEY,
TIME.CURRENT_YEAR,TIME.MONTH_EN as MONTH_NAME
from TIME_DIMENSION TIME) TIME
join
SALES_FACT on (TIME_.DAY_KEY = SALES_FACT.ORDER_DAY_KEY)
join
PRODUCT_FORECAST_FACT on (TIME_.MONTH_KEY =
PRODUCT_FORECAST_FACT.MONTH_KEY)
join
PRODUCT (PRODUCT.PRODUCT_KEY = PRODUCT_FORECAST_FACT.PRODUCT_KEY)
where
(PRODUCT.PRODUCT_NAME in (’Aloe Relief’,’Course Pro Umbrella’))
and
(TIME_.MONTH_NAME in (’April 2004’,’February 2004’,’February 2006’))
group by
TIME_.MONTH_NAME, PRODUCT.PRODUCT_NAME

Multiple-fact, Multiple-grain Query on Non-Conformed
Dimensions
If a non-conformed dimension is added to the query, the nature of the result
returned by the stitched query is changed. It is no longer possible to aggregate
records to a lowest common level of granularity because one side of the query has
dimensionality that is not common to the other side of the query. The result
returned is really two correlated lists.

Chapter 10. The SQL Generated by IBM Cognos Software

341

The Result
The results of individual queries on the respective star schemas look like this.

342

IBM Cognos Framework Manager Version 10.1.1: User Guide

Querying the same items from both star schemas yields the following result.

In this result, the lower level of granularity for records from Sales results in more
records being returned for each month and product combination. There is now a
1-n relationship between the rows returned from Product Forecast and those
returned from Sales.
When you compare this to the result returned in the example of the multiple-fact,
multiple grain query on conformed dimensions, you can see that more records are
returned and that Expected Volume results are repeated across multiple Order
Methods. Adding Order Method to the query effectively changes the relationship
between Quantity data and Expected Volume data to a 1-n relationship. It is no
longer possible to relate a single value from Expected Volume to one value from
Quantity.
Grouping on the Month key demonstrates that the result in this example is based
on the same data set as the result in the multiple-fact, multiple-grain query but
with a greater degree of granularity.

Chapter 10. The SQL Generated by IBM Cognos Software

343

The SQL
The stitched SQL generated for this example is very similar to the SQL generated
in the multiple-fact, multiple-grain query. The main difference is the addition of
Order Method. Order Method is not a conformed dimension and affects only the
query against the Sales Fact table.
select
D2.QUANTITY as QUANTITY,
D3.EXPECTED_VOLUME as EXPECTED_VOLUME,
coalesce(D2.PRODUCT_NAME,D3.PRODUCT_NAME) as PRODUCT_NAME,
coalesce(D2.MONTH_NAME,D3.MONTH_NAME) as MONTH_NAME,
D2.ORDER_METHOD as ORDER_METHOD
from
(select
PRODUCT.PRODUCT_NAME as PRODUCT_NAME,
TIME.MONTH_NAME as MONTH_NAME,
ORDER_METHOD.ORDER_METHOD as ORDER_METHOD,
XSUM(SALES_FACT.QUANTITY for TIME.CURRENT_YEAR,TIME.QUARTER_KEY,
TIME.MONTH_KEY,PRODUCT.PRODUCT_LINE_CODE,PRODUCT.PRODUCT_TYPE_CODE,
PRODUCT.PRODUCT_KEY,ORDER_METHOD_DIMENSION.ORDER_METHOD_KEY) as
QUANTITY
from
PRODUCT_DIMENSION PRODUCT
join
SALES_FACT SALES_FACT
on (PRODUCT.PRODUCT_KEY = SALES_FACT.PRODUCT_KEY)
join
ORDER_METHOD_DIMENSION ORDER_METHOD
on (ORDER_METHOD.ORDER_METHOD_KEY = SALES_FACT.ORDER_METHOD_KEY)
join TIME_DIMENSION TIME
on ( TIME.DAY_KEY = SALES_FACT.ORDER_DAY_KEY)
where
(PRODUCT.PRODUCT_NAME in (’Aloe Relief’,’Course Pro Umbrella’))
and
( TIME.MONTH_NAME in (’April 2004’,’February 2004’,’February 2006’))
group by
PRODUCT.PRODUCT_NAME,
TIME.MONTH_NAME,
ORDER_METHOD.ORDER_METHOD
) D2
full outer join
(select
PRODUCT.PRODUCT_NAME as PRODUCT_NAME,
TIME.MONTH_NAME as MONTH_NAME,
XSUM(PRODUCT_FORECAST_FACT.EXPECTED_VOLUME for TIME.CURRENT_YEAR,
TIME.QUARTER_KEY,TIME.MONTH_KEY,PRODUCT.PRODUCT_LINE_CODE,
PRODUCT.PRODUCT_TYPE_CODE,PRODUCT.PRODUCT_KEY) as EXPECTED_VOLUME
from
PRODUCT_DIMENSION PRODUCT
join
PRODUCT_FORECAST_FACT PRODUCT_FORECAST_FACT
on (PRODUCT.PRODUCT_KEY = PRODUCT_FORECAST_FACT.PRODUCT_KEY)
join
(select
TIME.CURRENT_YEAR as CURRENT_YEAR,
TIME.QUARTER_KEY as QUARTER_KEY,
TIME.MONTH_KEY as MONTH_KEY,
XMIN(TIME.MONTH_NAME for TIME.CURRENT_YEAR, TIME.QUARTER_KEY,
TIME.MONTH_KEY) as MONTH_NAME
from
TIME_DIMENSION TIME
group by
TIME.CURRENT_YEAR,
TIME.QUARTER_KEY,
TIME.MONTH_KEY
) TIME

344

IBM Cognos Framework Manager Version 10.1.1: User Guide

on (TIME.MONTH_KEY = PRODUCT_FORECAST_FACT.MONTH_KEY)
where
(PRODUCT.PRODUCT_NAME in (’Aloe Relief’,’Course Pro Umbrella’))
and
(TIME.MONTH_NAME in (’April 2004’,’February 2004’,’February 2006’))
group by
PRODUCT.PRODUCT_NAME,
TIME.MONTH_NAME
) D3
on ((D2.PRODUCT_NAME = D3.PRODUCT_NAME) and
(D2.MONTH_NAME = D3.MONTH_NAME))

Resolving Ambiguously Identified Dimensions and Facts
A query subject is considered to be ambiguously defined if it participates in both n
and 1 relationships to other query subjects. An ambiguously defined query subject
is not always harmful from a query generation perspective. We suggest that you
evaluate query subjects using the following cases. The goal of this evaluation is to
prevent unnecessary query splits and to ensure that any splits that do occur are
intentional and correct.

Query Subjects That Represent a Level of Hierarchy
One frequent case of an ambiguously defined query subject that is not harmful is
where the query subject represents an intermediate level of a descriptive hierarchy.
One example is the following Product hierarchy.

Chapter 10. The SQL Generated by IBM Cognos Software

345

In this example, both Product type and Product could be identified as being
ambiguously defined. However, this ambiguity is not detrimental to either the
results generated or the performance of any query using one or more of these
query subjects. You do not need to fix this query pattern because, using the rules
for fact detection, only one fact is identified in any query that combines an item
from the Product forecast or Sales query subjects. It remains a best practice to
collapse hierarchies into a single regular dimension when modeling for analysis
purposes.
Some queries that can be written using this example include the following:
Items from these query subjects are used in Query subject that behaves as a fact in the
a query:
query:

346

Product line and Product type

Product type

Product line, Product type, and Product

Product

Product line, Product type, Product, and
Sales

Sales

Product line and Sales

Sales

Product type and Product forecast

Product forecast

IBM Cognos Framework Manager Version 10.1.1: User Guide

Resolving Queries That Should Not Have Been Split
If queries are split and should not be split, you must resolve these queries.
Query subjects on the n side of all relationships are identified as facts. We can see
that in the following example, Order Header and Country Multilingual are
behaving as facts. In reality, the Country Multilingual query subject contains only
descriptive information and seems to be a lookup table. From a dimensional or
business modeling perspective, Country Multilingual is an extension of Country.
Why is it a problem to leave the model like this?

Test this model by authoring a report on the number of orders per city, per country
or region. Using this model returns an incorrect result. The numbers are correct for
the cities but some cities are shown as being in the wrong country or region. This
is an example of an incorrectly related result.

Usually the first place to look when you see something like this is in the SQL.

The SQL
In this example, we see a stitched query, which makes sense if we have multiple
facts in the model. A stitched query is essentially a query that attempts to stitch
multiple facts together. It uses the relationships that relate the facts to each other as
well as the determinants for the conformed, or common, dimensions defined in the
model. A stitched query can be identified by two queries with a full outer join. The
wrapper query must include a coalesce statement on the conformed dimensions.
Note the following problems in the SQL:
v The query has no coalesce statement.
Chapter 10. The SQL Generated by IBM Cognos Software

347

v

RSUM indicates an attempt to create a valid key.

select
D3.COUNTRY as COUNTRY,
D2.CITY as CITY,
D2.number_of_orders as number_of_orders
from
(select
SALES_BRANCH.CITY as CITY,
XCOUNT(ORDER_HEADER.ORDER_NUMBER for SALES_BRANCH.CITY) as
number_of_orders,
RSUM(1 at SALES_BRANCH.CITY order by SALES_BRANCH.CITY
asc local)
as sc
from
gosales.gosales.dbo.SALES_BRANCH SALES_BRANCH
join
gosales.gosales.dbo.ORDER_HEADER ORDER_HEADER
on (SALES_BRANCH.SALES_BRANCH_CODE = ORDER_HEADER.SALES_BRANCH_CODE)
group by
SALES_BRANCH.CITY
order by
CITY asc
) D2
full outer join
(select
COUNTRY_MULTILINGUAL.COUNTRY as COUNTRY,
RSUM(1 at COUNTRY_MULTILINGUAL.COUNTRY order by
COUNTRY_MULTILINGUAL.COUNTRY asc local) as sc
from
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
group by
COUNTRY_MULTILINGUAL.COUNTRY
order by
COUNTRY asc
) D3
on (D2.sc = D3.sc)

By looking at the stitched columns in each query, we see that they are being
calculated on unrelated criteria. This explains why there is no apparent relationship
between the countries or regions and cities in the report.
So why do we see a stitched query? To answer that question, we must look at the
model.
In this example, the query items used in the report came from different query
subjects. Country or region came from Country Multilingual, City came from Sales
Branch, and the Number of Orders came from a count on Order Number in the
Order Header query subject.

348

IBM Cognos Framework Manager Version 10.1.1: User Guide

The problem is that the query splits because the query engine sees this as a
multiple-fact query. However, the split does not have a valid key on which to
stitch because there is no item that both facts have in common.
There is more than one way to solve this problem but both require understanding
the data.

Solution 1
You can add a filter to Country Multilingual that changes the cardinality of the
relationship to 1-1.
Select *
from [GOSL].COUNTRY_MULTILINGUAL
Where
COUNTRY_MULTILINGUAL."LANGUAGE"=’EN’

Or you can add a filter on the relationship and change the cardinality to 1-1.
COUNTRY.COUNTRY_CODE = COUNTRY_MULTILINGUAL.COUNTRY_CODE
and COUNTRY_MULTILINGUAL.LANGUAGE = ’EN’

Either choice results in a model that has a single fact in this query.

Solution 2
Simplify the model by consolidating the related query subjects. This gives the
greatest benefit by simplifying the model and reducing the opportunities for error
in query generation.

Chapter 10. The SQL Generated by IBM Cognos Software

349

With either solution, the result of the query is now correct.

The SQL is no longer a stitched query.
select
Country.c7 as COUNTRY,
SALES_BRANCH.CITY as CITY,
XCOUNT(ORDER_HEADER.ORDER_NUMBER for Country.c7,SALES_BRANCH.CITY)
as number_of_orders
from
(select
COUNTRY.COUNTRY_CODE as c1,
COUNTRY_MULTILINGUAL.COUNTRY as c7
from
gosales.gosales.dbo.COUNTRY COUNTRY
join
gosales.gosales.dbo.COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL
on (COUNTRY.COUNTRY_CODE = COUNTRY_MULTILINGUAL.COUNTRY_CODE)
where COUNTRY_MULTILINGUAL.LANGUAGE=’EN’
) Country
join
gosales.gosales.dbo.SALES_BRANCH SALES_BRANCH
on (SALES_BRANCH.COUNTRY_CODE = Country.c1)
join
gosales.gosales.dbo.ORDER_HEADER ORDER_HEADER
on (SALES_BRANCH.SALES_BRANCH_CODE = ORDER_HEADER.SALES_BRANCH_CODE)
group by
Country.c7,
SALES_BRANCH.CITY

350

IBM Cognos Framework Manager Version 10.1.1: User Guide

Chapter 11. Upgrading models
Upgrading a model prepares it to benefit from the new features in this release.
When you install the latest version of IBM Cognos software, most of the models
created with earlier versions of the product are automatically upgraded. The
packages that you published for users are automatically upgraded in the Content
Manager database. These packages continue to function as they did previously, and
all reports continue to run. Only upgrade the model in IBM Cognos Framework
Manager if you want to modify your published metadata.
If a model does not upgrade successfully, reports that use the model will not run.
You must then open the model in Framework Manager, upgrade it manually, and
republish it.
The process of upgrading models differs depending on whether you are upgrading
a model created in IBM Cognos ReportNet or in earlier versions of IBM Cognos BI.
To upgrade your model, do the following:
v Verify the model before upgrading.
v Open and upgrade the model.
v Verify and repair the upgraded ReportNet model.
To find the most current product documentation, including all translated
documentation, access one of the IBM Cognos Information Centers at
http://publib.boulder.ibm.com/infocenter/cogic/v1r0m0/index.jsp.

Verifying the models before upgrading
The upgrade process does not resolve problems that existed in your model prior to
the upgrade. Before you start the upgrade, verify your model and fix any reported
problems in your existing environment.
When upgrading from IBM Cognos ReportNet to IBM Cognos BI, ensure that the
dimension information is set correctly in the ReportNet model. For more
information, see “Converting dimension information to either determinants or
dimensions” on page 354.

Opening and upgrading the models
When you open an older model in IBM Cognos Framework Manager, you may be
prompted to upgrade the model.
When upgrading the model, you should:
v Understand the impact of the governors that are set during the upgrade.
For more information, see “Upgrade and governors” on page 352.
v Review the changed data types.
For more information, see “Upgrade and data types” on page 352.
v Understand the impact of the upgrade on query subjects based on SAP BW
metadata.
© Copyright IBM Corp. 2005, 2011

351

For more information, see “Upgrade and query subjects that are based on SAP
BW metadata” on page 353.
For more information, see “Upgrading segmented and linked projects” on page
358.

Upgrade and governors
Several governors are set automatically during the upgrade process:
v The Allow enhanced model portability at run time governor “Allow Enhanced
Model Portability at Run Time” on page 288 is selected.
This governor is used when upgrading a ReportNet 1.x model. It prevents rigid
enforcement of data types so that an IBM Cognos BI model can function as a
ReportNet 1.x model until you update the data types in the metadata. After
verifying that the model is upgraded successfully, clear this governor.
The status property of all data source query subjects is set to Needs
Re-evaluation. The query engine ignores the data types in the model that are
flagged as Needs Re-evaluation and retrieves the data type information from
the data source. This may have a slightly negative impact on performance when
running reports.
v The Allow dynamic generation of dimension information governor “Allow
Dynamic Generation of Dimension Information” on page 289 is selected.
This governor ensures consistent behavior with ReportNet by deriving a form of
dimension information from the relationships, key information, and index
information in the data source.
When this governor is selected and a model contains query subjects but no
dimensions, IBM Cognos BI generates queries that avoid double-counting. This
also provides compatibility with ReportNet. When you verify the model, a
warning displays when this governor is selected.
v The Shortcut Processing governor “Shortcut Processing” on page 285 is set to
Automatic.
This governor controls how IBM Cognos BI processes shortcuts. When the
governor is set to Automatic, the model works the same as in ReportNet, that is,
a shortcut that exists in the same folder as its target behaves as an alias or an
independent instance. However, a shortcut that exists elsewhere in the model
behaves as a reference to the original. When you create a new model, this
governor is always set to Explicit.
v The Suppress Null values for SAP BW data sources governor “Suppress Null
Values for SAP BW Data Sources” on page 289 is selected for SAP BW metadata
only.
This governor controls the creation of outer joins in models based on SAP BW
metadata.
Some queries can be very large because null values are not filtered out. Null
suppression removes a row or column for which all of the values in the row or
column are null (empty).
SAP BW performs null suppression. This reduces the amount of data transferred
to the IBM Cognos studios and improves performance.

Upgrade and data types
IBM Cognos Business Intelligence supports data types that are not available in IBM
Cognos ReportNet. This may impact how the data types are mapped during
metadata import when upgrading.

352

IBM Cognos Framework Manager Version 10.1.1: User Guide

Note: Mapping of the data types varies by data source vendor.
The following table shows the main differences between the data types in
ReportNet and in IBM Cognos BI.
ReportNet

IBM Cognos BI

char

nChar

decimal

numeric

varChar

nVarChar

varChar

timestampTZ

varChar

IntervalTZ

Data types are stored in the model so that IBM Cognos BI can avoid accessing the
data source every time it needs to determine the data types for query items. This
results in improved performance.
Some query items, mostly calculations, may display broken after the upgrade. This
may happen under the following circumstances:
v The data type of the underlying items for a calculation was changed and it is
not possible to automatically assign the data type to the calculation.
v A saved calculation containing a prompt was not properly tested.
You must test the affected calculations and correct the issues.

Upgrade and query subjects that are based on SAP BW
metadata
A query subject that is based on SAP BW metadata is not converted to a
dimension. Instead, the upgrade process creates a hidden dimension and a new
model query subject that have the same name and query items as the original
query subject. The model query subject points to the newly created hidden
dimension, which maintains compatibility with existing reports.
Model query subjects that do not contain levels and hierarchies are converted to
measure dimensions.
After upgrading, review the model to ensure that the newly created regular and
measure dimensions meet your analysis and reporting requirements.
After upgrading a ReportNet 1.x model to an IBM Cognos 8.3 model, measures
that were added to the key figures folder for the underlying SAP BW object after
the initial import are not added during the synchronization phase. The solution is
to re-import the object.
This issue does not affect models in later versions of IBM Cognos BI.

Verifying and repairing the upgraded IBM Cognos ReportNet models
This section and its subsections apply only when upgrading models from IBM
Cognos ReportNet to IBM Cognos Business Intelligence.
After updating the metadata, IBM Cognos Framework Manager prompts you to
verify the model. You will see warnings for each object that contains either
Chapter 11. Upgrading models

353

dimension information or one of the data types listed in the section about upgrade
and data types. When verifying large models, check one namespace at a time. You
can also check an individual object.
The repair process first evaluates all selected items. This evaluation automatically
resolves issues with new data types, and prompts you to repair dimension
information in the model. You can select one or more check boxes and repair the
items.
Verifying the model separately from the upgrade process offers a number of
advantages. It allows you to:
v Open an existing model, and upgrade and publish it without any changes in
query functionality.
v Take the time to reassess model requirements.
v Continue to design the production model, publish it without the dimensional
information, and gradually move to dimensions and determinants.
During the upgrade process, you need to
v Convert query subjects with dimension information to either query subjects
with determinants or to dimensions.
v Select and repair objects.
If you make changes to the model before verifying it, do not change the
determinants. Doing so may result in losing the dimension information, and will
not let you verify the model later.

Converting dimension information to either determinants or
dimensions
In IBM Cognos ReportNet, dimension information combined uniqueness with
dimensional hierarchies. In IBM Cognos BI, dimension information for regular
dimensions is divided between determinants and hierarchies. Determinants control
uniqueness and granularity. This control is required for query subjects based on
relational data sources, particularly in multiple-fact, multiple-grain queries.
Hierarchies address dimensional concepts of hierarchies, levels, keys, and attributes
for all data sources.
Query subjects with dimension information are not converted to determinants or to
dimensions during the upgrade. The metadata that the dimension information
previously specified is preserved in the model and continues to exist for the query
subjects until they are repaired. You cannot change the dimension information in
IBM Cognos BI, but you can upgrade this information to determinants or to
dimensions. Until you upgrade the query subjects, IBM Cognos BI uses the
dimension information previously specified in ReportNet. For more information,
see“Dimension information mapping” on page 355.
If you make changes to the model without verifying it after the upgrade, do not
make changes to the determinants. This may cause you to lose the dimensional
information. When reviewing the dimension information, you must understand
how it is applied to the query subject, and how you will use the query subject in a
model in IBM Cognos BI. For more information, see “Post-conversion review” on
page 356.
For more information about working with metadata, see Chapter 9, “Guidelines for
Modeling Metadata,” on page 299.

354

IBM Cognos Framework Manager Version 10.1.1: User Guide

Dimension information mapping
You can map the dimension information in the ReportNet model query subjects
either to query subjects with determinants or to dimensions in the IBM Cognos BI
model.
v Determinants
Use determinants to preserve existing reports while extending your application.
Determinants reflect granularity by representing subsets or groups of data in a
query subject. They ensure correct aggregation of this repeated data.
Determinants are imported based on unique key and index information in the
data source.
Unlike the dimension information, model query subjects inherit determinants
that are specified for the underlying query subjects. Specify the determinants as
early as possible in the model, typically on the data source query subject. In
cases where you specify different determinants for different granularity control,
either create multiple instances of the data source query subject or remove
determinants from the data source query subject. Then create new determinants
on each model query subject that requires different granularity control.
v Dimensions
Use dimensions if you use your model in Analysis Studio, enable drilling up
and down in reports, or access member functions in the studios. Only regular
dimensions are created. During the upgrade, sufficient metadata does not exist
to create measure dimensions so you must create them manually. You can then
relate the dimensions to the measures by setting scope in the model.
If you upgrade query subjects to dimensions, the names of the query items in
your model are changed. For example, a query item previously qualified as
namespace.query subject.query item now is qualified as
namespace.dimension.hierarchy.level.query item. Because this name change may
make existing reports invalid, upgrade query subjects to dimensions only when
you want to leverage an existing model to build a new application that requires
dimensional capability.
Dimension information is mapped to determinants and dimensions as follows.
Dimension information

Determinants

Dimensions

Hierarchies

For relational data sources,
Hierarchies
the first hierarchy creates the
For SAP BW data sources,
determinant.
alternate hierarchies are
upgraded to alternate
hierarchies of a dimension.

Levels

Determinants, either
uniquely identified or group
by

Levels
The first level of the
hierarchy is automatically
defined as the All level. It
contains a single root
member, which represents
the top level of the hierarchy.
You cannot delete or move
the All level. You can change
its name, description, and
screen tip.

Chapter 11. Upgrading models

355

Dimension information

Determinants

Keys

If Unique Key is not selected, _businessKey role
key segments from higher
levels are included in the
key.
If Unique Key is selected,
only the key segment, or
segments, for the level are
included in the key.

Alphabetically first text
attribute
Attributes

Dimensions

Unique Level

_memberCaption role

Attributes
Unassociated attributes are
assigned to the last
determinant, which generally
corresponds to the lowest
level.

Can be manually assigned to
be _memberDescription role,
custom role, or no role

Post-conversion review
After converting query subjects with dimension information to query subjects with
determinants, you must review the following settings:
v Uniquely Identified
When you define a unique determinant, you are indicating that the key contains
enough information to identify a group within the data.
v Group By
You should specify Group By when you define a non-unique determinant. This
indicates to IBM Cognos BI that, when the keys or attributes associated with that
determinant are repeated in the data, it should apply aggregate functions and
grouping to avoid double-counting.
v Multiple, or alternate, hierarchies that existed in ReportNet
If two hierarchies existed on a query subject in ReportNet, only the first
hierarchy is upgraded to a determinant for relational data sources. You must
create a second query subject and manually specify the determinants for the
other hierarchy.
For SAP BW data sources, alternate hierarchies are upgraded to determinants.
After converting query subjects with dimension information to dimensions, you
must review the following settings:
v _businessKey role
This role represents the key for the level and can be assigned to only one
attribute in a level.
v Unique Level
A unique level indicates that the keys of the levels above are not necessary to
identify the members in this level.
v _memberCaption role

356

IBM Cognos Framework Manager Version 10.1.1: User Guide

To leverage member functions in the IBM Cognos studios, you must assign a
_memberCaption role to each level in a dimension. If there are no attributes for
the level, the absence of a caption is highlighted when you verify the model.
All captions must have the string data type. If there is no attribute of this type
available, create a calculation that is a string data type and assign the
_memberCaption role to the new item. This is primarily an issue for Analysis
Studio.
v Attributes
Include attributes in the dimension and associate them with the correct level. By
default, they are included with no role. You can create custom roles or assign
attributes to existing roles.
v Multiple Hierarchies
A regular dimension may have multiple hierarchies; however, you can use only
one hierarchy at a time in a query. For example, you cannot use one hierarchy in
the rows of a crosstab report and another hierarchy from the same dimension in
the columns. If you need both hierarchies in the same report, you must create
two dimensions, one for each hierarchy.

Selecting and repairing objects in the upgraded IBM Cognos
ReportNet models
The repair process first evaluates all selected items. This evaluation automatically
resolves issues with new data types, and prompts you to repair dimension
information in the model.
The following warnings may display when you verify and repair an upgraded
model:
Warning
Needs reevaluation

Description
This message is most often related to data
type changes.
You can select and repair most items with
this warning. Use the repair option to
evaluate and upgrade specific metadata.

Join expression conflicts with the
determinant information defined in the
query subject

None of the query items in this level have a
caption role specified

Sometimes the index and key information
that is specified for a query subject implies a
level of granularity that does not match the
relationships that are specified on a query
subject.
When defining levels, ensure that a business
key and caption roles are specified. These
roles are needed for member functions in the
IBM Cognos studios and to assist in the
member-oriented tree in Analysis Studio.
All captions must have the string data type.
If there is no attribute of this type available,
create a calculation that is a string data type
and assign the member caption role to the
new item. This is primarily an issue for
Analysis Studio.

Chapter 11. Upgrading models

357

Warning
One or more determinants that describe the
keys and attributes of the query subject
should be specified

Description
Determinants are based on key information
in the data source. Determinants may not
exist for a query subject upgraded from
ReportNet, especially for a model query
subject. Use determinants to specify the
granularity of the data in the query subject
and the functional dependencies between
query items. However, it is not mandatory
to specify determinants for query subjects
that represent a single level or fact data.

Upgrading segmented and linked projects
This information applies regardless of the product version from which you are
upgrading.
For segmented projects, segments are automatically upgraded when you open the
master project.
You must upgrade a linked project before upgrading any projects that use the
linked project.
If you have a segmented or linked model that was created with a previous version
of IBM Cognos Framework Manager, you must review the governor settings for
each child and parent model before and after the upgrade. The governor settings
for the top-level parent model are applied when publishing.
If you run a script that was created with a previous version of Framework
Manager, the script bypasses the upgrade process. Review the accuracy of
governor settings before and after running the script.
If a segmented project does not upgrade automatically, perform the following
steps.

Procedure
1. Open each segment as a separate project, starting with the lowest level segment
in the hierarchy.
2. Follow the steps to upgrade the model.
For more information, see Chapter 11, “Upgrading models,” on page 351.
Do not repair the segment.
3.
4.
5.
6.

358

After the upgrade is complete, save the project.
Upgrade each segment in the hierarchy, working back to the main project.
Repair the complete model in the master project.
After upgrading the master project, check in each segment, and then check in
the master project.

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix A. Troubleshooting
You may encounter problems when working in Framework Manager.
For other troubleshooting topics, see the IBM CognosAdministration and Security
Guide.

Unable to Compare Two CLOBs in Oracle
If you are using Oracle and ask IBM Cognos BI to compare two CLOBs, such as
where C2 = C3, you will see an Oracle runtime error.
To avoid this problem, use the DBMS_LOB.compare method:
where 0 = dmbs_lob.compare (c1, c2)

An Out of Memory Error with ERWin Imported Metadata
When you test query subjects based on a View table, an Out of Memory error may
occur while performing the sqlPrepareWithOptions operation.
The solution is to create a data source query subject using the same Content
Manager connection as the ERWin model.

Framework Manager Cannot Access the Gateway URI
When you create a new project in Framework Manager, Framework Manager
cannot access the Gateway URI.
The following message appears:
Unable to access service at URL:
http://hostname:80/ibmcognos/cgi-bin/cognos.cgi/
b_acton=xts.run&m=portal/close.xts
Please check that your gateway URI information is configured correctly and that
the service is available.
For further information please contact your service administrator.
This message appears if the gateway is not properly configured. The gateway URI
must be set to the computer name where IBM Cognos BI is installed and reflect the
type of gateway you are using. You must log on as an administrator to configure
the gateway URI.

Procedure
1. Close Framework Manager.
2. In IBM Cognos Configuration, in the Explorer window, click Environment.
3. In the Properties window, in the Gateway URI box, type the appropriate value:
v To use ISAPI, replace cognos.cgi with cognosisapi.dll.
© Copyright IBM Corp. 2005, 2011

359

v To use apache_mod, replace cognos.cgi with mod_cognos.dll.
v To use a servlet gateway, type the following:
http[s]://host:port/ context_name /servlet/Gateway
Note: context_name is the name you assigned to the ServletGateway Web
application when you deployed the ServletGateway WAR file.
v If you are not using a Web server, to use the dispatcher as the gateway, type
the following:
http[s]:// host : port /p2pd/servlet/dispatch
4. If required, change the host name portion of the Gateway URI from localhost
to either the IP address of the computer or the computer name.
5. From the File menu, click Save.
6. From the Actions menu, click Restart.

Object Names Appear in the Wrong Language
When you import multiple languages from an SAP BW Query to a Framework
Manager model, not all the object names retrieved from SAP BW appear in the
correct language.
To avoid this problem, save the SAP BW Query again in each of the logon
languages in Business Explorer Query Designer. The correct language texts will
then show correctly in Framework Manager.

Full Outer Joins in Oracle Return Incorrect Results
When using an Oracle data source prior to version 10.2, full outer joins return
incorrect data results. To avoid this problem, IBM Cognos BI processes these as
local operations.
As a result of this processing, you must set the query processing to limitedLocal
for any projects that expect explicit or implicit outer joins.

Error When Testing Query Subjects in a Model Imported from Teradata
You are using a model imported from Teradata. When you test some query
subjects that contain graphic items, you see this error:
QE-DEF-0177 An error occurred while performing operation 'sqlOpenResult'
status='-28'.
UDA-SQL-0114 The cursor supplied to the operation "sqlOpenResult" is inactive.
UDA-SQL-0107 A general exception has occurred during the operation
"SgiCursor::doOpenResult()".
[NCR][ODBC Teradata Driver][Teradata RDBMS] An unknown character string
translation was requested.
The reason is that the GRAPHIC and VARGRAPHIC data types are not supported.

Error for Type-In SQL Query Subject
You define the following in DB2:

360

IBM Cognos Framework Manager Version 10.1.1: User Guide

create type address as (
number character (6),
street varchar(35),
city varchar(35)
)
MODE DB2SQL;
create table emp ( emp_no int, emp_address address);
Select e.emp_no, e.emp_address..street from emp e
SQL0206N "aBmtQuerySubject.2

When you define a type-in SQL query subject, an error appears because of the
name assigned for the attribute reference in the structured type.
To resolve this problem, you have two options:
v assign a simple correlation name to the column in the original query subject,
such as Select e.emp_no, e.emp_address..street as "ABC" from emp e
v use pass-through notation for the query subject by surrounding the column with
double curly brackets ({{ }})

QE-DEF-0259 Error
This error occurs if you use braces { } in the wrong position in an expression. IBM
Cognos BI expects anything between the braces { } to be at the same level as a
function. If you have used braces elsewhere in an expression, you will see the
following error message:
QE-DEF-0259 There was a parsing error
You can also use braces to send unique syntax to the data source. For example,
your database uses a keyword for a function, but this keyword is not used in IBM
Cognos BI.
IBM Cognos BI does not validate the syntax you enter between braces. The syntax
is simply sent to the data source.
The solution is to make sure that braces are not used in the wrong positions.
For example, you type the following in an expression:
[ss_ole_both].[authors_lith].[au_id] = [ss_ole_both].[authors_latin].[au_id]
{ collate Lithuanian_CI_AI}

You see the following error message:
QE-DEF-0259 There was a parsing error before or near position: 75, text starting at
position: 5 "le_both].[authors_lith].[au_id]=[ss_ole_both].[authors_latin].[au_id]{"
Meanwhile the following expression is valid:
{ Q3.au_id }
}

=

{ Q4.au_id collate lithuanian_CI_AI

Externalized Key Figures Dimension Retains Old Prompt Value
You have a key figures dimension (SAP BW) that contains an optional prompt. If
you externalize this dimension as a csv or tab file, the externalized file does not
contain all the rows of data. This is because the prompt value is retained.

Appendix A. Troubleshooting

361

For example, you set the prompt value for the dimension when testing the
dimension in Framework Manager. The prompt value is kept in the cache. Even if
you clear the value of the prompt in the Prompt dialog box, externalizing the key
figures dimension results in a file containing data that is filtered by the most
recently used prompt.
To avoid this problem, do one of the following:
v Do not test the key figures dimension before you externalize it.
v Close the model, open it again, and externalize the key figures dimension.

Older Models Display Level Object Security
If you are using a previously-created IBM Cognos model, object security on a level
may have been defined. Object security on a level is not supported.
The solution is to verify and repair the older model before publishing it.

Procedure
1. From the Project menu, click Verify Model.
2. Select the security view that references a level and click Repair.

Exporting a Framework Manager Model to a CWM File Fails With Error
MILOG.TXT was not found
Exporting a Framework model to a CWM file fails with error MILOG.TXT was not
found when the path contains Japanese characters.
Do one of the following to solve this problem:
v Specify an export path that does not use Japanese characters.
v Change the system default language on your computer to Japanese. You can set
the system default language in the Control Panel, under Regional and Language
Options -> Advanced. For more information on how to do this, refer to the
Windows operating system help.

Difference in SQL for Inner Joins After Upgrading to IBM Cognos BI,
Version 8.3 and Later
If you migrated from a version of the product earlier than 8.3, there can be
differences in the generation of SQL used for the INNER JOIN syntax.
You can control the SQL syntax used for inner joins by configuring the setting for
the SQL Join Syntax governor. The SQL join syntax generated in all versions of
IBM Cognos BI produces the same result.
If you are using RDBMS materialization technology which can be implemented
using either implicit or explicit syntax, you must ensure that you select the same
syntax setting for the SQL Join Syntax governor in your model.

362

IBM Cognos Framework Manager Version 10.1.1: User Guide

Full Outer Joins Not Sent to Oracle 9i and 10GR1
By default, IBM Cognos BI will not send full outer joins to ORACLE 9i and 10GR1
due to Oracle bug #2874433. This requires using limited local processing in IBM
Cognos BI.
To enable full outer joins with Oracle, you must
v ensure that you have the required patch sets, which include the fix for
bug#2874433
v modify the cogdmor.ini file to turn on full outer joins (Full_outer_join=T)
Because any manual edits to the ini settings are overwritten by the next
installation, you must manually replicate them on all machines where you installed
IBM Cognos BI or Framework Manager.

Unexplained Discrepancies in Number Calculations
You might find unexplained discrepancies in number calculations due to round-off
errors.
For example:
v You run regression tests and find differences in numbers. They are different only
because of the rounding off of decimal places.
v You choose not display zeros in reports, but the zeros are displayed anyway
because there are decimal places (0.00000000000000426, for example) that are
rounded off to zero in reports.
Round-off problems are not specific to IBM Cognos software. They can occur in
any environment where rounding off occurs.

Binary Round-Off Errors
Discrepancies in calculations might occur due to binary round-off errors. For
example, if the number 1.1 is represented as a binary floating point number and
your report format includes a large number of decimal places, the number 1.1
might actually be something like 1.09999999999997.
If your report is formatted to use only one decimal point, decimal round-off takes
place, compensating for the binary round-off. So the number appears to be 1.1
when it is really 1.09999999999997. When the number is used in calculations, you
might get round-off errors. For example, Microsoft Excel calculations use binary
numbers (without rounding off decimal places) but formatting in reports shows
rounded off decimal places, which can create small discrepancies.

Division Round-Off Errors
Calculations that involve division typically incur round-off errors, regardless of
how the numbers are represented. Examples of such calculations are Average and
Percent of Base.

Design Guidelines to Minimize Round-Off Effect
The best solution is to change the underlying database schema or cube model but
that may not always be possible. Another solution is to minimize the round-off

Appendix A. Troubleshooting

363

effect by following these guidelines when authoring reports and creating models in
IBM Cognos Framework Manager and external OLAP cubes:
v Avoid storing data in floating point format whenever possible. This is especially
true for currency values, which should be stored as either fixed-point decimals
or as integers with a scale value such as 2.
For example, in a cube, the Revenue for Camping Equipment in 2004 is
$20,471,328.88. If revenue details are stored as floating point numbers, round-off
errors might occur when revenue is calculated.
The round up errors might have slight differences, depending on the order of
calculation. If revenue for Products is calculated first and revenue for Time is
calculated second, you might get a different round-off error than if Time is
calculated first and Products is calculated second.
Total revenue might be calculated as the number above. Or there might be slight
discrepancies, for example, $20,471,328.8800001 as opposed to $20,471,328.88. The
internal number might be slightly different than what is displayed. The number
might even be for different runs of the same report, depending on the order that
the OLAP engine uses for calculation.
v In reports, avoid division whenever possible. When division is unavoidable, try
to do it as late as possible in the calculation process. For example, instead of
Total([Revenue]/1000), use Total([Revenue])/1000.
v When doing comparisons, add a margin to allow for round-off. For example,
you may want [Profit %] to be a fractional value formatted as a percentage with
no decimals. However, the filter [Profit %]<>0 (or [Profit %] NOT BETWEEN 0
and 0) rejects zero values and may still return values that appear to be 0% after
formatting.
To avoid this, filter in one of these two ways:
– [Profit %] NOT BETWEEN -0.005 and 0.005
– ([Profit %] <- 0.005) OR ([Profit %]> 0.005)
Note that 0.005 is equivalent to 0.5%, which displays as either 0% or 1%,
depending on floating point precision losses.In come cases, you may prefer
control round-off errors by rounding values explicitly. For example, instead of
[Profit %], use round([Profit %],2).
v Recalculate numbers every time instead of reusing calculations that might
contain rounded off decimals.
There might be additional considerations for Microsoft Analysis Services
2005/2008, especially when comparing report results from different runs (as
happens in Lifecycle Manager). Refer to Microsoft documentation for more
information.

364

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix B. Using the expression editor
An expression is any combination of operators, constants, functions, and other
components that evaluates to a single value. You build expressions to create
calculation and filter definitions. A calculation is an expression that you use to
create a new value from existing values contained within a data item. A filter is an
expression that you use to retrieve a specific subset of records.

Searching for values may return unexpected results
In the expression editor, when searching for values for a data item, the results you
obtain may contain unexpected results if the data item is not a string data type.
Because you can edit the expression for a data item, IBM Cognos Business
Intelligence cannot determine with certainty what the data type is.
Therefore, IBM Cognos BI guesses the data type of the data item by looking at its
aggregate and rollup aggregate set.

Calculation components
You can build calculations, or expressions, in the expression editor using the
components that are defined in this section.

Operators
Operators specify what happens to the values on either side of the operator.
Operators are similar to functions, in that they manipulate data items and return a
result.

(
Identifies the beginning of an expression.

Syntax
( expression )

)
Identifies the end of an expression.

Syntax
( expression )

*
Multiplies two numeric values.

Syntax
value1 * value2

,
Separates expression components.

Syntax
expression ( parameter1, parameter2 )

© Copyright IBM Corp. 2005, 2011

365

/
Divides two numeric values.

Syntax
value1 / value2

||
Concatenates, or joins, strings.

Syntax
string1 || string2

+
Adds two numeric values.

Syntax
value1 + value2

Subtracts two numeric values or negates a numeric value.

Syntax
value1 - value2
or
- value

<
Compares the values that are represented by "value1" against "value2" and
retrieves the values that are less than "value2".

Syntax
value1 < value2

<=
Compares the values that are represented by "value1" against "value2" and
retrieves the values that are less than or equal to "value2".

Syntax
value1 <= value2

<>
Compares the values that are represented by "value1" against "value2" and
retrieves the values that are not equal to "value2".

Syntax
value1 <> value2

=
Compares the values that are represented by "value1" against "value2" and
retrieves the values that are equal to "value2".

Syntax
value1 = value2

366

IBM Cognos Framework Manager Version 10.1.1: User Guide

>
Compares the values that are represented by "value1" against "value2" and
retrieves the values that are greater than "value2".

Syntax
value1 > value2

->
Separates the components in a literal member expression.

Syntax
[namespace].[dimension].[hierarchy].[level]->[L1]

>=
Compares the values that are represented by "value1" against "value2" and
retrieves the values that are greater than or equal to "value2".

Syntax
value1 >= value2

and
Returns "true" if the conditions on both sides of the expression are true.

Syntax
argument1 and argument2

auto
Works with summary expressions to define the scope to be adjusted based on the
grouping columns in the query. The scope is context-dependent.

Syntax
aggregate_function ( expression AUTO )

between
Determines if a value falls in a given range.

Syntax
expression between value1 and value2

Example
[Revenue] between 200,000 and 300,000

Result: Returns the number of results with revenues between 200,000 and 300,000.
Revenue

Between

----

----

$332,986,338.06

false

$230,110,270.55

true

$107,099,659.94

false

Appendix B. Using the expression editor

367

case
Works with when, then, else, and end. Case identifies the beginning of a specific
situation, in which when, then, and else actions are defined.

Syntax
case expression { when expression then expression } [ else expression ] end

contains
Determines if "string1" contains "string2".

Syntax
string1 contains string2

currentMeasure
Keyword that can be used as the first argument of member summary functions.
This function appears in the Total Revenue by Country or Region sample report in
the GO Data Warehouse (query) package.

Syntax
aggregate_function ( currentMeasure within set expression )

default
Works with the lookup construct.

Syntax
lookup (....) in (....) default (....)

distinct
A keyword used in an aggregate expression to include only distinct occurrences of
values. See also the function unique.

Syntax
distinct dataItem

Example
count ( distinct [OrderDetailQuantity] )

Result: 1704

else
Works with the if or case constructs. If the if condition or the case expression are
not true, then the else expression is used. This function appears in the Top 10
Retailers for 2005 sample report in the GO Data Warehouse (analysis) package.

Syntax
if ( condition ) then .... else ( expression ) ,
or case .... else ( expression ) end

end
Indicates the end of a case or when construct.

Syntax
case .... end

368

IBM Cognos Framework Manager Version 10.1.1: User Guide

ends with
Determines if "string1" ends with "string2".

Syntax
string1 ends with string2

for
Works with summary expressions to define the scope of the aggregation in the
query.

Syntax
aggregate_function ( expression for expression { , expression } )

for all
Works with summary expressions to define the scope to be all the specified
grouping columns in the query. See also the for clause.

Syntax
aggregate_function ( expression for ALL expression { , expression } )

for any
Works with summary expressions to define the scope to be adjusted based on a
subset of the grouping columns in the query. Equivalent to the for clause.

Syntax
aggregate_function ( expression for ANY expression { , expression } )

for report
Works with summary expressions to set the scope to be the whole query. See also
the for clause. This function appears in the Customer Returns and Satisfaction
sample report in the GO Data Warehouse (analysis) package.

Syntax
aggregate_function ( expression for report )

if
Works with the then and else constructs. If defines a condition; when the if
condition is true, the then expression is used. When the if condition is not true, the
else expression is used. This function appears in the Top 10 Retailers for 2005
sample report in the GO Data Warehouse (analysis) package.

Syntax
if ( condition ) then ( expression ) else ( expression )

in
Determines if "expression1" exists in a given list of expressions.

Syntax
expression1 in ( expression_list )

in_range
Determines if "expression1" exists in a given list of constant values or ranges.

Syntax
expression1 in_range { constant : constant [ , constant : constant ] }
Appendix B. Using the expression editor

369

Example 1
[code] in_range { 5 }

Result: This is equivalent to [code] = 5.

Example 2
[code] in_range { 5: }

Result: This is equivalent to [code] >= 5.

Example 3
[code] in_range { :5 }

Result: This is equivalent to [code] <= 5.

Example 4
[code] in_range { 5:10 }

Result: This is equivalent to ( [code] >= 5 and [code] <= 10 ).

Example 5
[code] in_range { :5,10,20: }

Result: This is equivalent to ( [code] <= 5 or [code] = 10 or [code] >= 20 ).

is missing
Determines if "value" is undefined in the data.

Syntax
value is missing

is null
Determines if "value" is undefined in the data.

Syntax
value is null

is not missing
Determines if "value" is defined in the data.

Syntax
value is not missing

is not null
Determines if "value" is defined in the data.

Syntax
value is not null

like
Determines if "string1" matches the pattern of "string2".

Syntax
string1 LIKE string2

370

IBM Cognos Framework Manager Version 10.1.1: User Guide

lookup
Finds and replaces data with a value you specify. It is preferable to use the case
construct.

Syntax
lookup ( name ) in ( value1 --> value2 ) default ( expression )

Example
lookup ( [Country]) in ( ’Canada’--> ( [List Price] * 0.60),
’Australia’--> ( [List Price] * 0.80 ) ) default ( [List Price] )

not
Returns TRUE if "argument" is false or returns FALSE if "argument" is true.

Syntax
NOT argument

or
Returns TRUE if either of "argument1" or "argument2" are true.

Syntax
argument1 or argument2

prefilter
Performs a summary calculation before applying the summary filter.

Syntax
summary ([expression] prefilter)

rows
Counts the number of rows output by the query. Use with Count ().

Syntax
count ( ROWS )

starts with
Determines if "string1" starts with "string2".

Syntax
string1 starts with string2

then
Works with the if or case constructs. When the if condition or the when expression
are true, the then expression is used. This function is displayed in the Top 10
Retailers for 2005 sample report in the GO Data Warehouse (analysis) package.

Syntax
if ( condition ) then ..., or case expression when expression then .... end

when
Works with the case construct. You can define conditions to occur when the when
expression is true.

Syntax
case [expression] when ... end
Appendix B. Using the expression editor

371

Summaries
This list contains predefined functions that return either a single summary value
for a group of related values or a different summary value for each instance of a
group of related values.

aggregate
Returns a calculated value using the appropriate aggregation function, based on
the aggregation type of the expression. This function appears in the Budget vs.
Actual sample report in the GO Data Warehouse (analysis) package.

Syntax
aggregate ( expression [ auto ] )
aggregate ( expression for [ all|any ] expression { , expression } )
aggregate ( expression for report )

average
Returns the average value of selected data items. Distinct is an alternative
expression that is compatible with earlier versions of the product.

Syntax
average ( [ distinct ] expression [ auto ] )
average ( [ distinct ] expression for [ all|any ] expression { , expression } )
average ( [ distinct ] expression for report )

Example
average ( Sales )

Result: Returns the average of all Sales values.

count
Returns the number of selected data items excluding null values. Distinct is an
alternative expression that is compatible with earlier versions of the product.

Syntax
count ( [ distinct ] expression [ auto ] )
count ( [ distinct ] expression for [ all|any ] expression { , expression } )
count ( [ distinct ] expression for report )

Example
count ( Sales )

Result: Returns the total number of entries under Sales.

maximum
Returns the maximum value of selected data items. Distinct is an alternative
expression that is compatible with earlier versions of the product.

Syntax
maximum ( [ distinct ] expression [ auto ] )
maximum ( [ distinct ] expression for [ all|any ] expression { , expression } )
maximum ( [ distinct ] expression for report )

Example
maximum ( Sales )

Result: Returns the maximum value out of all Sales values.

372

IBM Cognos Framework Manager Version 10.1.1: User Guide

median
Returns the median value of selected data items.

Syntax
median ( expression [ auto ] )
median ( expression for [ all|any ] expression { , expression } )
median ( expression for report )

minimum
Returns the minimum value of selected data items. Distinct is an alternative
expression that is compatible with earlier versions of the product.

Syntax
minimum ( [ distinct ] expression [ auto ] )
minimum ( [ distinct ] expression for [ all|any ] expression { , expression } )
minimum ( [ distinct ] expression for report )

Example
minimum ( Sales )

Result: Returns the minimum value out of all Sales values.

moving-average
Returns a moving average by row for a specified set of values of over a specified
number of rows. The "" defines the scope of the function. The "at"
option defines the level of aggregation and can be used only in the context of
relational data sources.

Syntax
moving-average ( numeric_expression , numeric_expression
[ at expression { , expression } ] ] [ prefilter ] )
moving-average ( numeric_expression , numeric_expression [  ]
[ prefilter ] )  ::= for expression
{ , expression }|for report|auto

Example
moving-average ( Qty , 3 )

Result: For each row, returns the quantity and a moving average of the current row
and the preceding two rows.
Qty

Moving-Average (Qty, 3)

------

------------------------------------

200

200

700

450

400

433.3333

200

433.3333

200

266.6667

500

300.0000

Appendix B. Using the expression editor

373

moving-total
Returns a moving total by row for a specified set of values over a specified
number of rows. The "" defines the scope of the function. The "at"
option defines the level of aggregation and can be used only in the context of
relational data sources.

Syntax
moving-total ( numeric_expression , numeric_expression
[ at expression { , expression } ][  ] [ prefilter ] )
moving-total ( numeric_expression , numeric_expression [  ]
[ prefilter ] )  ::= for expression { , expression }|for report|auto

Example
moving-total ( Qty , 3 )

Result: For each row, returns the quantity and a moving total of the current row
and the preceding two rows.
Qty

Moving-Total (Qty, 3)

------

--------------------------------

200

200

700

900

400

1300

200

1300

200

800

500

900

percentage
Returns the percent of the total value for selected data items. The ""
defines the scope of the function. The "at" option defines the level of aggregation
and can be used only in the context of relational data sources. This function is
displayed in the Percentage Calculation (by year) interactive sample report.

Syntax
percentage ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
percentage ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
percentage ( Sales 98 )

Result: Returns the percentage of the total sales for 1998 that is attributed to each
sales representative.

374

IBM Cognos Framework Manager Version 10.1.1: User Guide

Sales Rep

Sales 98

Percentage

----------

---------

-------------

Gibbons

60646

7.11%

Flertjan

62523

7.35%

Cornel

22396

2.63%

percentile
Returns a value, on a scale of one hundred, that indicates the percent of a
distribution that is equal to or below the selected data items. The ""
defines the scope of the function. The "at" option defines the level of aggregation
and can be used only in the context of relational data sources.

Syntax
percentile ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
percentile ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
percentile ( Sales 98 )

Result: For each row, returns the percentage of rows that are equal to or less than
the quantity value of that row.
Qty

Percentile (Qty)

------

-----------------

800

1

700

0.875

600

0.75

500

0.625

400

0.5

400

0.5

200

0.25

200

0.25

quantile
Returns the rank of a value within a range that you specify. It returns integers to
represent any range of ranks, such as 1 (highest) to 100 (lowest). The
"" defines the scope of the function. The "at" option defines the level of
aggregation and can be used only in the context of relational data sources.

Appendix B. Using the expression editor

375

Syntax
quantile ( numeric_expression , numeric_expression
[ at expression { , expression } ] [  ] [ prefilter ] )
quantile ( numeric_expression , numeric_expression
[  ] [ prefilter ] )  ::=
for expression { , expression }|for report|auto

Example
quantile ( Qty , 4 )

Result: Returns the quantity, the rank of the quantity value, and the quantity
values broken down into 4 quantile groups (quartiles).
Qty

Rank (Qty)

Quantile (Qty, 4)

------

---------

---------------

800

1

1

700

2

1

600

3

2

500

4

2

400

5

3

400

5

3

200

7

4

200

7

4

quartile
Returns the rank of a value, represented as integers from 1 (highest) to 4 (lowest),
relative to a group of values. The "" defines the scope of the function.
The "at" option defines the level of aggregation and can be used only in the context
of relational data sources.

Syntax
quartile ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
quartile ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
quartile ( Qty )

Result: Returns the quantity and the quartile of the quantity value represented as
integers from 1 (highest) to 4 (lowest).

376

IBM Cognos Framework Manager Version 10.1.1: User Guide

Qty

Quartile (Qty)

------

---------------------

450

1

400

1

350

2

300

2

250

3

200

3

150

4

100

4

rank
Returns the rank value of selected data items. The sort order is optional;
descending order (DESC) is assumed by default. If two or more rows tie, then
there is a gap in the sequence of ranked values (also known as Olympic ranking).
The "" defines the scope of the function. The "at" option defines the
level of aggregation and can be used only in the context of relational data sources.
Distinct is an alternative expression that is compatible with earlier versions of the
product. Null values are ranked last. This function is displayed in the Top 10
Retailers for 2005 sample report in the GO Data Warehouse (analysis) package.

Syntax
rank ( expression [ ASC|DESC ] { , expression [ ASC|DESC ] }
[ at expression { , expression } ] [  ] [ prefilter ] )
rank ( [ distinct ] expression [ ASC|DESC ] { , expression [ ASC|DESC ] }
[ ] [ prefilter ] )  ::= for expression
{ , expression }|for report|auto

Example
rank ( Sales 98 )

Result: For each row, returns the rank value of sales for 1998 that is attributed to
each sales representative. Some numbers are skipped when a tie between rows
occurs.
Sales Rep

Sales 98

Rank

---------

---------

------------

Gibbons

60000

1

Flertjan

50000

2

Cornel

50000

2

Smith

48000

4

Appendix B. Using the expression editor

377

running-average
Returns the running average by row (including the current row) for a set of values.
The "" defines the scope of the function. The "at" option defines the
level of aggregation and can be used only in the context of relational data sources.

Syntax
running-average ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
running-average ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
running-average ( Qty )

Result: For each row, returns the quantity and a running average of the current
and the previous rows.
Name

Qty

Avg

-------

------

------

Smith

7

5

Smith

3

5

Smith

6

5

Smith

4

5

Wong

3

4

Wong

5

4

Running-Average for
name
----------------------7
5
5.33
5
3
4

running-count
Returns the running count by row (including the current row) for a set of values.
The "" defines the scope of the function. The "at" option defines the
level of aggregation and can be used only in the context of relational data sources.

Syntax
running-count ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
running-count ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
running-count ( Qty )

Result: For each row, returns the quantity and a running count of the position of
the current row.

378

IBM Cognos Framework Manager Version 10.1.1: User Guide

Name

Qty

Count

-------

------

---------

Smith

7

4

Smith

3

4

Smith

6

4

Smith

4

4

Wong

3

3

Wong

5

3

Running-Count for
name
-----------------------1
2
3
4
1
2

running-difference
Returns a running difference by row, calculated as the difference between the value
for the current row and the preceding row, (including the current row) for a set of
values. The "" defines the scope of the function. The "at" option
defines the level of aggregation and can be used only in the context of relational
data sources.

Syntax
running-difference ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
running-difference ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
running-difference ( Qty )

Result: For each row, returns the quantity and a running difference between the
value for the current row and the preceding row.
Name

Qty

Running-Difference for name

-------

------

---------------------------

Smith

7

NULL

Smith

3

-4

Smith

6

3

Smith

4

-2

Wong

3

-1

Wong

5

2

running-maximum
Returns the running maximum by row (including the current row) for a set of
values. The "" defines the scope of the function. The "at" option
defines the level of aggregation and can be used only in the context of relational
data sources.
Appendix B. Using the expression editor

379

Syntax
running-maximum ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
running-maximum ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
running-maximum ( Qty )

Result: For each row, returns the quantity and a running maximum of the current
and previous rows.
Name

Qty

Max

-------

------

------

Smith

2

7

Smith

3

7

Smith

6

7

Smith

7

7

Wong

3

5

Wong

5

5

Running-Maximum
(Qty) for name
------------------------2
3
6
7
3
5

running-minimum
Returns the running minimum by row (including the current row) for a set of
values. The "" defines the scope of the function. The "at" option
defines the level of aggregation and can be used only in the context of relational
data sources.

Syntax
running-minimum ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
running-minimum ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
running-minimum ( Qty )

Result: For each row, returns the quantity and a running minimum of the current
and previous rows.

380

IBM Cognos Framework Manager Version 10.1.1: User Guide

Name

Qty

Min

-------

-----

------

Smith

7

2

Smith

3

2

Smith

6

2

Smith

2

2

Wong

4

3

Wong

5

3

Running-Minimum
(Qty) for name
-------------------------7
3
3
2
4
4

running-total
Returns a running total by row (including the current row) for a set of values. The
"" defines the scope of the function. The "at" option defines the level of
aggregation and can be used only in the context of relational data sources.

Syntax
running-total ( numeric_expression [ at expression { , expression } ]
[  ] [ prefilter ] )
running-total ( numeric_expression [  ] [ prefilter ] )
 ::= for expression { , expression }|for report|auto

Example
running-total ( Qty )

Result: For each row, returns the quantity and a running total of the current and
previous rows.
Name

Qty

Total

-------

------

--------

Smith

2

18

Smith

3

18

Smith

6

18

Smith

7

18

Wong

3

12

Wong

5

12

Running-Total (Qty)
for name
------------------------2
5
11
18
3
8

standard-deviation
Returns the standard deviation of selected data items.

Syntax
standard-deviation (
standard-deviation (
standard-deviation (

expression [ auto ] )
expression for [ all|any ] expression { , expression } )
expression for report )
Appendix B. Using the expression editor

381

Example
standard-deviation ( ProductCost )

Result: Returns a value indicating the deviation between product costs and the
average product cost.

standard-deviation-pop
Computes the population standard deviation and returns the square root of the
population variance.

Syntax
standard-deviation-pop (
standard-deviation-pop (
standard-deviation-pop (

expression [ auto ] )
expression for [ all|any ] expression { , expression } )
expression for report )

Example
standard-deviation-pop ( ProductCost )

Result: Returns a value of the square root of the population variance.

total
Returns the total value of selected data items. Distinct is an alternative expression
that is compatible with earlier versions of the product. This function is displayed
in the Budget vs. Actual sample report in the GO Data Warehouse (analysis)
package.

Syntax
total ( [ distinct ] expression [ auto ] )
total ( [ distinct ] expression for [ all|any ] expression { , expression } )
total ( [ distinct ] expression for report )

Example
total ( Sales )

Result: Returns the total value of all Sales values.

variance
Returns the variance of selected data items.

Syntax
variance (
variance (
variance (

expression [ auto ] )
expression for [ all|any ] expression { , expression } )
expression for report )

Example
variance ( Product Cost )

Result: Returns a value indicating how widely product costs vary from the average
product cost.

variance-pop
Returns the population variance of a set of numbers after discarding the nulls in
this set.

382

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
variance-pop (
variance-pop (
variance-pop (

expression [ auto ] )
expression for [ all|any ] expression { , expression } )
expression for report )

Example
variance-pop ( Qty )

Result: For each row, returns the population variance of a set of numbers after
discarding the nulls in this set.

Member summaries
This list contains predefined functions that return either a single summary value
for a set of members or a different summary value for each member of a set of
members.

aggregate
Returns a calculated value using the appropriate aggregation function based on the
aggregation type of the expression.

Syntax
aggregate ( < currentMeasure|numeric_expression >
within set set_expression )
aggregate ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

average
Returns the average value of the selected data items.

Syntax
average ( < currentMeasure|numeric_expression >
within set set_expression )
average ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

Example
average ( Sales )

Result: Returns the average of all Sales values.

count
Returns the number of selected data items excluding null values.

Syntax
count ( < currentMeasure|numeric_expression >
within set set_expression )
count ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

Example
count ( Sales )

Result: Returns the total number of entries under Sales.

maximum
Returns the maximum value of selected data items.
Appendix B. Using the expression editor

383

Syntax
maximum ( < currentMeasure|numeric_expression >
within set set_expression )
maximum ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

Example
maximum ( Sales )

Result: Returns the maximum value out of all Sales values.

median
Returns the median value of selected data items.

Syntax
median
within
median
within

( < currentMeasure|numeric_expression >
set set_expression )
( < currentMeasure|numeric_expression >
< detail|aggregate > expression )

minimum
Returns the minimum value of selected data items.

Syntax
minimum ( < currentMeasure|numeric_expression >
within set set_expression )
minimum ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

Example
minimum ( Sales )

Result: Returns the minimum value out of all Sales values.

percentage
Returns the percent of the total value for the selected data items.

Syntax
percentage ( numeric_expression [ tuple member_expression
{ , member_expression } ] within set set_expression )

Example
percentage ( [gosales].[sales measures].[quantity] tuple [gosales].
[Staff].[].[department] -> [West] within set children
( [gosales].[Staff].[].[Staff] ) )

percentile
Returns a value, on a scale from 0 to 100, that indicates the percent of a
distribution that is equal to or below the selected data items.

Syntax
percentile ( numeric_expression [ tuple member_expression
{ , member_expression } ] within set set_expression )

quantile
Returns the rank of a value for the specified range. It returns integers to represent
any range of ranks, such as 1 (highest) to 100 (lowest).

384

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
quantile ( numeric_expression , numeric_expression
[ tuple member_expression { , member_expression } ]
within set set_expression )

quartile
Returns the rank of a value, represented as integers from 1 (highest) to 4 (lowest),
relative to a group of values.

Syntax
quartile ( numeric_expression [ tuple member_expression
{ , member_expression } ] within set set_expression )

rank
Returns the rank value of the selected data items. The type of ranking returned
(Olympic, dense, or serial) is data source dependent. The sort order is optional;
DESC is assumed by default.

Syntax
rank ( numeric_expression [ ASC|DESC ] [ tuple member_expression
{ , member_expression } ] within set set_expression )

Example
rank ( [gosales].[sales measures].[quantity] tuple
[gosales].[Staff].[].[department] -> [West] within set children
( [gosales].[Staff].[].[Staff] ) )

standard-deviation
Returns the standard deviation of the selected data items.

Syntax
standard-deviation ( < currentMeasure|numeric_expression >
within set set_expression )
standard-deviation ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

standard-deviation-pop
Returns the standard deviation population of the selected data items.

Syntax
standard-deviation-pop ( <
within set set_expression
standard-deviation-pop ( <
within < detail|aggregate

currentMeasure|numeric_expression >
)
currentMeasure|numeric_expression >
> expression )

total
Returns the total value of the selected data items.

Syntax
total ( < currentMeasure|numeric_expression >
within set set_expression )
total ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

variance
Returns the variance of the selected data items.

Appendix B. Using the expression editor

385

Syntax
variance ( < currentMeasure|numeric_expression >
within set set_expression )
variance ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

variance-pop
Returns the variance population of the selected data items.

Syntax
variance-pop ( < currentMeasure|numeric_expression > within set set_expression )
variance-pop ( < currentMeasure|numeric_expression >
within < detail|aggregate > expression )

Constants
A constant is a fixed value that you can use in an expression.

date
Inserts the current system date.

date-time
Inserts the current system date and time.

time with time zone
Inserts a zero time with time zone.

timestamp with time zone
Inserts an example of a timestamp with time zone.

interval
Inserts a zero interval: 000 00:00:00.000.

interval year
Inserts a zero year interval: 0 year.

interval month
Inserts a zero month interval: 0 month.

interval year to month
Inserts a zero year to month interval: 0000-00 year to month.

interval day
Inserts a zero day interval: 0 day.

interval hour
Inserts a zero hour interval: 0 hour.

interval minute
Inserts a zero minute interval: 0 minute.

interval second
Inserts a zero second interval: 0 second.

interval day to hour
Inserts a zero day to hour interval: 0 00 day to hour.

386

IBM Cognos Framework Manager Version 10.1.1: User Guide

interval day to minute
Inserts a zero day to minute interval: 0 00:00 day to minute.

interval day to second
Inserts a zero day to second interval: 0 00:00:00.000000000 day to second.

interval hour to minute
Inserts a zero hour to minute interval: 00:00 hour to minute.

interval hour to second
Inserts a zero hour to second interval: 00:00:00.000000000 hour to second.

interval minute to second
Inserts a zero minute to second interval: 00:00.000000000 minute to second.

null
Inserts "null" if the expression conditions are not met.

number
Inserts the number 0, which can be replaced with a new numeric value.

string
Inserts an empty string as two single quotation marks between which you can type
a string.

time
Inserts the current system time.

Constructs
This list contains constructs and templates that can be used to create an expression.
Templates combine multiple functions into a group. For example, the search case
template includes the case, when, else, and end functions.

if then else
This construct is the template for an if...then...else statement. This construct
appears in the Top 10 Retailers for 2005 sample report in the GO Data Warehouse
(analysis) package.

Syntax
IF ([Country or Region] = ’Canada’) THEN ([List Price] * 0.60) ELSE ([List Price])

in_range
This is the template for an in_range expression.

Syntax
[code] IN_RANGE { :30 , 40, 50, 999: }

Example 1
[code] IN_RANGE { 5 }

Result: This is equivalent to [code] = 5.

Appendix B. Using the expression editor

387

Example 2
[code] IN_RANGE { 5: }

Result: This is equivalent to [code] >= 5.

Example 3
[code] IN_RANGE { :5 }

Result: This is equivalent to [code] <= 5.

Example 4
[code] IN_RANGE { 5:10 }

Result: This is equivalent to ( [code] >= 5 and [code] <= 10 ).

Example 5
[code] IN_RANGE { :5,10,20: }

Result: This is equivalent to ( [code] <= 5 or [code] = 10 or [code] >= 20 ).

search case
This construct is the template for a search case, including the case, when, else, and
end functions.

Syntax
CASE WHEN [Country or Region] = ’Canada’ THEN ([List Price]
* 0.60) WHEN [CountryCode] > 100 THEN [List Price] * 0.80
ELSE [List Price] END

simple case
This construct is the template for a simple case, including the case, when, else, and
end functions.

Syntax
CASE [Country or Region] WHEN ’Canada’ THEN
([List Price] * 0.60) WHEN ’Australia’ THEN [List Price] * 0.80
ELSE [List Price] END

Business date/time functions
This list contains business functions for performing date and time calculations.

_add_days
Returns the date or datetime, depending on the format of "date_expression", that
results from adding "integer_expression" days to "date_expression".

Syntax
_add_days ( date_expression, integer_expression )

Example 1
_add_days ( 2002-04-30 , 1 )

Result: 2002-05-01

388

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 2
_add_days ( 2002-04-30 12:10:10.000, 1 )

Result: 2002-05-01 12:10:10.000

Example 3
_add_days ( 2002-04-30 00:00:00.000, 1/24 )
Note that the second argument is not a whole number. This is supported
by some database technologies and increments the time portion.

Result: 2002-04-30 01:00:00.000

_add_months
Returns the date or datetime, depending on the format of "date_expression", that
results from the addition of "integer_expression" months to "date_expression".

Syntax
_add_months ( date_expression, integer_expression )

Example 1
_add_months ( 2002-04-30 , 1 )

Result: 2002-05-30

Example 2
_add_months ( 2002-04-30 12:10:10.000, 1 )

Result: 2002-05-30 12:10:10.000

_add_years
Returns the date or datetime, depending on the format of "date_expression", that
results from the addition of "integer_expression" years to "date_expression".

Syntax
_add_years ( date_expression, integer_expression )

Example 1
_add_years ( 2002-04-30 , 1 )

Result: 2003-04-30

Example 2
_add_years ( 2002-04-30 12:10:10.000 , 1 )

Result: 2003-04-30 12:10:10.000

_age
Returns a number that is obtained from subtracting "date_expression" from today's
date. The returned value has the form YYYYMMDD, where YYYY represents the
number of years, MM represents the number of months, and DD represents the
number of days.

Syntax
_age ( date_expression )
Appendix B. Using the expression editor

389

Example
_age ( 1990-04-30 ) (if today’s date is 2003-02-05)

Result: 120906, meaning 12 years, 9 months, and 6 days.

_day_of_week
Returns the day of week (1 to 7), where 1 is the first day of the week as indicated
by the second parameter (1 to 7, 1 being Monday and 7 being Sunday). Note that
in the ISO 8601 standard, a week begins with Monday being day 1.

Syntax
_day_of_week ( date_expression, integer )

Example
_day_of_week ( 2003-01-01 , 1 )

Result: 3

_day_of_year
Returns the day of year (1 to 366) in "date_expression". Also known as Julian day.

Syntax
_day_of_year ( date_expression )

Example
_day_of_year ( 2003-03-01 )

Result: 61

_days_between
Returns a positive or negative number representing the number of days between
"date_expression1" and "date_expression2". If "date_expression1" <
"date_expression2", then the result will be a negative number.

Syntax
_days_between ( date_expression1 , date_expression2 )

Example
_days_between ( 2002-04-30 , 2002-06-21 )

Result: -52

_days_to_end_of_month
Returns a number representing the number of days remaining in the month
represented by "date_expression".

Syntax
_days_to_end_of_month ( date_expression )

Example
_days_to_end_of_month ( 2002-04-20 14:30:22.123 )

Result: 10

390

IBM Cognos Framework Manager Version 10.1.1: User Guide

_first_of_month
Returns a date or datetime, depending on the argument, by converting
"date_expression" to a date with the same year and month but with the day set to
1.

Syntax
_first_of_month ( date_expression )

Example 1
_first_of_month ( 2002-04-20 )

Result: 2002-04-01

Example 2
_first_of_month ( 2002-04-20 12:10:10.000 )

Result: 2002-04-01 12:10:10.000

_last_of_month
Returns a date or datetime, depending on the argument, that is the last day of the
month represented by "date_expression".

Syntax
_last_of_month ( date_expression )

Example 1
_last_of_month ( 2002-01-14 )

Result: 2002-01-31

Example 2
_last_of_month ( 2002-01-14 12:10:10.000 )

Result: 2002-01-31 12:10:10.000

_make_timestamp
Returns a timestamp constructed from "integer_expression1" (the year),
"integer_expression2" (the month), and "integer_expression3" (the day). The time
portion defaults to 00:00:00.000.

Syntax
_make_timestamp ( integer_expression1, integer_expression2, integer_expression3 )

Example
_make_timestamp ( 2002 , 01 , 14 )

Result: 2002-01-14 00:00:00.000

_months_between
Returns a positive or negative integer number representing the number of months
between "date_expression1" and "date_expression2". If "date_expression1" is earlier
than "date_expression2", then a negative number is returned.

Syntax
_months_between ( date_expression1, date_expression2 )
Appendix B. Using the expression editor

391

Example
_months_between ( 2002-04-03 , 2002-01-30 )

Result: 2

_week_of_year
Returns the number of the week of the year of "date_expression" according to the
ISO 8601 standard. Week 1 of the year is the first week of the year to contain a
Thursday, which is equivalent to the first week containing January 4th. A week
starts on Monday (day 1) and ends on Sunday (day 7).

Syntax
_week_of_year ( date_expression )

Example
_week_of_year ( 2003-01-01 )

Result: 1

_years_between
Returns a positive or negative integer number representing the number of years
between "date_expression1" and "date_expression2". If "date_expression1" <
"date_expression2" then a negative value is returned.

Syntax
_years_between ( date_expression1, date_expression2 )

Example
_years_between ( 2003-01-30 , 2001-04-03 )

Result: 1

_ymdint_between
Returns a number representing the difference between "date_expression1" and
"date_expression2". The returned value has the form YYYYMMDD, where YYYY
represents the number of years, MM represents the number of months, and DD
represents the number of days.

Syntax
_ymdint_between ( date_expression1 , date_expression2 )

Example
_ymdint_between ( 1990-04-30 , 2003-02-05 )

Result: 120906, meaning 12 years, 9 months and 6 days.

Block functions
This list contains functions used to access members of a set, usually in the context
of IBM Cognos Analysis Studio.

_firstFromSet
Returns the first members found in the set up to "numeric_expression_maximum"
+ "numeric_expression_overflow". If "numeric_expression_maximum" +
"numeric_expression_overflow" is exceeded, then only the maximum number of
members are returned. For a set that has only a few members more than the

392

IBM Cognos Framework Manager Version 10.1.1: User Guide

specified numeric_expression_maximum, the numeric_expression_overflow allows
the small set of extra members to be included. If the set has more members than
the overflow allows, then only the numeric_expression_maximum members will be
returned.

Syntax
_firstFromSet ( set_expression , numeric_expression_maximum ,
numeric_expression_overflow )

Example 1
_firstFromSet ( [great_outdoors_company].[Products].
[Products].[Product line] , 2 , 8 )

Result: Returns the five members in the Product line set. The first two members
are returned within the maximum and the following three members are returned
as the overflow.
Camping Equipment
Golf Equipment
Mountaineering Equipment
Outdoor Protection
Personal Accessories

Example 2
_firstFromSet ( [great_outdoors_company].[Products].
[Products].[Product line] , 2 , 2 )

Result: Camping Equipment, Golf Equipment

_remainderSet
Returns the set containing "member_expression" when the size of "set_expression"
is greater than "numeric_expression"; i.e., a new member will be generated if the
number of members in "set_expression" is larger than the specified
"numeric_expression".

Syntax
_remainderSet ( member_expression,

set_expression , numeric_expression )

Example
_remainderSet ( member ( aggregate ( currentMeasure within set
[great_outdoors_company].[Products].[Products].[Product line] ) ,
’Product Aggregate’ , ’Product Aggregate’ , [great_outdoors_company]
.[Products].[Products] ) , [great_outdoors_company].[Products]
.[Products].[Product line] , 1 )

Result: Quantity sold for Product Aggregate

Macro functions
This list contains functions that can be used within a macro. A macro may contain
one or more macro functions. A macro is delimited by a number sign (#) at the
beginning and at the end. Everything between the number signs is treated as a
macro expression and is executed at run time. For macro functions that accept
expressions of datatype timestamp with time zone as arguments, the accepted
format is 'yyyy-mm-dd hh:mm:ss[.ff]+hh:mm' where fractional seconds are optional
and can be represented by 1 to 9 digits. In lieu of a space separating the date
portion to the time portion, the character 'T' is also accepted. Also, in lieu of the
time zone '+hh:mm', the character 'Z' is accepted and will be processed internally
Appendix B. Using the expression editor

393

as '+00:00'. The macro functions that return expressions of datatype timestamp
with time zone return 9 digits by default for their fractional seconds. The macro
function timestampMask () can be used to trim the output if required.

+
Concatenates two strings.

Syntax
value1 + value2

Example
# ’{ ’ + $runLocale + ’ }’ #

Result: {en-us}

_add_days
Returns the timestamp with time zone (as a string) that results from adding
"integer_expression" number of days to "string_expression", where
"string_expression" represents a timestamp with time zone.

Syntax
_add_days ( string_expression , integer_expression )

Example 1
# _add_days ( ’2005-11-01 12:00:00.000-05:00’ , -1 ) #

Result: 2005-10-31 12:00:00.000000000-05:00

Example 2
# _add_days ( $current_timestamp , 1 ) #

Result: 2005-11-02 12:00:00.000000000-05:00

Example 3
# timestampMask ( _add_days ( $current_timestamp , 1 ) , ’yyyy-mm-dd’ ) #

Result: 2005-11-02

_add_months
Returns the timestamp with time zone (as a string) that results from adding
"integer_expression" number of months to "string_expression", where
"string_expression" represents a timestamp with time zone.

Syntax
_add_months ( string_expression , integer_expression )

Example 1
# _add_months ( ’2005-11-01 12:00:00.000-05:00’ , -1 ) #

Result: 2005-10-01 12:00:00.000000000-05:00

Example 2
# _add_months ( $current_timestamp , 1 ) #

Result: 2005-12-01 12:00:00.000000000-05:00

394

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 3
# timestampMask ( _add_months ( $current_timestamp , 1 ) , ’yyyy-mm-dd’ ) #

Result: 2005-12-01

_add_years
Returns the timestamp with time zone (as a string) that results from adding
"integer_expression" number of years to "string_expression", where
"string_expression" represents a timestamp with time zone.

Syntax
_add_years ( string_expression , integer_expression )

Example 1
# _add_years ( ’2005-11-01 12:00:00.000-05:00’ , -1 ) #

Result: 2004-11-01 12:00:00.000000000-05:00

Example 2
# _add_years ( $current_timestamp , 1 ) #

Result: 2006-11-01 12:00:00.000000000-05:00

Example 3
# timestampMask ( _add_years ( $current_timestamp , 1 ) , ’yyyy-mm-dd’ ) #

Result: 2006-11-01

array
Constructs an array out of the list of parameters.

Syntax
array ( string_expression|array_expression
{ , string_expression|array_expression } )

Example
# csv ( array ( ’a1’ , array ( ’x1’ , ’x2’ ) , ’a2’ ) ) #

Result: 'a1' , 'x1' , 'x2' , 'a2'

csv
Constructs a string from the elements of the array where the values are separated
by commas. Optionally, the separator and quote strings can be specified. The
default separator is a comma ( , ) and the default quote character is a single quote
( ' ).

Syntax
csv ( array_expression [ , separator_string [ , quote_string ] ] )

Example
# csv ( array ( ’a1’ , ’a2’ ) ) #

Result: 'a1', 'a2'

Appendix B. Using the expression editor

395

dq
Surrounds "string_expression" with double quotes.

Syntax
dq ( string_expression )

Example
# dq ( ’zero’ ) #

Result: "zero"

getConfigurationEntry
Get an entry from the IBM Cognos configuration file. The force_decode_flag is
optional and must be one of: 'true', '1', 1 , 'false', '0', 0. The default is 'true'. When
true, the value of the configuration entry will be decrypted into plain text if it is
encrypted.

Syntax
getConfigurationEntry ( entry_string , force_decode_flag )

Example
# getConfigurationEntry ( ’serverLocale’

) #

Result: en

grep
Searches for and returns elements of an array that match the pattern specified in
"pattern_string".

Syntax
grep ( pattern_string , array_expression )

Example
# csv ( grep ( ’s’ , array ( ’as’, ’an’, ’arts’ ) ) ) #

Result: 'as', 'arts'

_first_of_month
Returns a timestamp with time zone (as a string) by converting the day value in
"string_expression" to 1, where "string_expression" is a timestamp with time zone.

Syntax
_first_of_month ( string_expression )

Example 1
# _first_of_month ( ’2005-11-11 12:00:00.000-05:00’ ) #

Result: 2005-11-01 12:00:00.000000000-05:00

Example 2
# timestampMask ( _first_of_month ( ’2005-11-11 12:00:00.000-05:00’ )
, ’yyyymmdd’ ) #

Result: 20051101

396

IBM Cognos Framework Manager Version 10.1.1: User Guide

_last_of_month
Returns a timestamp with time zone (as a string) that is the last day of the month
represented by "string_expression", where "string_expression" is a timestamp with
time zone.

Syntax
_last_of_month ( string_expression )

Example 1
# _last_of_month ( ’2005-11-11 12:00:00.000-05:00’ ) #

Result: 2005-11-30 12:00:00.000000000-05:00

Example 2
# timestampMask ( _last_of_month ( ’2005-11-11 12:00:00.000-05:00’ )
, ’yyyy-mm-dd’ ) #

Result: 2005-11-30

join
Joins the elements of an array using "separator_string".

Syntax
join ( separator_string , array_expression )

Example
# sq ( join ( ’ | | ’ , array ( ’as’, ’an’, ’arts’ ) ) ) #

Result: 'as | | an | | arts'

prompt
Prompts the user for a single value. Only "prompt_name" is required. The datatype
defaults to "string" when it is not specified. The prompt is optional when
"defaultText" is specified. "Text", when specified, will precede the value.
"QueryItem" can be specified to take advantage of the prompt information
properties of "queryItem". "Trailing_text", when specified, will be appended to the
value.

Syntax
prompt ( prompt_name , datatype , defaultText , text , queryItem , trailing_text )

Example 1
select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE >
#prompt ( ’Starting CountryCode’ , ’integer’ , ’10’ ) #

Result: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE > 10

Example 2
[gosales].[COUNTRY].[COUNTRY] = # prompt
( ’countryPrompt’ , ’string’ , ’’’Canada’’’ ) #

Result: [gosales].[COUNTRY].[COUNTRY] = 'Canada'

Appendix B. Using the expression editor

397

Notes
v The "defaultText" parameter must be specified such that it is literally valid in the
context of the macro since no formatting takes place on this value. The default
string '''Canada''' in Example 2 is specified as a string using single quotes, in
which the embedded single quotes are doubled up, thus 3 quotes. This results in
the string being properly displayed within single quotes in the expression. As a
general rule for the string datatype, "defaultText" should always be specified like
this, except in the context of a stored procedure parameter. For "defaultText" of
types 'date' or 'datetime', a special format should be used in the context of SQL.
Examples of these formats are 'DATE ''2001-12-25''' and 'DATETIME ''2001-12-25
12:00:00'''. In all other contexts, use the date/datetime without the keyword and
escaped single quotes (e.g., '2001-12-25').

promptmany
Prompts the user for one or more values. Only "prompt_name" is required. The
datatype defaults to string when it is not specified. The prompt is optional when
"defaultText" is specified. "Text", when specified, will precede the list of values.
"QueryItem" can be specified to take advantage of the prompt information
properties of "queryItem". "Trailing_text", when specified, will be appended to the
list of values.

Syntax
promptmany ( prompt_name , datatype , defaultText , text ,
queryItem , trailing_text )

Example 1
select . . . where COUNTRY_MULTILINGUAL.COUNTRY in
( # promptmany ( ’CountryName’ ) # )

Result: select . . . where COUNTRY_MULTILINGUAL.COUNTRY_CODE in
( 'Canada' , 'The Netherlands' , 'Russia' )

Example 2
select . . . from gosales.gosales.dbo.
COUNTRY_MULTILINGUAL COUNTRY_MULTILINGUAL ,
gosales.gosales.dbo.COUNTRY XX where
COUNTRY_MULTILINGUAL.COUNTRY_CODE =
XX.COUNTRY_CODE # promptmany
( ’Selected CountryCodes’ , ’integer’ , ’ ’ , ’
and COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( ’ , ’’ , ’ ) ’ ) #

Result: select . . . from gosales.gosales.dbo.COUNTRY_MULTILINGUAL
COUNTRY_MULTILINGUAL , gosales.gosales.dbo.COUNTRY XX where
COUNTRY_MULTILINGUAL.COUNTRY_CODE = XX.COUNTRY_CODE and
COUNTRY_MULTILINGUAL.COUNTRY_CODE in ( 'Canada' , 'The
Netherlands' , 'Russia' )

sb
Surrounds "string_expression" with square brackets.

Syntax
sb ( string_expression )

398

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
# sb ( ’abc’ ) #

Result: [abc]

sq
Surrounds "string_expression" with single quotes.

Syntax
sq ( string_expression )

Example
# sq ( ’zero’ ) #

Result: 'zero'

sort
Sorts the elements of the array in alphabetical order. Duplicates are retained.

Syntax
sort ( array_expression )

Example
# csv ( sort ( array ( ’s3’, ’a’, ’x’ ) ) ) #

Result: 'a', 's3', 'x'

split
Splits a string or string elements of the array into separate elements.

Syntax
split ( pattern_string, string_expression|array_expression )

Example 1
# csv ( split ( ’::’, ’ab=c::de=f::gh=i’ ) ) #

Result: 'ab=c', 'de=f', 'gh=i'

Example 2
# csv ( split ( ’=’ , split ( ’::’, ’ab=c::de=f::gh=i’ ) ) ) #

Result: 'ab', 'c', 'de', 'f', 'gh', 'i'

substitute
Searches for a pattern in a string or in the string elements of an array and
substitutes the first occurrence of "pattern_string" with "replacement_string".

Syntax
substitute ( pattern_string, replacement_string,
string_expression|array_expression )

Example 1
#sq ( substitute ( ’^cn=’, ’***’, ’cn=help’ ) )#

Result: '***help'
Appendix B. Using the expression editor

399

Example 2
# csv ( substitute ( ’^cn=’, ’***’, array ( ’cn=help’ , ’acn=5’ ) ) ) #

Result: '***help', 'acn=5'

Example 3
# csv ( substitute ( ’cn=’, ’’, array ( ’cn=help’ , ’acn=5’ ) ) ) #

Result: 'help', 'a5'

timestampMask
Returns "string_expression1", representing a timestamp with time zone, trimmed to
the format specified in "string_expression2". The format in "string_expression2"
must be one of the following: 'yyyy', 'mm', 'dd', 'yyyy-mm', 'yyyymm',
'yyyy-mm-dd', 'yyyymmdd', 'yyyy-mm-dd hh:mm:ss', 'yyyy-mm-dd
hh:mm:ss+hh:mm', 'yyyy-mm-dd hh:mm:ss.ff3', 'yyyy-mm-dd
hh:mm:ss.ff3+hh:mm', 'yyyy-mm-ddThh:mm:ss', 'yyyy-mm-ddThh:mm:ss+hh:mm',
'yyyy-mm-ddThh:mm:ss.ff3+hh:mm', or 'yyyy-mm-ddThh:mm:ss.ff3+hh:mm'. The
macro functions that return a string representation of a timestamp with time zone
show a precision of 9 digits for the fractional part of the seconds by default. The
format options allow this to be trimmed down to a precision of 3 or 0.

Syntax
timestampMask ( string_expression1 , string_expression2 )

Example 1
# timestampMask ( $current_timestamp , ’yyyy-dd-mm’ ) #

Result: 2005-11-01

Example 2
# timestampMask ( ’2005-11-01 12:00:00.000-05:00’ ,
’yyyy-mm-dd hh:mm:ss+hh:mm’ ) #

Result: 2005-11-01 12:00:00-05:00

Example 3
# timestampMask ( ’2005-11-01 12:00:00.123456789-05:00’ ,
’yyyy-mm-ddThh:mm:ss+hh:mm.ff3+hh:mm’ ) #

Result: 2005-11-01T12:00:00.123-05:00

toLocal
Returns the string representing a timestamp with time zone resulting from
adjusting "string_expression" to the time zone of the operating system. Note that
the macro function timestampMask () can be used to trim the output.

Syntax
toLocal ( string_expression )

Example 1
# toLocal ( ’2005-11-01 17:00:00.000-00:00’ )
# where OS local time zone is -05:00

Result: 2005-11-01 12:00:00.000000000-05:00

400

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 2
# timestampMask ( toLocal ( ’2005-11-01 17:00:00.000-00:00’ ) ,
’yyyy-mm-dd hh:mm:ss+hh:mm’ ) # where OS local time zone is -05:00

Result: 2005-11-01 12:00:00-05:00

Example 3
# toLocal ( ’2005-11-01 13:30:00.000-03:30’ )
# where OS local time zone is -05:00

Result: 2005-11-01 12:00:00.000000000-05:00

toUTC
Returns the string representing a timestamp with time zone resulting from
adjusting "string_expression" to the zero-point reference UTC time zone, also
known as GMT time. Note that the macro function timestampMask () can be used
to trim the output.

Syntax
toUTC ( string_expression )

Example 1
# toUTC ( ’2005-11-01 12:00:00.000-05:00’ ) #

Result: 2005-11-01 17:00:00.000000000-00:00

Example 2
# timestampMask( toUTC ( ’2005-11-01 12:00:00.000-05:00’ ) ,
’yyyy-mm-dd hh:mm:ss.ff3+hh:mm’ ) #

Result: 2005-11-01 17:00:00.000-00:00

Example 3
# toUTC ( $current_timestamp ) #

Result: 2005-11-01 17:00:00.000000000-00:00

unique
Removes duplicate entries from the array. The order of the elements is retained.

Syntax
unique ( array_expression )

Example
# csv ( unique ( array ( ’s3’, ’a’, ’s3’, ’x’ ) ) ) #

Result: 's3', 'a', 'x'

urlencode
URL-encodes the passed argument. This function is useful when specifying XML
connection strings.

Syntax
urlencode ( prompt ( ’userValue’ ) )

Appendix B. Using the expression editor

401

Example
urlencode ( prompt ( ’some_val’ ) )

Result: %27testValue%27

CSVIdentityName
Uses the identity information of the current authenticated user to look up values in
the specified parameter map. Each individual piece of the user's identity (account
name, group names, role names) is used as a key into the map. The unique list of
values that is retrieved from the parameter map is then returned as a string, where
each value is surrounded by single quotes and where multiple values are separated
by commas.

Syntax
CSVIdentityName ( %parameter_map_name [ , separator_string ] )

Example
# CSVIdentityName ( %security_clearance_level_map ) #

Result: 'level_500', 'level_501', 'level_700'

CSVIdentityNameList
Returns the pieces of the user's identity (account name, group names, role names)
as a list of strings. The unique list of values is returned as a string, where each
value is surrounded by single quotes and where multiple values are separated by
commas.

Syntax
CSVIdentityNameList ( [ separator_string ] )

Example
# CSVIdentityNameList ( ) #

Result: 'Everyone', 'Report Administrators', 'Query User'

CAMPassport
Returns the Cognos Access Manager passport.

Syntax
CAMPassport ( )

Example
# CAMPassport ( ) #

Result: 111:98812d62-4fd4-037b-4354-26414cf7ebef:3677162321

CAMIDList
Returns the pieces of the user's Cognos Access Manager ID (CAMID), such as
account name, group names, or role names, as a list of values separated by
commas.

Syntax
CAMIDList ( [ separator_string ] )

402

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
#CAMIDList ( ) #

Result: CAMID ( "::Everyone" ) , CAMID ( ":Authors" ) , CAMID ( ":Query
Users" ) , CAMID ( ":Consumers" ) , CAMID ( ":Metrics Authors" )

CAMIDListForType
Returns an array of the user's Cognos Access Manager IDs (CAMIDs) based on the
identity type (account, group, or role). CAMIDListForType can be used with the
macro functions csv or join.

Syntax
CAMIDListForType ( identity type )

Example
[qs].[userRole] in ( # csv ( CAMIDListForType ( ’role’ ) ) # )

Result: [qs].[userRole] in ( 'CAMID ( "::System Administrators" ) ' , 'CAMID
( ":Authors" )' )

Common Functions
abs
Returns the absolute value of "numeric_expression". Negative values are returned
as positive values.

Syntax
abs ( numeric_expression )

Example 1
abs ( 15 )

Result: 15

Example 2
abs ( -15 )

Result: 15

cast
Converts "expression" to a specified data type. Some data types allow for a length
and precision to be specified. Make sure that the target is of the appropriate type
and size. The following can be used for "datatype_specification": character, varchar,
char, numeric, decimal, integer, smallint, real, float, date, time, timestamp, time
with time zone, timestamp with time zone, and interval. When type casting to an
interval type, one of the following interval qualifiers must be specified: year,
month, or year to month for the year-to-month interval datatype; day, hour,
minute, second, day to hour, day to minute, day to second, hour to minute, hour
to second, or minute to second for the day-to-second interval datatype. Notes®:
When you convert a value of type timestamp to type date, the time portion of the
timestamp value is ignored. When you convert a value of type timestamp to type
time, the date portion of the timestamp is ignored. When you convert a value of
type date to type timestamp, the time components of the timestamp are set to zero.
When you convert a value of type time to type timestamp, the date component is
set to the current system date. It is invalid to convert one interval datatype to the
Appendix B. Using the expression editor

403

other (for instance because the number of days in a month is variable). Note that
you can specify the number of digits for the leading qualifier only, i.e. YEAR(4) TO
MONTH, DAY(5). Errors will be reported if the target type and size are not
compatible with the source type and size.

Syntax
cast ( expression , datatype_specification )

Example 1
cast ( ’123’ , integer )

Result: 123

Example 2
cast ( 12345 , varchar ( 10 ) )

Result: a string containing 12345

ceil
Returns the smallest integer that is greater than or equal to "numeric_expression".

Syntax
ceil ( numeric_expression )

ceiling
Returns the smallest integer that is greater than or equal to "numeric_expression".

Syntax
ceiling ( numeric_expression )

Example 1
ceiling ( 4.22 )

Result: 5

Example 2
ceiling ( -1.23 )

Result: -1

char_length
Returns the number of logical characters in "string_expression". The number of
logical characters can be distinct from the number of bytes in some East Asian
locales.

Syntax
char_length ( string_expression )

Example
char_length ( ’Canada’ )

Result: 6

character_length
Returns the number of characters in "string_expression".

404

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
character_length ( string_expression )

Example
character_length ( ’Canada’ )

Result: 6

coalesce
Returns the first non null argument (or null if all arguments are null). Requires
two or more arguments in "expression_list".

Syntax
coalesce ( expression_list )

Example
coalesce ( [Unit price], [Unit sale price] )

Result: Returns the unit price, or the unit sale price if the unit price is null.

current_date
Returns a date value representing the current date of the computer that the
database software runs on.

Syntax
current_date

Example
current_date

Result: 2003-03-04

current_time
Returns a time with time zone value, representing the current time of the computer
that runs the database software if the database supports this function. Otherwise, it
represents the current time of the computer that runs IBM Cognos Business
Intelligence software.

Syntax
current_time

Example
current_time

Result: 16:33:11+05:00

current_timestamp
Returns a datetime with time zone value, representing the current time of the
computer that runs the database software if the database supports this function.
Otherwise, it represents the current time of the computer that runs IBM Cognos
Business Intelligence software.

Syntax
current_timestamp

Appendix B. Using the expression editor

405

Example
current_timestamp

Result: 2003-03-03 16:40:15.535000+05:00

exp
Returns 'e' raised to the power of "numeric_expression". The constant 'e' is the base
of the natural logarithm.

Syntax
exp ( numeric_expression )

Example
exp ( 2 )

Result: 7.389056

extract
Returns an integer representing the value of datepart (year, month, day, hour,
minute, second) in "datetime_expression".

Syntax
extract ( datepart , datetime_expression )

Example 1
extract ( year , 2003-03-03 16:40:15.535 )

Result: 2003

Example 2
extract ( hour , 2003-03-03 16:40:15.535 )

Result: 16

floor
Returns the largest integer that is less than or equal to "numeric_expression".

Syntax
floor ( numeric_expression )

Example 1
floor ( 3.22 )

Result: 3

Example 2
floor ( -1.23 )

Result: -2

ln
Returns the natural logarithm of "numeric_expression".

Syntax
ln ( numeric_expression )

406

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
ln ( 4 )

Result: 1.38629

localtime
Returns a time value, representing the current time of the computer that runs the
database software.

Syntax
localtime

Example
localtime

Result: 16:33:11

localtimestamp
Returns a datetime value, representing the current timestamp of the computer that
runs the database software.

Syntax
localtimestamp

Example
localtimestamp

Result: 2003-03-03 16:40:15.535000

lower
Returns "string_expression" with all uppercase characters shifted to lowercase.

Syntax
lower ( string_expression )

Example
lower ( ’ABCDEF’ )

Result: abcdef

mod
Returns the remainder (modulus) of "integer_expression1" divided by
"integer_expression2". "Integer_expression2" must not be zero or an exception
condition is raised.

Syntax
mod ( integer_expression1, integer_expression2 )

Example
mod ( 20 , 3 )

Result: 2

nullif
Returns null if "expression1" equals "expression2", otherwise returns "expression1".
Appendix B. Using the expression editor

407

Syntax
nullif ( expression1, expression2 )

octet_length
Returns the number of bytes in "string_expression".

Syntax
octet_length ( string_expression )

Example 1
octet_length ( ’ABCDEF’ )

Result: 6

Example 2
octet_length ( ’’ )

Result: 0

position
Returns the integer value representing the starting position of "string_expression1"
in "string_expression2" or 0 when the "string_expression1" is not found.

Syntax
position ( string_expression1 , string_expression2 )

Example 1
position ( ’C’ , ’ABCDEF’ )

Result: 3

Example 2
position ( ’H’ , ’ABCDEF’ )

Result: 0

power
Returns "numeric_expression1" raised to the power "numeric_expression2". If
"numeric_expression1" is negative, then "numeric_expression2" must result in an
integer value.

Syntax
power ( numeric_expression1 , numeric_expression2 )

Example
power ( 3 , 2 )

Result: 9

_round
Returns "numeric_expression" rounded to "integer_expression" places to the right
of the decimal point. Notes: "integer_expression" must be a non negative integer.
Rounding takes place before data formatting is applied.

408

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
_round ( numeric_expression , integer_expression )

Example
_round ( 1220.42369, 2 )

Result: 1220.42

sqrt
Returns the square root of "numeric_expression". "Numeric_expression" must be
non negative.

Syntax
sqrt ( numeric_expression )

Example
sqrt ( 9 )

Result: 3

substring
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters or to the end of
"string_expression" if "integer_expression2" is omitted. The first character in
"string_expression" is at position 1.

Syntax
substring ( string_expression , integer_expression1 [ , integer_expression2 ] )

Example
substring ( ’abcdefg’ , 3 , 2 )

Result: cd

trim
Returns "string_expression" trimmed of leading and trailing blanks or trimmed of a
certain character specified in "match_character_expression". "Both" is implicit when
the first argument is not stated and blank is implicit when the second argument is
not stated.

Syntax
trim ( [ [ trailing|leading|both ] [ match_character_expression ]
, ] string_expression )

Example 1
trim ( trailing ’A’ , ’ABCDEFA’ )

Result: ABCDEF

Example 2
trim ( both , ’ ABCDEF ’ )

Result: ABCDEF

Appendix B. Using the expression editor

409

upper
Returns "string_expression" with all lowercase characters converted to uppercase.

Syntax
upper ( string_expression )

Example
upper ( ’abcdef’ )

Result: ABCDEF

Dimensional functions
ancestor
Returns the ancestor of "member" at "level" or at "integer" number of levels above
"member". Note: The result is not guaranteed to be consistent when there is more
than one such ancestor.

Syntax
ancestor ( member, level|integer )

Example 1
ancestor ( [TrailChef Water Bag] , 1 )

Result: Cooking Gear

Example 2
ancestor ( [TrailChef Water Bag] , 2 )

Result: Camping Equipment

Example 3
ancestor ( [TrailChef Water Bag] , [great_outdoors_company].
[Products].[Products].[Product type] )

Result: Cooking Gear

ancestors
Returns all the ancestors of "member" at "level" or "index" distance above the
member. Most data sources support only one ancestor at a specified level. If the
data source supports more than one ancestor, the result is a member set.

Syntax
ancestors ( member , level|index )

Example 1
ancestors ( [TrailChef Water Bag] , 1 )

Result: Cooking Gear

Example 2
ancestors ( [TrailChef Water Bag] , 2 )

Result: Camping Equipment

410

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 3
ancestors ( [TrailChef Water Bag] , [great_outdoors_company].
[Products].[Products].[Product type] )

Result: Cooking Gear

bottomCount
Sorts a set according to the value of "numeric_expression" evaluated at each of the
members of "set_expression" and returns the bottom "index_expression" members.

Syntax
bottomCount ( set_expression , index_expression , numeric_expression )

Example
bottomCount ( [great_outdoors_company].[Products].[Products].
[Product line] , 2 , [Revenue] )

Result: Returns the bottom two members of the set sorted by revenue.
Product line

Revenue

-------

-------

Outdoor Protection

$3,171,114.92

Mountaineering Equipment

$20,891,350.60

bottomPercent
Sorts the set specified in "set_expression" in ascending order and returns the
bottommost elements from the sorted set whose cumulative percentage of the total
is greater than or equal to "percentage".

Syntax
bottomPercent ( set_expression , percentage , numeric_expression )

Example
bottomPercent ( set ( [Camping Equipment] , [Golf Equipment] ,
[Mountaineering Equipment] ) , 40 , [2006] )

Result: For the set of Camping Equipment, Golf Equipment, and Mountaineering
Equipment, returns the members with the smallest Gross profit whose total for the
year 2006 is at least 40% of the overall total.

bottomSum
Sorts the set specified in "set_expression" in ascending order and returns the
bottommost elements from the sorted set whose cumulative total is greater than or
equal to "value".

Syntax
bottomSum ( set_expression , value , numeric_expression )

Example
bottomSum ( members ( [great_outdoors_company].[Products].
[Products].[Product line] ) , 6000000 , tuple ( [2006] ,
[great_outdoors_company].[Measures].[Gross profit] ) )

Appendix B. Using the expression editor

411

Result: For the Product line members, returns the members with the smallest Gross
profit whose total for the year 2006 is at least $6,000,000.

caption
Returns the caption values of "level", "member", or "set_expression". The caption is
the string display name for an element and does not necessarily match the unique
identifier used to generate the business key or member unique name (MUN) for
the element. The caption is not necessarily unique; for example, the caption for a
month may return the month name without further year details to make the value
unique.

Syntax
caption ( level|member|set_expression )

Example 1
caption ( [TrailChef Water Bag] )

Result: TrailChef Water Bag

Example 2
caption ( [great_outdoors_company].[Products].[Products].[Product line] )

Result: Returns the caption values of the Product line set.
Camping Equipment
Mountaineering Equipment
Personal Accessories
Outdoor Protection
Golf Equipment

children
Returns the set of children of a specified member.

Syntax
children ( member )

Example
children ( [Camping Equipment] )

Result: Returns the set of children for Camping Equipment.
Cooking Gear
Tents
Sleeping Bags
Packs
Lanterns

closingPeriod
Returns the last sibling member among the descendants of a member at "level".
This function is typically used with a time dimension.

Syntax
closingPeriod ( level [ , member ] )

Example 1
closingPeriod ( [great_outdoors_company].[Years].[Years].[Month] )

Result: 2006/Dec

412

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 2
closingPeriod ( [great_outdoors_company].[Years].[Years].[Year] )

Result: 2006

Example 3
closingPeriod ( [great_outdoors_company].[Years].[Years].[Month] , [2006 Q 4] )

Result: 2006/Dec

cousin
Returns the child member of "member2" with the same relative position as
"member1" to its parent. This function appears in the Revenue by GO Subsidiary
2005 sample report in the GO Data Warehouse (analysis) package.

Syntax
cousin ( member1 , member2 )

Example 1
cousin ( [Irons] , [Camping Equipment] )

Result: Cooking Gear

Example 2
cousin ( [Putters] , [Camping Equipment] )

Result: Sleeping Bags

completeTuple
Identifies a cell location (intersection) based on the specified members, each of
which must be from a different dimension. However, completeTuple () implicitly
includes the default member from all dimensions not otherwise specified in the
arguments, rather than the current member. CompleteTuple will use the default
measure rather than the currentMeasure in the query if the measure is not defined
in the completetuple function. This function appears in the Planned Headcount
sample report in the GO Data Warehouse (analysis) package.

Syntax
completeTuple ( member { , member } )

Example 1
completeTuple ( [Mountaineering Equipment] , [Fax] )

Result: The completeTuple does not pick up the currentMember by default as the
tuple function does. The values in the first column are identical across each year
because the default member of the Years dimension, the root member, is used
rather than the current member. Likewise, the first column displays Revenue rather
than Quantity Sold because the Revenue measure is the default from the Measures
dimension. CompleteTuple will use the default measure rather than the
currentMeasure in the query if the measure is not defined in the completetuple
function.

Appendix B. Using the expression editor

413

Quantity Sold

Mountaineering Sales by Fax

---------------

--------------

2004

$1,220,329.38

2005

$1,220,329.38

2006

$1,220,329.38

Example 2
completeTuple ( [Mountaineering Equipment] , [Fax] ,
[Quantity sold] , currentMember ( [great_outdoors_company].
[Years].[Years] ) )

Result: The completeTuple function uses the currentMember of the Years
dimension and the Quantity sold measure.
Quantity Sold

Mountaineering Sales by Fax

---------------

--------------

2004

0

2005

8,746

2006

7,860

currentMember
Returns the current member of the hierarchy during an iteration. If "hierarchy" is
not present in the context in which the expression is being evaluated, its default
member is assumed. This function appears in the Rolling and Moving Averages
interactive sample report.

Syntax
currentMember ( hierarchy )

defaultMember
Returns the default member of "hierarchy".

Syntax
defaultMember ( hierarchy )

Example 1
defaultMember ( [great_outdoors_company].[Products].[Products] )

Result: Products

Example 2
defaultMember ( [great_outdoors_company].[Years].[Years] )

Result: Year

414

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 3
defaultMember ( hierarchy ( [great_outdoors_company].[Measures].[Quantity sold] ) )

Result: Revenue

descendants
Returns the set of descendants of "member" or "set_expression" at "level" (qualified
name) or "distance" (integer 0..n) from the root. Multiple options may be specified
(separated by a space) to determine which members are returned. self: Only the
members at the specified level are included in the final set (this is the default
behaviour in the absence of any options). before: If there are any intermediate
levels between the member's level and the one specified, members from those
levels are included. If the level specified is the same as the member upon which
the function is applied, the member is included in the final set. beforewithmember:
If there are any intermediate levels between the member's level and the one
specified, members from those levels are included. The member upon which the
function is applied is also included in the final set. after: If other levels exist after
the specified level, members from those levels are included in the final set. This
function appears in the Sales Commissions for Central Europe sample report in the
GO Data Warehouse (analysis) package.

Syntax
descendants ( member|set_expression , level|distance
[ , { self|before|beforewithmember|after } ] )

Example 1
descendants ( [great_outdoors_company].[Products].[Products]
.[Products] , [great_outdoors_company].[Products].[Products].
[Product type] )

Result: Returns the set of descendants of the Products set at the Product type level.
Note: [great_outdoors_company].[Products].[Products].[Products] is the root
member of the Products hierarchy.
Cooking Gear
Sleeping Bags
Packs
Tents
...
Eyewear
Knives
Watches

Example 2
descendants ( [great_outdoors_company].[Products].[Products].[Products] , 1 )

Result: Returns the set of descendants of the Products set at the first level.
Camping Equipment
Golf Equipment
Mountaineering Equipment
Outdoor Protection
Personal Accessories

Example 3
descendants ( [great_outdoors_company].[Products].
[Products].[Products] , 3 , before )

Result: Returns the descendants of the Products set before the third level.
Appendix B. Using the expression editor

415

Camping Equipment
Cooking Gear
Sleeping Bags
Packs
Tents
...
Eyewear
Knives
Watches

Example 4
descendants ( [great_outdoors_company].[Products].
[Products].[Products] , 2 , self before )

Result: Returns the set of descendants of the Products set before and including the
second level.
Camping Equipment
Cooking Gear
Sleeping Bags
Packs
Tents
...
Eyewear
Knives
Watches

except
Returns the members of "set_expression1" that are not also in "set_expression2".
Duplicates are retained only if the optional keyword all is supplied as the third
argument.

Syntax
except ( set_expression1 , set_expression2 [ , all ] )

Example
except ( set ( [Camping Equipment] , [Mountaineering Equipment] ) ,
set ( [Camping Equipment] , [Golf Equipment] ) )

Result: Mountaineering Equipment

filter
Returns the set resulting from filtering a specified set based on the Boolean
condition. Each member is included in the result if and only if the corresponding
value of "Boolean_expression" is true.

Syntax
filter ( set_expression , Boolean_expression )

Example
filter ( [Product line] , [Gross margin] > .30 )

Result: Mountaineering Equipment

firstChild
Returns the first child of "member".

Syntax
firstChild ( member )

416

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 1
firstChild ( [By Product Lines] )

Result: Camping Equipment

Example 2
firstChild ( [Camping Equipment] )

Result: Cooking Gear

firstSibling
Returns the first child of the parent of "member".

Syntax
firstSibling ( member )

Example 1
firstSibling ( [Outdoor Protection] )

Result: Camping Equipment

Example 2
firstSibling ( [Camping Equipment] )

Result: Camping Equipment

_format
Associates a format with the expression. The format_keyword can be
PERCENTAGE_0, PERCENTAGE_1, or PERCENTAGE_2. PERCENTAGE_1 returns
a percentage with one digit to the right of the decimal point, PERCENTAGE_2
returns a percentage with two digits to the right of the decimal point.
PERCENTAGE_3 returns a percentage value as a fraction of the value 1 (for
example, 0.965).

Syntax
_format ( expression , format_keyword

)

Example
_format ( [Unit Sale Price] / [Unit Price] , PERCENTAGE_2 )

Result: 75.12%

emptySet
Returns an empty member set for "hierarchy". This is most often used as a
placeholder during development or with dynamic report design (either with the
IBM Cognos Software Development Kit or via report design). By creating a data
item that contains the emptyset function, it is possible to build complex
expressions that can later be revised by redefining the emptyset data item.

Syntax
emptySet ( hierarchy )

Example
except ( [great_outdoors_company].[Products].[Products].
[Product line] , emptyset ( [great_outdoors_company].[Products].[Products] ) )
Appendix B. Using the expression editor

417

Result: Returns the Product line set and an empty set for the Products set.
Camping Equipment
Golf Equipment
Mountaineering Equipment
Outdoor Protection
Personal Accessories

generate
Evaluates "set_expression2" for each member of "set_expression1" and joins the
resulting sets by union. The result retains duplicates only when the optional
keyword "all" is supplied as the third argument.

Syntax
generate ( set_expression1 , set_expression2 [ , all ] )

Example
generate ( [Product line] , topCount ( descendants ( currentMember
( [great_outdoors_company].[Products].[Products] ) ,
[great_outdoors_company].[Products].[Products].[Product name] ) , 2 ,
[Revenue] ) )

Result: Returns the top two products by revenue for each product line.

head
Returns the first "index_expression" elements of "set_expression". The default for
"index_expression" is 1.

Syntax
head ( set_expression [ , index_expression ] )

Example 1
head ( members ( [great_outdoors_company].[Products].[Products].
[Product line] ) )

Result: Camping Equipment

Example 2
head ( members ( [great_outdoors_company].[Products].[Products].
[Product line] ) , 2 )

Result: Returns the top two members of the Product line set.
Camping Equipment
Mountaineering Equipment

hierarchize
Orders the members of "set_expression" in a hierarchy. Members in a level are
sorted in their natural order. This is the default ordering of the members along a
dimension when no other sort conditions are specified.

Syntax
hierarchize ( set_expression )

Example
hierarchize ( set ( [Golf Equipment] , [Mountaineering Equipment] ,
[Camping Equipment] ) )

Result: Returns Camping Equipment, Golf Equipment, Mountaineering Equipment.

418

IBM Cognos Framework Manager Version 10.1.1: User Guide

hierarchy
Returns the hierarchy that contains "level", "member", or "set_expression".

Syntax
hierarchy ( level|member|set_expression )

Example 1
hierarchy ( [Cooking Gear] )

Result: Returns every member in the hierarchy that contains Cooking Gear.
Products
Camping Equipment
Cooking Gear
TrailChef Water Bag
TrailChef Canteen
...
Mountain Man Extreme
Mountain Man Deluxe

Example 2
hierarchy ( [great_outdoors_company].[Products].[Products].[Product line] )

Result: Returns every member in the hierarchy that contains the Product line.
Products
Camping Equipment
Cooking Gear
TrailChef Water Bag
TrailChef Canteen
...
Mountain Man Extreme
Mountain Man Deluxe

item
Returns a member from the "index" location within "set_expression". The index
into the set is zero based.

Syntax
item ( set_expression , index )

Example
item ( children ( [Camping Equipment] ) , 2 )

Result: Sleeping Bags

intersect
Returns the intersection of "set_expression1" and "set_expression2". The result
retains duplicates only when the optional keyword "all" is supplied as the third
argument.

Syntax
intersect ( set_expression1 , set_expression2 [ , all ] )

Example
intersect ( set ( [Camping Equipment] , [Mountaineering Equipment] )
, set ( [Camping Equipment] , [Outdoor Protection] , ) , all )

Result: Camping Equipment
Appendix B. Using the expression editor

419

lag
Returns the sibling member that is "index_expression" number of positions prior to
"member".

Syntax
lag ( member , index_expression )

Example 1
lag ( [Tents] , 1 )

Result: Cooking Gear

Example 2
lag ( [Tents] , -2 )

Result: Packs

lastChild
Returns the last child of a specified member.

Syntax
lastChild ( member )

Example 1
lastChild ( Cooking Gear )

Result: TrailChef Utensils

Example 2
lastChild ( [By Product Line] )

Result: Golf Equipment

lastPeriods
Returns the set of members from the same level that ends with "member". The
number of members returned is the absolute value of "integer_expression". If
"integer_expression" is negative, members following and including the specified
member are returned. Typically used with a time dimension. This function appears
in the Rolling and Moving Averages interactive sample report.

Syntax
lastPeriods ( integer_expression , member )

Example 1
lastPeriods ( 2 , [2006 Q 4] )

Result: Returns the last two members from the level that ends with 2006 Q 4.
2006 Q 3
2006 Q 4

Example 2
lastPeriods ( -3 , [2006 Q 4] )

Result: Returns the last three members from the level that starts with 2006 Q 4.

420

IBM Cognos Framework Manager Version 10.1.1: User Guide

2006 Q 4
2007 Q 1
2007 Q 2

lastSibling
Returns the last child of the parent of a specified member.

Syntax
lastSibling ( member )

Example
lastSibling ( [Camping Equipment] )

Result: Golf Equipment

lead
Returns the sibling member that is "index_expression" number of positions after
"member". If "index_expression" is negative, returns the sibling member that is
"index_expression" number of positions before "member".

Syntax
lead ( member , index_expression )

Example 1
lead ( [Outdoor Protection] , 1 )

Result: Personal Accessories

Example 2
lead ( [Outdoor Protection] , -2 )

Result: Golf Equipment

level
Returns the level of "member".

Syntax
level ( member )

Example
level ( [Golf Equipment] )

Result: Returns the members on the Golf Equipment level.
Camping Equipment
Mountaineering Equipment
Personal Accessories
Outdoor Protection
Golf Equipment

levels
Returns the level in "hierarchy" whose distance from the root is specified by
"index".

Syntax
levels ( hierarchy , index )

Appendix B. Using the expression editor

421

Example 1
levels ( [great_outdoors_company].[Products].[Products] , 2 )

Result: Returns the members two levels from the root Products hierarchy.
Cooking Gear
Sleeping Bags
Packs
Tents
...
Irons
Putters
Woods
Golf Accessories

Example 2
levels ( [great_outdoors_company].[Products].[Products] , 1 )

Result: Returns the members one level from the root Products hierarchy.
Camping Equipment
Mountaineering Equipment
Personal Accessories
Outdoor Protection
Golf Equipment

linkMember
Returns the corresponding member in "level" or "hierarchy" (of the same
dimension). For level-based hierarchies, a level must be specified as the second
argument, and for parent-child hierarchies, a hierarchy must be specified. An
exception is thrown when the second parameter does not resolve to a hierarchy of
the member's dimension. Note that calculated members are not supported as the
first argument.

Syntax
linkMember ( member , level|hierarchy )

members
Returns the set of members in "hierarchy" or "level". In the case of a hierarchy, the
order of the members in the result is not guaranteed. If a predictable order is
required, an explicit ordering function (such as hierarchize) must be used.

Syntax
members ( hierarchy|level )

Example 1
members ( [great_outdoors_company].[Years].[Years] )

Result: Returns the members in Years.

Example 2
members ( [great_outdoors_company].[Products].[Products].[Product line] )

Result: Returns the members in Product line.

nextMember
Returns the next member in the "member" level.

422

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
nextMember ( member )

Example
nextMember ( [Outdoor Protection] )

Result: Golf Equipment

openingPeriod
Returns the first sibling member among the descendants of a member at "level".
This function is typically used with a time dimension.

Syntax
openingPeriod ( level [ , member ] )

Example 1
openingPeriod ( [great_outdoors_company].[Years].[Years].[Month] )

Result: 2004/Jan

Example 2
openingPeriod ( [great_outdoors_company].[Years].[Years].[Year] )

Result: 2004

Example 3
openingPeriod ( [great_outdoors_company].[Years].[Years].[Month] , [2006 Q 4] )

Result: 2006/Oct

order
Arranges the members of "set_expression" according to their "value_expression"
and the third parameter. ASC and DESC arrange members in ascending or
descending order, respectively, according to their position in the set hierarchy. Then
the children of each member are arranged according to "value_expression". BASC
and BDESC arrange members in the set without regard to the hierarchy. In the
absence of an explicit specification, ASC is the default.

Syntax
order ( set_expression , value_expression [ , ASC|DESC|BASC|BDESC ] )

Example 1
order ( members ( [Great Outdoors Company].[Product].[Product].[Product type] ) ,
[Quantity sold] , BASC )

Result: Returns the quantity sold for each product type in no particular order.

Appendix B. Using the expression editor

423

Product Line

Quantity

-------------

-------------

Woods

13,924

Irons

14,244

Safety

22,332

...

...

Sunscreen

215,432

Insect Repellents

270,074

Lanterns

345,096

Example 2
order ( members ( [Great Outdoors Company].[Product].[Product].[Product type] ) ,
[Quantity sold] , ASC )

Result: Returns the quantity sold for each product type in ascending order.
Product Line

Quantity

-------------

-------------

Woods

13,924

Irons

14,244

Putters

23,244

...

...

Tents

130,664

Cooking Gear

198,676

Lanterns

345,096

ordinal
Returns the zero-based ordinal value (distance from the root level) of "level".

Syntax
ordinal ( level )

Example 1
ordinal ( [great_outdoors_company].[Products].[Products].[Product line] )

Result: 1

Example 2
ordinal ( [great_outdoors_company].[Products].[Products].[Product type] )

Result: 2

424

IBM Cognos Framework Manager Version 10.1.1: User Guide

parallelPeriod
Returns a member from a prior period in the same relative position as "member".
This function is similar to the cousin function, but is more closely related to time
series. It takes the ancestor of "member" at "level" (called "ancestor") and the
sibling of "ancestor" that lags by "integer_expression" positions, and returns the
parallel period of "member" among the descendants of that sibling. When
unspecified, "integer_expression" defaults to 1 and "member" defaults to the
current member.

Syntax
parallelPeriod ( level [ , integer_expression [ , member ] ] )

Example 1
parallelPeriod ( [great_outdoors_company].[Years].[Years].
[Quarter] , -1 , [2006/Aug] )

Result: 2006/Nov

Example 2
parallelPeriod ( [great_outdoors_company].[Years].[Years].
[Quarter] , 1 , [2006/Aug] )

Result: 2006/May

Example 3
parallelPeriod ( [great_outdoors_company].[Years].[Years].
[Year] , 2 , [2006/Aug] )

Result: 2004/Aug

parent
Returns the member that is the parent of "member" or "measure".

Syntax
parent ( member|measure )

Example
parent ( [Cooking Gear] )

Result: Camping Equipment

periodsToDate
Returns a set of sibling members from the same level as "member", as constrained
by "level". It locates the ancestor of "member" at "level" and returns that ancestor's
descendants at the same level as "member" (up to and including "member").
Typically used with a time dimension. This function is displayed in the Rolling
and Moving Averages interactive sample report.

Syntax
periodsToDate ( level , member )

Example
periodsToDate ( [great_outdoors_company].[Years].
[Years].[Year] , [2004/Mar] )

Appendix B. Using the expression editor

425

Result: Returns values for [2004/Jan], [2004/Feb], [2004/Mar]

prevMember
Returns the member that immediately precedes "member" in the same level. This
function is displayed in the Sales Growth Year Over Year sample report in the GO
Data Warehouse (analysis) package.

Syntax
prevMember ( member )

Example 1
prevMember ( [Outdoor Protection] )

Result: Personal Accessories

Example 2
prevMember ( [2005] )

Result: 2004

member
Defines a member based on "value_expression" in "hierarchy". "String1" identifies
the member created by this function. It must be unique in the query and different
from any other member in the same hierarchy. "String2" is the caption of the
member; if it is absent, the caption is empty. To ensure predictable results, you
should supply the "hierarchy". Note: All calculations used as grouping items whose
sibling items are other calculations or member sets should be explicitly assigned to
a hierarchy using this function. The results are not predictable otherwise. The only
exception is where the calculation involves only members of the same hierarchy as
the siblings. In this case, the calculation is assumed to belong to that hierarchy.

Syntax
member ( value_expression [ , string1 [ , string2 [ , hierarchy ] ] ] )

Example
member ( total ( currentMeasure within set filter
( [great_outdoors_company].[Products].[Products].[Product name] ,
caption ( [great_outdoors_company].[Products].[Products].[Product name] )
starts with ’B’ ) ) , ’BProducts’ , ’B Products’ ,
[great_outdoors_company].[Products].[Products] )

Result: Returns the quantity sold and revenue for all products that start with the
letter B.

nestedSet
This function is intended for use only by IBM Cognos Analysis Studio.

Syntax
nestedSet ( set_expression1 , set_expression2 )

set
Returns the list of members defined in the expression. The members must belong
to the same hierarchy.

Syntax
set ( member { , member } )

426

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
set ( [Golf Equipment] , [Irons] , [TrailChef Cup] )

Result: Returns Golf Equipment, Irons, and TrailChef Cup.

siblings
Returns the children of the parent of the specified member.

Syntax
siblings ( member )

Example
siblings ( [Golf Equipment] )

Result: Returns the siblings of Golf Equipment.
Camping Equipment
Golf Equipment
Mountaineering Equipment
Outdoor Protection
Personal Accessories

tail
Returns the last "index_expression" elements of "set expression". The default for
"index_expression" is 1.

Syntax
tail ( set_expression [ , index_expression ] )

Example 1
tail (members ( [great_outdoors_company].[Products].[Products]
.[Product line] ) )

Result: Returns the last member of the Product line set.
Personal Accessories

Example 2
tail ( members ( [great_outdoors_company].[Products].[Products]
.[Product line] ) , 2 )

Result: Returns the last two members of the Product line set.
Outdoor Protection
Personal Accessories

topCount
Sorts a set according to the values of "numeric_expression" evaluated at each of the
members of "set_expression" and returns the top "index_expression" members.

Syntax
topCount ( set_expression , index_expression , numeric_expression )

Example
topCount ( [great_outdoors_company].[Products].
[Products].[Product line] , 2 , [Revenue] )

Result: Returns the top two revenues for the Product line set.
Appendix B. Using the expression editor

427

Product line

Revenue

-------

-------

Camping Equipment

$89,713,990.92

Personal Accessories

$31,894,465.86

topPercent
Sorts the set specified in "set_expression" in descending order and returns the
topmost elements from the sorted set whose cumulative percentage of the total is
greater than or equal to "percentage".

Syntax
topPercent ( set_expression , percentage , numeric_expression )

Example
topPercent ( set ( [Camping Equipment] , [Golf Equipment] ,
[Mountaineering Equipment] ) , 40 , [2006] )

Result: or the set of Camping Equipment, Golf Equipment, and Mountaineering
Equipment, returns the members with the largest Gross profit whose total for the
year 2006 is at least 40% of the overall total.

topSum
Sorts the set specified in "set_expression" in descending order and returns the
topmost elements from the sorted set whose cumulative total is greater than or
equal to "value".

Syntax
topSum ( set_expression , value , numeric_expression )

Example
topSum ( children ( [Products] ) , 16000000 , tuple ( [2006] ,
[great_outdoors_company].[Measures].[Gross profit] ) )

Result: For the Product line members, returns the members with the smallest Gross
profit whose total for the year 2006 is at least $6,000,000.

tuple
Identifies a cell location (intersection) based on the specified members, each of
which must be from a different dimension. This function implicitly includes the
current member from all dimensions that are not otherwise specified in the
arguments. The current member of any dimension not specified in the evaluating
context is assumed to be the default member of that dimension. The value of this
cell can be obtained with the "value" function.

Syntax
tuple (

member { , member } )

Example
tuple ( [Mountaineering Equipment] , [Fax] )

Result: Returns the Mountaineering Equipment sales by fax.

428

IBM Cognos Framework Manager Version 10.1.1: User Guide

union
Returns data for "set_expression1" and "set_expression2". The result retains
duplicates only when the optional keyword "all" is supplied as the third argument.

Syntax
union ( set_expression1 , set_expression2 [ , all ] )

Example 1
union ( set ( [Camping Equipment] , [Golf Equipment] ) , set
( [Golf Equipment] , [Mountaineering Equipment] ) )

Result: Returns data for both sets as one new set, showing the Golf Equipment
column only once.

Example 2
union ( set ( [Camping Equipment] , [Golf Equipment] ) , set
( [Golf Equipment] , [Mountaineering Equipment] ) , all )

Result: Returns data for both sets as one new set, showing the Golf Equipment
column twice.

roleValue
Returns the value of the attribute that is associated with the role whose name is
specified by "string" within the specified context. "Member" or "set_expression" is
optional only in a number of limited circumstances, where it can be derived from
another context. Applications can be made portable across different data sources
and models by accessing attributes by role rather than by query item ID. For
dimensionally-modeled relational (DMR) data sources, assignment of roles is the
modeler's responsibility. Intrinsic roles that are defined for members of all data
source types include: '_businessKey', '_memberCaption', '_memberDescription',
'_memberUniqueName'. Additional roles can be defined in IBM Cognos
Framework Manager for each level in a hierarchy. For example, a Product type
level may have an attribute column called "Type Shipping Container", and the
Product level may have a "Product Shipping Container" attribute. Each of these
could be assigned a custom role in Framework Manager called "Container". The
property could then be referenced independently of the actual column name by
using the roleValue function.

Syntax
roleValue ( string [ , member|set_expression ] )

Example 1
roleValue ( ’_memberCaption’ , [Sales].[Product].[Product].
[Product line] -> [all].[1] )

Result: Camping Equipment

Example 2
roleValue ( ’_businessKey’ , [great_outdoors_company].[Years]
.[Years].[Year] )

Result: Returns the value of the attribute that is associated with the business key
role.
("2004-01-01","2004-12-31")
("2005-01-01","2005-12-31")
("2006-01-01","2006-12-31")
Appendix B. Using the expression editor

429

Example 3
roleValue ( ’_memberUniqueName’ , [great_outdoors_company]
.[Years].[Years].[Year] )

Result: Returns the value of the attribute that is associated with the MUN role.
[great_outdoors_company].[Years].[Years].[Year] ->:[PC].
[Years (Root)].[20040101-20041231]
[great_outdoors_company].[Years].[Years].[Year] ->:[PC].
[Years (Root)].[20050101-20051231]
[great_outdoors_company].[Years].[Years].[Year] ->:[PC].
[Years (Root)].[20060101-20061231]

rootMember
Returns the root member of a single-root hierarchy. This function is displayed in
the Promotion Success sample report in the GO Data Warehouse (analysis)
package.

Syntax
rootMember ( hierarchy )

rootMembers
Returns the root members of a hierarchy.

Syntax
rootMembers ( hierarchy )

Example
rootMembers ( [great_outdoors_company].[Years].[Years] )

Result: By Time

subset
Returns a subset of members in "set_expression" starting at "index_expression1"
from the beginning. If the count "index_expression2" is specified, that many
members are returned (if available). Otherwise, all remaining members are
returned.

Syntax
subset ( set_expression, index_expression1 [ , index_expression2 ] )

Example 1
subset ( members ( [great_outdoors_company].[Products]
.[Products].[Product line] ) , 2 )

Result: Returns the members of the Product line set starting at the second member.
Mountaineering Equipment
Outdoor Protection
Personal Accessories

Example 2
subset ( members ( [great_outdoors_company].[Products].[Products]
.[Product line] ) , 2 , 2 )

Result: Returns two members of the Product line set starting at the second
member.

430

IBM Cognos Framework Manager Version 10.1.1: User Guide

Mountaineering Equipment
Outdoor Protection

unique
Removes all duplicates from "set_expression". The remaining members retain their
original order.

Syntax
unique ( set_expression )

value
Returns the value of the cell identified by "tuple". Note that the default member of
the Measures dimension is the Default Measure.

Syntax
value ( tuple )

Example 1
value ( tuple ( [great_outdoors_company].[Years].[Years].[Year] ->:[PC]
.[Years (Root)].[20040101-20041231] , [great_outdoors_company]
.[Measures].[Revenue] ) )

Result: $34,750,563.50

Example 2
value ( tuple ( [2004] , [Camping Equipment] , [Revenue] ) )

Result: $20,471,328.88

Aster
ascii
Returns a number representing the ASCII code value of the leftmost character of
"string_exp", e.g., ascii('A') is 65.

Syntax
ascii ( string_exp )

chr
Returns the character that has the ASCII code value specified by "integer_exp".
"Integer_exp" should be between 0 and 255.

Syntax
chr ( integer_exp )

current_schema
Returns the name of the current schema

Syntax
current_schema ()

date_trunc
Returns the timestamp to the specified precision.

Appendix B. Using the expression editor

431

Syntax
date_trunc ( string_exp, timestamp_exp)

translate
Returns "string_exp1", with each occurrence of each character in "string_exp2"
replaced by its corresponding character in "string_exp3".

Syntax
translate ( string_exp1, string_exp2, string_exp3 )

version
Returns the string value of the database version.

Syntax
version ( )

Aster Math
cbrt:
Returns the cube root of "numeric_exp1".
Syntax
cbrt ( numeric_exp )

ln:
Returns the natural logarithm of "numeric_exp1".
Syntax
ln ( numeric_exp )

log:
Returns the base 10 logarithm of "numeric_exp1" or logarithm to the base
"numeric_exp2".
Syntax
log ( numeric_exp1[, numeric_exp2] )

pi:
Returns the constant of pi.
Syntax
pi( )

Aster Trigonometry
acos:
Returns the arccosine of "numeric_exp" in radians. The arccosine is the angle
whose cosine is "numeric_exp".

432

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
acos ( numeric_exp )

asin:
Returns the arcsine of "numeric_exp" in radians. The arcsine is the angle whose
sine is "numeric_exp".
Syntax
asin ( numeric_exp )

atan:
Returns the arctangent of "numeric_exp" in radians. The arctangent is the angle
whose tangent is "numeric_exp".
Syntax
atan ( numeric_exp )

atan2:
Returns the arctangent of the x and y coordinates specified by "numeric_exp1" and
"numeric_exp2", respectively, in radians. The arctangent is the angle whose tangent
is "numeric_exp2" / "numeric_exp1".
Syntax
atan2 ( numeric_exp1, numeric_exp2 )

cos:
Returns the cosine of "numeric_exp", where "numeric_exp" is an angle expressed in
radians.
Syntax
cos ( numeric_exp )

cot:
Returns the cotangent of "numeric_exp", where "numeric_exp" is an angle
expressed in radians.
Syntax
cot ( numeric_exp )

degrees:
Returns the degrees where "numeric_exp" is an angle expressed in radians.
Syntax
degrees ( numeric_exp )

radians:
Returns the radians where "numeric_exp" is an angle expressed in degrees.

Appendix B. Using the expression editor

433

Syntax
radians ( numeric_exp )

sin:
Returns the sine of "numeric_exp", where "numeric_exp" is an angle expressed in
radians.
Syntax
sin ( numeric_exp )

tan:
Returns the tangent of "numeric_exp", where "numeric_exp" is an angle expressed
in radians.
Syntax
tan ( numeric_exp )

Aster String
overlay:
Returns the "string_exp1" replacing "string_exp2" from character position
numeric_exp.
Syntax
overlay ( string_exp1, string_exp2, numeric_exp1 [, numeric_exp2] )

btrim:
Returns string_exp1 after removing the longest string of characters in string_exp2.
Syntax
btrim( string_exp1 [, string_exp2] )

initcap:
Returns "string_exp", with the first letter of each word in uppercase and all other
letters in lowercase. Words are delimited by white space or characters that are not
alphanumeric.
Syntax
initcap ( string_exp )

lpad:
Returns "string_exp1" padded to length "integer_exp" with occurrences of
"string_exp2". If "string_exp1" is longer than "integer_exp", the appropriate portion
of "string_exp1" is returned.
Syntax
lpad ( string_exp1, integer_exp [ , string_exp2 ] )

ltrim:

434

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns "string_exp1", with leading characters removed up to the first character
not in "string_exp2", e.g., ltrim('xyxXxyAB', 'xy') returns 'XxyAB'.
Syntax
ltrim ( string_exp1 [ , string_exp2 ] )

md5:
Returns the MD5 hash of "string_exp1".
Syntax
md5 ( string_exp1 )

to_hex:
Returns the hexadecimal string representation of "numeric_exp1".
Syntax
to_hex ( numeric_exp1 )

repeat:
Returns the "string_exp" repeated "numeric_exp1" times.
Syntax
repeat ( string_exp, numeric_exp1 )

replace:
Returns "string_exp" having replaced "string_exp2" with "string_exp3".
Syntax
replace( string_exp, string_exp2, string_exp3)

rpad:
Returns "string_exp1" right-padded to length "integer_exp" with occurrences of
"string_exp2". If "string_exp1" is longer than "integer_exp", the appropriate portion
of "string_exp1" is returned. If "string_exp2" is not specified, then spaces are used.
Syntax
rpad ( string_exp1, integer_exp [ , string_exp2 ] )

rtrim:
Returns "string_exp1", with final characters removed after the last character not in
"string_exp2", e.g., rtrim('ABxXxyx', 'xy') returns 'ABxX'. If "string_exp2" is not
specified, the final space characters are removed.
Syntax
rtrim ( string_exp1 [ , string_exp2 ] )

split_part:
Returns "numeric_exp" field having split "string_exp1" on "string_exp2".
Appendix B. Using the expression editor

435

Syntax
split_part ( string_exp1 , string_exp2 , numeric_exp )

Aster Data Type Formatting
to_char:
Returns the string representation of "exp" with the format of "string_exp". "Exp"
can be either a date value or a numeric value.
Syntax
to_char ( exp , string_exp

)

to_date:
Converts "string_exp1" to a date value as specified by the format "string_exp2".
Syntax
to_date ( string_exp1 , string_exp2 )

to_number:
Converts "string_exp1" to a numeric value as specified by the format "string_exp2".
Syntax
to_number ( string_exp1, string_exp2 )

to_timestamp:
Converts "string_exp1" to a timestamp value as specified by the format
"string_exp2".
Syntax
to_timestamp ( string_exp1, string_exp2 )

DB2
ascii
Returns the ASCII code value of the leftmost character of the argument as an
integer.

Syntax
ascii ( string_expression )

Example
ascii ( a )

Result: Returns 65, the ASCII code value of "a".

ceiling
Returns the smallest integer greater than or equal to "numeric_expression".

Syntax
ceiling ( numeric_expression )

436

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
ceiling ( 0.75 )

Result: Returns 0.8.

char
Returns a string representation of a date/time value or a decimal number.

Syntax
char ( expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
chr ( integer_expression )

Example
chr ( 65 )

Result: Returns a, the character for the ASCII code value of 65.

concat
Returns a string that is the result of concatenating "string_expression1" with
"string_expression2".

Syntax
concat ( string_expression1, string_expression2 )

Example
concat ( [Sales target (query)].[Sales staff].[First name],
[Sales target (query)].[Sales staff].[Last name] )

Result: Returns the first name and last name; e.g., Bob Smith.

date
Returns a date from a single input value. "Expression" can be a string or integer
representation of a date.

Syntax
date ( expression )

Example
date ( ’1998-01-08’ )

Result: Returns 8 January 1998.

day
Returns the day of the month (1-31) from "date_expression". "Date_expression" can
be a date value or a string representation of a date.

Syntax
day ( date_expression )

Appendix B. Using the expression editor

437

Example
day ( ’1998-01-08’ )

Result: Returns 8.

dayname
Returns a character string containing the data source-specific name of the day (for
example, Sunday through Saturday or Sun. through Sat. for a data source that uses
English, or Sonntag through Samstag for a data source that uses German) for the
day portion of "date_expression". "Date_expression" can be a date value or a string
representation of a date.

Syntax
dayname ( date_expression )

Example
dayname ( ’1998-01-08’ )

Result: Returns Thursday.

dayofweek
Returns the day of the week in "date_expression" as an integer in the range 1 to 7,
where 1 represents Sunday. "date_expression" can be a date value or a string
representation of a date.

Syntax
dayofweek ( date_expression )

Example
dayofweek ( ’1998-01-08’ )

Result: Returns 5.

dayofweek_iso
Returns the day of the week in "date_expression" as an integer in the range 1 to 7,
where 1 represents Monday. "date_expression" can be a date value or a string
representation of a date.

Syntax
dayofweek_iso ( date_expression )

Example
dayofweek_iso ( ’1998-01-08’ )

Result: Returns 4.

dayofyear
Returns the day of the year in "date_expression" as an integer in the range 1 to
366. "Date_expression" can be a date value or a string representation of a date.

Syntax
dayofyear ( date_expression )

Example
dayofyear ( current_date )

438

IBM Cognos Framework Manager Version 10.1.1: User Guide

Result: Returns the day of the year for the current date; e.g., if it was January 28,
the expression would return 28.

days
Returns an integer representation of a date. "Expression" can be a date value or a
string representation of a date.

Syntax
days ( expression )

dec
Returns the decimal representation of "string_expression1" with precision
"numeric_expression1", scale "numeric_expression2", and decimal character
"string_expression2". "String_expression1" must be formatted as an SQL Integer or
Decimal constant.

Syntax
dec ( string_expression1 [ , numeric_expression1
[ , numeric_expression2 [ , string_expression2 ] ] ] )

decimal
Returns the decimal representation of "string_expression1" with precision
"numeric_expression1", scale "numeric_expression2" and decimal character
"string_expression2". "String_expression1" must be formatted as an SQL Integer or
Decimal constant.

Syntax
decimal ( string_expression1 [ , numeric_expression1
[ , numeric_expression2 [ , string_expression2 ] ] ] )

difference
Returns an integer value representing the difference between the values returned
by the data source-specific soundex function for "string_expression1" and
"string_expression2". The value returned ranges from 0 to 4, with 4 indicating the
best match. Note that 4 does not mean that the strings are equal.

Syntax
difference ( string_expression1 , string_expression2 )

Example 1
difference ([Sales target (query)].[Sales staff].
[First name],[Sales (query)].[Retailers].[Contact first name])

Result: 0

Example 2
difference ([Sales target (query)].[Sales staff].
[First name],[Sales target (query)].[Sales staff].[First name])

Result: 4

digits
Returns the character string representation of a non-floating point number.

Syntax
digits ( numeric_expression )
Appendix B. Using the expression editor

439

double
Returns the floating-point representation of an expression. "Expression" can either
be a numeric or string expression.

Syntax
double ( expression )

event_mon_state
Returns the operational state of a particular state monitor.

Syntax
event_mon_state ( string_expression )

float
Returns the floating-point representation of a number.

Syntax
float ( numeric_expression )

hex
Returns the hexadecimal representation of a value.

Syntax
hex ( expression )

hour
Returns the hour, an integer from 0 (midnight) to 23 (11:00 pm), from
"time_expression". "Time_expression" can be a time value or a string representation
of a time.

Syntax
hour ( time_expression )

Example
hour ( 01:22:45 )

Result: Returns 1.

insert
Returns a string where "integer_expression2" characters have been deleted from
"string_expression1" beginning at "integer_expression1" and where
"string_expression2" has been inserted into "string_expression1" at its start. The
first character in the string is at position 1.

Syntax
insert ( string_expression1, integer_expression1,
integer_expression2, string_expression2 )

integer
Returns the integer representation of an expression. "Expression" can be a numeric
value or a string representation of a number.

Syntax
integer ( expression )

440

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
integer ( 84.95 )

Result: 85

int
Returns the integer representation of an expression. "Expression" can be a numeric
value or a string representation of a number.

Syntax
int ( expression )

Example
int ( 84.95 )

Result: 85

julian_day
Returns an integer value representing the number of days from January 1, 4712 BC
(the start of the Julian date calendar) to the date value specified in "expression".
"Expression" can be a date value or a string representation of a date.

Syntax
julian_day ( expression )

Example
julian_day ( ’2009-06-29’ )

Result: 2455012.22130739595741034

lcase
Returns "string_expression" with all uppercase characters shifted to lowercase.

Syntax
lcase ( string_expression )

Example
lcase ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with no uppercase letters.

left
Returns the leftmost "integer_expression" characters of "string_expression".

Syntax
left ( string_expression, integer_expression )

Example
left ( [Sales (query)].[Sales staff].[Last name] , 3 )

Result: Returns the first three characters of each last name.

length
Returns the length of the operand in bytes. Exception: double byte string types
return the length in characters.
Appendix B. Using the expression editor

441

Syntax
length ( expression )

Example
length ( [Sales (query)].[Sales staff].[Record start date] )

Result: Returns 4; dates always return a value of 4.

locate
Returns the starting position of the first occurrence of "string_expression1" within
"string_expression2". The search starts at position start "integer_expression" of
"string_expression2". The first character in a string is at position 1. If
"string_expression1" is not found, zero is returned.

Syntax
locate ( string_expression1, string_expression2 [ , integer_expression ] )

Example
locate ( A, [Sales (query)].[Sales staff].[Last name] , 2 )

Result: Returns the position of the character A in the last names starting at the
second character of the last name.

long_varchar
Returns a long string.

Syntax
long_varchar ( string_expression )

ltrim
Returns "string_expression" with leading spaces removed.

Syntax
ltrim ( string_expression )

Example
ltrim ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with any leading spaces removed.

microsecond
Returns the microsecond (time-unit) part of a value. "Expression" can be a
timestamp or a string representation of a timestamp.

Syntax
microsecond ( expression )

Example
microsecond ( 01:45:34.056 )

Result: Returns 056.

442

IBM Cognos Framework Manager Version 10.1.1: User Guide

midnight_seconds
Returns an integer value in the range 0 to 86400 representing the number of
seconds between midnight and time value specified in the argument. "Expression"
can be a time value, a timestamp or a string representation of a time.

Syntax
midnight_seconds ( expression )

Example
midnight_seconds ( 01:45:34.056 )

Result: Returns 6334.

minute
Returns the minute (an integer from 0-59) from "time_expression".
"Time_expression" can be a time value, a timestamp, or a string representation of a
time.

Syntax
minute ( time_expression )

Example
minute ( 01:45:34.056 )

Result: Returns 45.

month
Returns the month (an integer from 1-12) from "date_expression".

Syntax
month ( date_expression )

Example
month ( 2005-11-01 )

Result: Returns 11.

monthname
Returns a character string containing the data source-specific name of the month
(for example, January through December or Jan. through Dec. for an English data
source, or Januar through Dezember for a German data source) for the month
portion of "date_expression".

Syntax
monthname ( date_expression )

Example
monthname ( 2005-11-01 )

Result: November

quarter
Returns the quarter in "date_expression" as a number in the range 1 to 4, where 1
represents January 1 through March 31.

Appendix B. Using the expression editor

443

Syntax
quarter ( date_expression )

Example
quarter ( 2005-11-01 )

Result: Returns 4.

radians
Returns the number of radians converted from "numeric_expression" degrees.

Syntax
radians ( numeric_expression )

repeat
Returns a string consisting of "string_expression" repeated "integer_expression"
times.

Syntax
repeat ( string_expression, integer_expression )

Example
repeat ( XYZ, 3 )

Result: Returns XYZXYZXYZ.

replace
Replaces all occurrences of "string_expression2" in "string_expression1" with
"string_expression3".

Syntax
replace ( string_expression1, string_expression2, string_expression3 )

Example
replace ( [Sales (query)].[Sales staff].[Position code], A, a )

Result: Returns position codes with all occurrences of "A" replaced by "a".

right
Returns the rightmost "integer_expression" characters of "string_expression".

Syntax
right ( string_expression, integer_expression )

Example
right ( [Sales (query)].[Sales staff].[Position code], 3 )

Result: Returns the rightmost 3 characters of each position code.

round
Returns "numeric_expression" rounded to "integer_expression" places to the right
of the decimal point. If "integer_expression" is negative, "numeric_expression" is
rounded to the nearest absolute value "integer_expression" places to the left of the
decimal point. Rounding takes place before data formatting is applied.

444

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
round ( numeric_expression, integer_expression )

Example
round ( 3.14159265, 3 )

Result: Returns 3.142.

rtrim
Returns "string_expression" with trailing spaces removed.

Syntax
rtrim ( string_expression )

Example
rtrim ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with any spaces at the end of the name removed.

second
Returns the second (an integer from 0-59) from "time_expression".

Syntax
second ( time_expression )

Example
second ( 01:45:34.056 )

Result: Returns 34.

sign
Returns an indicator of the sign of "numeric_expression": +1 if
"numeric_expression" is positive, 0 if zero, or -1 if negative.

Syntax
sign ( numeric_expression )

Example
sign ( [Revenue] )

Result: Returns + for positive values and - for negative values.

smallint
Returns the small integer representation of a number.

Syntax
smallint ( expression )

soundex
Returns a 4 character string code obtained by systematically abbreviating words
and names in "string_expression" according to phonetics. Can be used to determine
if two strings sound the same. For example, does sound-of ('SMITH') = sound-of
('SMYTH').

Appendix B. Using the expression editor

445

Syntax
soundex ( string_expression )

space
Returns a string consisting of "integer_expression" spaces.

Syntax
space ( integer_expression )

Example
space ( 5 )

Result: Returns 5 spaces.

substr
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters. The first character in
"string_expression" is at position 1.

Syntax
substr ( string_expression , integer_expression1 [ , integer_expression2 ] )

Example
substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

table_name
Returns an unqualified name of a table or view based on the object name in
"string_expression1" and the schema name given in "string_expression2". It is used
to resolve aliases.

Syntax
table_name ( string_expression1 [ , string_expression2 ] )

table_schema
Returns the schema name portion of the two-part table or view name based on the
object name in "string_expression1" and the schema name in "string_expression2".
It is used to resolve aliases.

Syntax
table_schema ( string_expression1 [ , string_expression2 ] )

time
Returns a time from a value.

Syntax
time ( expression )

timestamp
Returns a timestamp from a value or a pair of values. "Expression1" must represent
a date value, and "expression2" must represent a time value.

Syntax
timestamp ( expression1 [ , expression2 ] )

446

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
timestamp ( 11 November 2005 , 12:00:00.000000 )

Result: Returns 2005-11-11-12:00:00.000000.

timestamp_iso
Returns a datetime in the ISO format (yyyy-mm-dd hh:mm:ss.nnnnnn) converted
from the IBM format (yyyy-mm-dd-hh.mm.ss.nnnnnn). If "expression" is a time, it
inserts the value of the CURRENT DATE for the date elements and zero for the
fractional time element.

Syntax
timestamp_iso ( expression )

Example
timestamp_iso ( 11 November 2005 , 12:00:00.000000 )

Result: Returns 2005-11-11 12:00:00.000000.

timestampdiff
Returns an estimated number of intervals of type "expression1" based on the
difference between two timestamps. "Expression2" is the result of subtracting two
timestamp types and converting the result to CHAR. Valid values of "expression1"
are: 1 Fractions of a second; 2 Seconds; 4 Minutes; 8 Hours; 16 Days; 32 Weeks; 64
Months; 128 Quarters; 256 Years.

Syntax
timestampdiff ( expression1, expression2 )

to_char
Returns the string representation of a timestamp with the format of
"string_expression".

Syntax
to_char ( timestamp_expression , string_expression )

translate
Returns "string_expression1" in which characters from "string_expression3" are
translated to the equivalent characters in "string_expression2". "String_expression4"
is a single character that is used to pad "string_expression2" if it is shorter than
"string_expression3". If only "string_expression1" is present, then this function
translates it to uppercase characters.

Syntax
translate ( string_expression1 [ , string_expression2, string_expression3
[ , string_expression4 ] ] )

Example 1
translate ( ’abcdefg’ )

Result: Returns ABCDEFG.

Appendix B. Using the expression editor

447

Example 2
translate ( ’mnlop’ , n, m , - )

Result: Returns n-nlop.

trunc
Returns "numeric_expression1" truncated to "numeric_expression2" places to the
right of the decimal point. If "numeric_expression2" is negative,
"numeric_expression1" is truncated to the absolute value of "numeric_expression2"
places to the left of the decimal point.

Syntax
trunc ( numeric_expression1, numeric_expression2 )

Example
trunc ( 3.14159265, 3 )

Result: Returns 3.141.

truncate
Returns "numeric_expression1" truncated to "numeric_expression2" places to the
right of the decimal point. If "numeric_expression2" is negative,
"numeric_expression1" is truncated to the absolute value of "numeric_expression2"
places to the left of the decimal point.

Syntax
truncate ( numeric_expression1, numeric_expression2 )

Example
truncate ( 3141.59265, -3 )

Result: Returns 3.

ucase
Returns "string_expression" with all lowercase characters shifted to uppercase.

Syntax
ucase ( string_expression )

Example
ucase ( XY896Zbced789 )

Result: Returns XY896ZBCED789.

value
Returns the first non null argument (or null if all arguments are null). The Value
function takes two or more arguments.

Syntax
value ( expression_list )

Example
value ( [Unit cost], [Unit price], [Unit sale price] )

Result: Returns the first non null value.

448

IBM Cognos Framework Manager Version 10.1.1: User Guide

varchar
Returns a VARCHAR representation of expression, with length
numeric_expression.

Syntax
varchar ( expression [ , numeric_expression ] )

week
Returns the week of the year in "date_expression" as an integer value in the range
1 to 53.

Syntax
week ( date_expression )

Example
week ( 11 November 2005 )

Result: Returns 45.

year
Returns the year from "date_expression".

Syntax
year ( date_expression )

Example
year ( 11 November 2005 )

Result: Returns 2005.

DB2 Math
log:
Returns the natural logarithm of "numeric_expression".
Syntax
log ( numeric_expression )

log10:
Returns the base ten logarithm of "numeric_expression".
Syntax
log10 ( numeric_expression )

rand:
Generates a random number using "integer_expression" as a seed value.
Syntax
rand ( integer_expression )

Appendix B. Using the expression editor

449

DB2 Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atanh:
Returns the hyperbolic arctangent of "numeric_expression" where
"numeric_expression" is an angle expressed in radians.
Syntax
atanh ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 , numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cosh:
Returns the hyperbolic cosine of "numeric_expression" where "numeric_expression"
is an angle expressed in radians.

450

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
cosh ( numeric_expression )

cot:
Returns the cotangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns "numeric_expression" radians converted to degrees.
Syntax
degrees ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

sinh:
Returns the hyperbolic sine of "numeric_expression" where "numeric_expression" is
an angle expressed in radians.
Syntax
sinh ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

tanh:
Returns the hyperbolic tangent of "numeric_expression" where
"numeric_expression" is an angle expressed in radians.
Syntax
tanh ( numeric_expression )

Informix
cardinality
Returns the number of elements in a collection column (SET, MULTISET, LIST).

Appendix B. Using the expression editor

451

Syntax
cardinality ( string_expression )

char_length
Returns the number of logical characters in "string_expression". The number of
logical characters can be distinct from the number of bytes in some East Asian
locales.

Syntax
char_length ( string_expression )

concat
Returns a string that is the result of concatenating, or joining, "string_expression1"
to "string_expression2".

Syntax
concat ( string_expression1 , string_expression2 )

Example
concat ( [Sales (query)].[Sales staff].[First name],
[Sales (query)].[Sales staff].[Last name] )

Result: Returns the first name and last name; e.g., Bob Smith.

date
Returns the date value of "string_expression", "date_expression", or
"integer_expression".

Syntax
date ( string_expression|date_expression|integer_expression )

day
Returns an integer that represents the day of the month (1-31).

Syntax
day ( date_expression )

extend
Adjusts the precision of a datetime or date expression. The expression cannot be a
quoted string representation of a date value. If you do not specify first and last
qualifiers, the default qualifiers are year to fraction (3). If the expression contains
fields that are not specified by the qualifiers, the unwanted fields are discarded. If
the first qualifier specifies a larger (more significant) field than what exists in the
expression, the new fields are filled in with values returned by the current
function. If the last qualifier specifies a smaller (less significant) field than what
exists in the expression, the new fields are filled in with constant values. A missing
month or day field is filled in with 1, and missing hour to fraction fields are filled
in with 0.

Syntax
extend ( date_expression , ’ { ’ year to second ’ } ’ )

Example
extend ( some_date_column , { year to second } )

452

IBM Cognos Framework Manager Version 10.1.1: User Guide

hex
Returns the hexadecimal encoding of "integer_expression".

Syntax
hex ( integer_expression )

initcap
Returns "string_expression" with the first letter of each word in uppercase and all
other letters in lowercase. A word begins after any character other than a letter.
Thus, in addition to a blank space, symbols such as commas, periods, and colons
can introduce a new word.

Syntax
initcap ( string_expression )

length
Returns the number of bytes in "string_expression", not including any trailing
blank spaces. For byte or text "string_expression", length returns the full number of
bytes, including any trailing blank spaces.

Syntax
length ( string_expression )

lpad
Returns "string_expression1" left-padded by "string_expression2" to the total
number of characters specified by "integer_expression". The sequence of
"string_expression2" occurs as many times as necessary to make the return string
the length specified by "integer_expression".

Syntax
lpad ( string_expression1 , integer_expression , string_expression2 )

mdy
Returns a type date value with three expressions that evaluate to integers that
represent the month (integer_expression1), day (integer_expression2), and year
(integer_expression3).

Syntax
mdy ( integer_expression1 , integer_expression2 , integer_expression3 )

month
Returns an integer corresponding to the month portion of "date_expression".

Syntax
month ( date_expression )

nvl
Returns the value of "expression1" if "expression1" is not NULL. If "expression1" is
NULL, then returns the value of "expression2".

Syntax
nvl ( expression1 , expression2 )

Example
nvl ( [Unit sale price] , [Unit price] )
Appendix B. Using the expression editor

453

Result: Returns the unit sale price, or returns the unit price if the unit sale price is
NULL.

octet_length
Returns the number of bytes in "string_expression", including any trailing spaces.

Syntax
octet_length ( string_expression )

replace
Returns "string_expression1" in which every occurrence of "string_expression2" is
replaced by "string_expression3". If you omit the "string_expression3" option, every
occurrence of "string_expression2" is omitted from the return string.

Syntax
replace ( string_expression1 , string_expression2 [ , string_expression3 ] )

Example
replace ( [Sales (query)].[Products].[Product line code] , - )

Result: Returns all product line codes without the character "-"

round
Returns the rounded value of "numeric_expression". If you omit
"integer_expression", the value is rounded to zero digits or to the units place. The
digit range of 32 (+ and -) refers to the entire decimal value. Rounding takes place
before data formatting is applied.

Syntax
round ( numeric_expression [ , integer_expression ] )

Example
round (125, -1)

Result: 130

rpad
Returns "string_expression1" right-padded by "string_expression2" to the total
number of characters specified by "integer_expression". The sequence of
"string_expression2" occurs as many times as necessary to make the return string
the length specified by "integer_expression".

Syntax
rpad ( string_expression1 , integer_expression , string_expression2 )

substr
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters. The first character in
"string_expression" is at position 1. If you omit "integer_expression2", returns the
substring of "string_expression" that starts at position "integer_expression1" and
ends at the end of "string_expression".

Syntax
substr ( string_expression , integer_expression1 [ , integer_expression2 ] )

454

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

to_char
Returns the character string "date_expression" with the specified
"string_expression" formatting. You can use this function only with built-in data
types.

Syntax
to_char ( date_expression , string_expression )

to_date
Returns "string_expression1" as a date according to the date format you specify in
"string_expression2". If "string_expression1" is NULL, then a NULL value is
returned.

Syntax
to_date ( string_expression1 , string_expression2 )

trunc
Returns the truncated value of "numeric_expression". If you omit
"integer_expression", then "numeric_expression" is truncated to zero digits or to the
unit’s place. The digit limitation of 32 (+ and -) refers to the entire decimal value.

Syntax
trunc ( numeric_expression [ , integer_expression ] )

weekday
Returns an integer that represents the day of the week of "date_expression". Zero
(0) represents Sunday, one (1) represents Monday, and so on.

Syntax
weekday ( date_expression )

year
Returns a four-digit integer that represents the year of "date_expression".

Syntax
year ( date_expression )

Informix math
log10:
Returns the logarithm of "numeric_expression" to base 10.
Syntax
log10 ( numeric_expression )

logn:
Returns the natural logarithm of "numeric_expression".

Appendix B. Using the expression editor

455

Syntax
logn ( numeric_expression )

root:
Returns the root value of "numeric_expression1". Requires at least one numeric
argument (the radians argument). If only "numeric_expression1" is supplied, 2 is
used as a default value for "numeric_expression2". Zero cannot be used as the
value of "numeric_expression2".
Syntax
root ( numeric_expression1 [ , numeric_expression2 ] )

Informix trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression1".
Syntax
atan2 ( numeric_expression1 , numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.

456

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
cos ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

MS Access
ascii
Returns the ascii code value of the leftmost character of "string_expression".

Syntax
ascii ( string_expression )

ceiling
Returns the smallest integer greater than or equal to "numeric_expression".

Syntax
ceiling ( numeric_expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
chr ( integer_expression )

concat
Returns a string that is the result of concatenating, or joining, "string_expression1"
to "string_expression2".

Syntax
concat ( string_expression1 , string_expression2 )

Example
concat ( [Sales (query)].[Sales staff].[First name],
[Sales (query)].[Sales staff].[Last name] )

Result: Returns the first name and last name; e.g., Bob Smith.

Appendix B. Using the expression editor

457

curdate
Returns a date value representing the current date of the computer that the
database software runs on.

Syntax
curdate ()

curtime
Returns a time value representing the current time of the computer that the
database software runs on.

Syntax
curtime ()

dayname
Returns a character string containing the data source-specific name of the day (for
example, Sunday through Saturday or Sun. through Sat. for an English data source,
or Sonntag through Samstag for a German data source) for the day portion of
"date_expression".

Syntax
dayname ( date_expression )

dayofmonth
Returns the day of the month (1-31) from "date_expression". Returns the days field
(a signed integer) from "interval_expression".

Syntax
dayofmonth ( date_expression|interval_expression )

dayofweek
Returns the day of the week in "date_expression" as an integer (1-7), where 1
represents Monday.

Syntax
dayofweek ( date_expression )

dayofyear
Returns the day of the year in "date_expression" as an integer (1-366).

Syntax
dayofyear ( date_expression )

hour
Returns the hour from "time_expression" as an integer from 0 (midnight) to 23
(11:00 pm).

Syntax
hour ( time_expression )

instr
Searches "string_expression1" for the first occurrence of "string_expression2" and
returns an integer specifying the position of "string_expression2".
"Integer_expression1" sets the starting position for the search. If
"integer_expression1" is omitted, the search begins at the first character position of

458

IBM Cognos Framework Manager Version 10.1.1: User Guide

"string_expression1". "Integer_expression2" specifies the type of string comparison.
"Integer_expression1" is required if "integer_expression2" is specified.

Syntax
instr ( [ integer_expression1 , ] string_expression1 , string_expression2
[ , integer_expression2 ] )

lcase
Returns "string_expression" with all uppercase characters converted to lowercase.

Syntax
lcase ( string_expression )

left
Returns the leftmost "integer_expression" characters of "string_expression".

Syntax
left ( string_expression , integer_expression )

Example
left ( [Sales (query)].[Sales staff].[Last name] , 3 )

Result: Returns the first three characters of each last name.

length
Returns the number of characters in "string_expression", excluding trailing blanks
and the string termination character.

Syntax
length ( string_expression )

locate
Returns the starting position of the first occurrence of "string_expression1" within
"string_expression2". The search starts at position "integer_expression" of
"string_expression2". The first character in a string is at position 1. If
"string_expression1" is not found, then zero is returned.

Syntax
locate ( string_expression1 , string_expression2 [ , integer_expression ] )

ltrim
Returns "string_expression" with leading spaces removed.

Syntax
ltrim ( string_expression )

minute
Returns the minute (an integer from 0-59) from "time_expression".

Syntax
minute ( time_expression )

month
Returns the month (an integer from 1-12) from "date_expression".

Appendix B. Using the expression editor

459

Syntax
month ( date_expression )

monthname
Returns a character string containing the data source-specific name of the month
(for example, January through December or Jan. through Dec. for an English data
source, or Januar through Dezember for a German data source) for the month
portion of "date_expression".

Syntax
monthname ( date_expression )

Example
monthname ( 2005-11-01 )

Result: November

now
Returns a datetime value representing the current date and time of the computer
that the database software runs on.

Syntax
now ()

position
Returns the starting position of "string_expression1" in "string_expression2". The
first character in a string is at position 1.

Syntax
position ( string_expression1 , string_expression2 )

quarter
Returns the quarter in "date_expression" as a number (1-4), where 1 represents
January 1 through March 31.

Syntax
quarter ( date_expression )

right
Returns the rightmost "integer_expression" characters of "string_expression".

Syntax
right ( string_expression , integer_expression )

round
Returns "numeric_expression" rounded to the nearest value "integer_expression"
places right of the decimal point. If "integer_expression" is negative,
"numeric_expression" is rounded to the nearest absolute value "integer_expression"
places to the left of the decimal point. Rounding takes place before data formatting
is applied.

Syntax
round ( numeric_expression , integer_expression )

460

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
round (125, -1)

Result: 130

rtrim
Returns "string_expression" with trailing spaces removed.

Syntax
rtrim ( string_expression )

Example
rtrim ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with any spaces at the end of the name removed.

sign
Returns an indicator of the sign of "numeric_expression", +1 if positive, 0 if zero,
or -1 if negative.

Syntax
sign ( numeric_expression )

space
Returns a string consisting of "integer_expression" spaces.

Syntax
space ( integer_expression )

substr
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters. The first character in
"string_expression" is at position 1.

Syntax
substr ( string_expression , integer_expression1 , integer_expression2 )

Example
substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

substring
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters. The first character in
"string_expression" is at position 1.

Syntax
substring ( string_expression , integer_expression1 , integer_expression2 )

Example
substring ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

Appendix B. Using the expression editor

461

truncate
Returns "string_expression" with trailing spaces removed.

Syntax
truncate ( string_expression )

ucase
Returns "string_expression" with all lowercase characters converted to uppercase.

Syntax
ucase ( string_expression )

week
Returns the week of the year in "date_expression" as an integer value (1-53), where
1 represents the first week of the year.

Syntax
week ( date_expression )

year
Returns the year from "date_expression".

Syntax
year ( date_expression )

MS Access Cast
cast_decimal:
Returns the value of "expression" cast as a decimal.
Syntax
cast_decimal ( expression )

cast_float:
Returns the value of "expression" cast as a float.
Syntax
cast_float ( expression )

cast_integer:
Returns the value of "expression" cast as an integer.
Syntax
cast_integer ( expression )

Example
cast_integer ( 84.95 )

Result: 84
cast_numeric:

462

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns "string_expression" cast as a numeric value.
Syntax
cast_numeric ( string_expression )

cast_real:
Returns the value of "expression" cast as a real value.
Syntax
cast_real ( expression )

cast_smallint:
Returns "expression" cast as a small integer.
Syntax
cast_smallint ( expression )

cast_varchar:
Returns the value of "expression" cast as a variable character field.
Syntax
cast_varchar ( expression )

MS Access Math
log:
Returns the natural logarithm of "numeric_expression".
Syntax
log ( numeric_expression )

rand:
Generates a random number using "integer_expression" as a seed value.
Syntax
rand ( integer_expression )

MS Access Trigonometry
atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Appendix B. Using the expression editor

463

Syntax
cos ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Netezza
ascii
Returns a number representing the ASCII code value of the leftmost character of
"string_expression"; for example, ascii ( 'A' ) is 65.

Syntax
ascii ( string_expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
chr ( integer_expression )

decode
Compares "expr" to each search value one by one. If "expr" is equal to a search,
then it returns the corresponding result. If no match is found, it returns "default". If
"default" is omitted, it returns null.

Syntax
decode ( expr , search , result [ , search , result]... [ , default] )

initcap
Returns "string_expression", with the first letter of each word in uppercase, all
other letters in lowercase. Words are delimited by white space or characters that
are not alphanumeric.

Syntax
initcap ( string_expression )

instr
Searches "string_expression1" starting at position "integer_expression1" for the
"integer_expression2" occurrence of "string_expression2". If "integer_expression1" is

464

IBM Cognos Framework Manager Version 10.1.1: User Guide

negative then the search is backwards from the end of "string_expression1".
Returns an integer indicating the position of "string_expression2".

Syntax
instr ( string_expression1 , string_expression2 [ , integer_expression1
[ , integer_expression2 ] ] )

lpad
Returns "string_expression1" padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned.

Syntax
lpad ( string_expression1 , integer_expression [ , string_expression2 ] )

ltrim
Returns "string_expression1", with leading characters removed up to the first
character not in "string_expression2"; for example, ltrim ( 'xyxXxyAB' , 'xy' )
returns XxyAB.

Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

months_between
Returns the number of months from "date_expression1" to "date_expression2". If
"date_expression1" is later than "date_expression2" then the result will be a positive
number. The days and time portions of the difference are ignored, i.e., the months
are not rounded, except if "date_expression1" and "date_expression2" are the last
days of a month.

Syntax
months_between ( date_expression1 , date_expression2 )

next_day
Returns the datetime of the first weekday named by "string_expression" that is
later than "datetime_expression". The return value has the same hours, minutes,
and seconds as "datetime_expression".

Syntax
next_day ( datetime_expression , string_expression )

nvl
Returns "expression" if not null, otherwise returns "constant". Valid for
"numeric_expression", "string_expression", "date_expression", and
"time_expression".

Syntax
nvl ( expression , constant )

round
Returns "numeric_expression" rounded to the nearest value "integer_expression"
places right of the decimal point. If "integer_expression" is negative,
"numeric_expression" is rounded to the nearest absolute value "integer_expression"
places to the left of the decimal point; for example, round (125, -1) rounds to 130.

Appendix B. Using the expression editor

465

Syntax
round ( numeric_expression [ , integer_expression ] )

rpad
Returns "string_expression1" right-padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned. If
"string_expression2" is not specified, then spaces are used.

Syntax
rpad ( string_expression1 , integer_expression [ , string_expression2 ] )

rtrim
Returns "string_expression1", with final characters removed after the last character
not in "string_expression2"; for example, rtrim ( 'ABxXxyx' , 'xy' ) returns ABxX. If
"string_expression2" is not specified, the final space characters are removed.

Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

substr
Returns the substring of "string_expression" that starts at position
"integer_expression1". The first character in "string_expression" is at position 1.
"Integer_expression2" can be used to select fewer characters; by default it selects
characters to the end of the string.

Syntax
substr ( string_expression , integer_expression1 [ , integer_expression2 ] )

{current_db}
Syntax
{current_db}

{current_user}
Syntax
{current_user}

{session_user}
Syntax
{session_user}

to_char
Returns the string representation of "expression" with the format of
"string_expression". "Expression" can be either a date value or a numeric value.

Syntax
to_char ( expression [ , string_expression ] )

to_date
Converts "string_expression1" to a datetime value as specified by the format
"string_expression2".

466

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
to_date ( string_expression1 , string_expression2 )

to_number
Converts "string_expression1" to a numeric value as specified by the format
"string_expression2".

Syntax
to_number ( string_expression1 , string_expression2 )

translate
Returns "string_expression1", with all occurrences of each character in
"string_expression2" replaced by its corresponding character in
"string_expression3".

Syntax
translate ( string_expression1 , string_expression2 , string_expression3 )

date_trunc
Truncates "date_expression1" to a value as specified by the format
"string_expression1".

Syntax
date_trunc ( string_expression1 , date_expression1 )

trunc
Truncates digits from "numeric_expression1" using "numeric_expression2" as the
precision.

Syntax
trunc ( numeric_expression1 [ , numeric_expression2 ] )

version
Returns the "string_expression1" value of the database version.

Syntax
version ()

Netezza Math
log:
Returns the logarithm of "numeric_expression2" to the base "numeric_expression1".
Syntax
log ( numeric_expression1 , numeric_expression2 )

Netezza Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".

Appendix B. Using the expression editor

467

Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 , numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

degrees:
Returns the degrees where "numeric_expression" is an angle expressed in radians.
Syntax
degrees ( numeric_expression )

radians:
Returns the radians where "numeric_expression" is an angle expressed in degrees.
Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.

468

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Netezza Fuzzy
le_dst:
Returns a value indicating how different the two input strings are, calculated
according to the Levenshtein edit distance algorithm.
Syntax
le_dst ( string_expression1 , string_expression2 )

dle_dst:
Returns a value indicating how different the two input strings are, calculated
according to the Damerau-Levenshtein distance algorithm.
Syntax
dle_dst ( string_expression1 , string_expression2 )

Netezza Phonetic
nysiis:
Returns a Soundex representation of "string_expression" using the New York State
Identification and Intelligence System (NYSIIS) variation of Soundex.
Syntax
nysiis ( string_expression )

dbl_mp:
Returns a composite 32-bit value of "string_expression".
Syntax
dbl_mp ( string_expression )

pri_mp:
Returns the 4 character primary metaphone string from "numeric_expression"
returned by dbl_mp.
Syntax
pri_mp ( numeric_expression )

sec_mp:

Appendix B. Using the expression editor

469

Returns the 4 character secondary metaphone string from "numeric_expression"
returned by dbl_mp.
Syntax
sec_mp ( numeric_expression )

score_mp:
Returns a score for how closely "numeric_expression" and "numeric_expression2"
match.
Syntax
score_mp ( numeric_expression , numeric_expression2 , numeric_expression3 ,
numeric_expression4 , numeric_expression5 , numeric_expression6 )

Oracle
add_months
Returns the datetime resulting from adding "integer_expression" months to
"date_expression".

Syntax
add_months ( date_expression , integer_expression )

ascii
Returns a number representing the ASCII code value of the leftmost character of
"string_expression".

Syntax
ascii ( string_expression )

Example
ascii ( ’A’ )

Result: Returns '65'

ceil
Returns the smallest integer greater than or equal to "numeric_expression".

Syntax
ceil ( numeric_expression )

char_length
Returns the number of logical characters in "string_expression". The number of
logical characters can be distinct from the number of bytes in some East Asian
locales.

Syntax
char_length ( string_expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

470

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
chr ( integer_expression )

concat
Returns a string that is the result of concatenating, or joining, "string_expression1"
to "string_expression2".

Syntax
concat ( string_expression1 , string_expression2 )

Example
concat ( [Sales (query)].[Sales staff].[First name],
[Sales (query)].[Sales staff].[Last name] )

Result: Returns the first name and last name; e.g., Bob Smith.

decode
Compares "expression" to each search value one by one. If "expression" is equal to
a search, then it returns the corresponding result. If no match is found, it returns
"default", or if "default" is omitted, it returns null.

Syntax
decode ( expression , search , result [ , search , result ]... [ , default ] )

dump
Returns internal representation of "expression" with the format of
"numeric_expression1" starting from position "numeric_expression2" for
"numeric_expression3" characters.

Syntax
dump ( expression [ , numeric_expression1 [ , numeric_expression2
[ , numeric_expression3 ] ] ] )

greatest
Returns the greatest value in "expression_list".

Syntax
greatest ( expression_list )

initcap
Returns "string_expression" with the first letter of each word in uppercase and all
other letters in lowercase. Words are delimited by white space or characters that
are not alphanumeric.

Syntax
initcap ( string_expression )

instr
Searches "string_expression1" starting at position "integer_expression1" for the
"integer_expression2" occurrence of "string_expression2". If "integer_expression1" is
negative, then the search occurs backwards from the end of "string_expression1".
Returns an integer indicating the position of "string_expression2".

Syntax
instr ( string_expression1, string_expression2 [ , integer_expression1
[ , integer_expression2 ] ] )
Appendix B. Using the expression editor

471

instrb
Searches "string_expression1" starting at position "integer_expression1" for the
"integer_expression2" occurrence of "string_expression2". If "integer_expression1" is
negative, then the search occurs backwards from the end of "string_expression1".
Returns the position (byte number) where "string_expression2" was found.

Syntax
instrb ( string_expression1, string_expression2 [ , integer_expression1
[ , integer_expression2 ] ] )

least
Returns the least value in "expression_list".

Syntax
least ( expression_list )

length
Returns the number of characters in "string_expression".

Syntax
length ( string_expression )

lengthb
Returns the number of bytes in "string_expression".

Syntax
lengthb ( string_expression )

lpad
Returns "string_expression1" left-padded to the length defined by
"integer_expression" with occurrences of "string_expression2". If
"string_expression1" is longer than "integer_expression", the appropriate portion of
"string_expression1" is returned.

Syntax
lpad ( string_expression1, integer_expression [ , string_expression2 ] )

ltrim
Returns "string_expression1" with leading characters removed up to the first
character not in "string_expression2".

Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

Example
ltrim ( ’xyxXxyAB’ , ’xy’ )

Result: XxyAB

months_between
Returns the number of months from "date_expression1" to "date_expression2". If
"date_expression1" is later than "date_expression2" then the result will be a positive
number. The days and time portion of the difference are ignored, so the months
are not rounded unless "date_expression1" and "date_expression2" are the last days
of a month.

472

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
months_between ( date_expression1 , date_expression2 )

new_time
Returns the datetime in "new_timezone" for "datetime_expression" in
"old_timezone". "Old_timezone" and "new_timezone" can be one of 'AST', 'ADT',
'BST', 'BDT', 'CST', 'CDT', 'EST', 'EDT', 'HST', 'HDT', 'MST', 'MDT', 'NST', 'PST',
'PDT', 'YST', or 'YDT'.

Syntax
new_time ( datetime_expression , old_timezone , new_timezone )

next_day
Returns the datetime of the first weekday named by "string_expression" that is
later than "datetime_expression". The return value has the same format as
"datetime_expression".

Syntax
next_day ( datetime_expression , string_expression )

nls_initcap
Returns "string_expression1" with the first letter of each word in uppercase and all
other letters in lowercase. A word begins after any character other than a letter.
Thus, in addition to a blank space, symbols such as commas, periods, and colons
can introduce a new word. "String_expression2" specifies the sorting sequence.

Syntax
nls_initcap ( string_expression1 [ , string_expression2 ] )

nls_lower
Returns "string_expression1" with all letters in lowercase. "String_expression2"
specifies the sorting sequence.

Syntax
nls_lower ( string_expression1 [ , string_expression2 ] )

nls_upper
Returns "string_expression1" with all letters in uppercase. "String_expression2"
specifies the sorting sequence.

Syntax
nls_upper ( string_expression1 [ , string_expression2 ] )

nvl
Returns "expression" unless it is null. If "expression" is null, returns "constant".
Valid for "numeric_expression", "string_expression", "date_expression", and
"time_expression".

Syntax
nvl ( expression , constant )

Example
nvl ( [Unit sale price] , [Unit price] )

Appendix B. Using the expression editor

473

Result: Returns the unit sale price, or returns the unit price if the unit sale price is
NULL.

replace
Replaces all occurrences of "string_expression2" in "string_expression1" with
"string_expression3". If "string_expression3" is not specified, then it removes all
occurrences of "string_expression2".

Syntax
replace ( string_expression1 , string_expression2 [ , string_expression3 ] )

round
Returns "numeric_expression" rounded to the nearest value "integer_expression"
places right of the decimal point. If "integer_expression" is negative,
"numeric_expression" is rounded to the nearest absolute value "integer_expression"
places to the left of the decimal point. Rounding takes place before data formatting
is applied.

Syntax
round ( numeric_expression [ , integer_expression ] )

Example
round ( 125 , -1 )

Result: Returns 130

rpad
Returns "string_expression1" right-padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned. If
"string_expression2" is not specified, then occurrences of "string_expression2" are
replaced with spaces.

Syntax
rpad ( string_expression1 , integer_expression [ , string_expression2 ] )

rtrim
Returns "string_expression1" with the final characters removed after the last
character not in "string_expression2". If "string_expression2" is not specified, the
final space characters are removed.

Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

Example
rtrim ( ’ABxXxyx’ , ’xy’ )

Result: Returns 'ABxX'

sign
Returns an indicator of the sign of "numeric_expression", +1 if positive, 0 if zero,
or -1 if negative.

Syntax
sign ( numeric_expression )

474

IBM Cognos Framework Manager Version 10.1.1: User Guide

soundex
Returns a character string containing the phonetic representation of
"string_expression".

Syntax
soundex ( string_expression )

substr
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters or to the end of
"string_expression" if "integer_expression2" is omitted. The first character in
"string_expression" is at position 1.

Syntax
substr ( string_expression , integer_expression1 [ , integer_expression2 ] )

Example
substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

substrb
Returns the substring of "string_expression" that starts at position
"numeric_expression1" and ends after "numeric_expression2" bytes. The first byte
in "string_expression" is at position 1. If you omit "numeric_expression2", returns
the substring of "string_expression" that starts at position "numeric_expression1"
and ends at the end of "string_expression".

Syntax
substrb ( string_expression , numeric_expression1 [ , numeric_expression2 ] )

Example
substrb ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

{sysdate}
Returns a datetime value representing the current date and time of the computer
that the database software runs on.

Syntax
{ sysdate }

to_char
Returns the string representation of "expression" with the format of
"string_expression". "Expression" can be either a date value or a numeric value.

Syntax
to_char ( expression [ , string_expression ] )

to_date
Converts "string_expression1" to a datetime value as specified by the format
"string_expression2". "String_expression3" specifies the format elements, such as
language.

Appendix B. Using the expression editor

475

Syntax
to_date ( string_expression1 [ , string_expression2 [ , string_expression3 ] ] )

to_number
Converts "string_expression1" to a numeric value as specified by the format
"string_expression2". "String_expression3" specifies the format elements, such as
currency information.

Syntax
to_number ( string_expression1 , string_expression2 , string_expression3 )

translate
Returns "string_expression1" with all occurrences of each character in
"string_expression2" replaced by the corresponding character in
"string_expression3".

Syntax
translate ( string_expression1 , string_expression2 , string_expression3 )

trunc
Truncates "date_expression" using the format specified by "string_expression". For
example, if "string_expression" is 'year', then "date_expression" is truncated to the
first day of the year.

Syntax
trunc ( date_expression , string_expression )

Example
trunc ( 2003-08-22 , ’year’ )

Result: Returns 2003-01-01.

trunc
Truncates digits from "numeric_expression1" using "numeric_expression2" as the
precision.

Syntax
trunc ( numeric_expression1 , numeric_expression2 )

{user}
Returns the username of the current Oracle user.

Syntax
{ user }

vsize
Returns the number of bytes in the internal representation of "expression".
"Expression" must be a string expression.

Syntax
vsize ( expression )

476

IBM Cognos Framework Manager Version 10.1.1: User Guide

Oracle Math
log:
Returns the logarithm of "numeric_expression2" to the base "numeric_expression1".
Syntax
log ( numeric_expression1 , numeric_expression2 )

Oracle Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 ,numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cosh:

Appendix B. Using the expression editor

477

Returns the hyperbolic cosine of "numeric_expression" where "numeric_expression"
is an angle expressed in radians.
Syntax
cosh ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

sinh:
Returns the hyperbolic sine of "numeric_expression" where "numeric_expression" is
an angle expressed in radians.
Syntax
sinh ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

tanh:
Returns the hyperbolic tangent of "numeric_expression" where
"numeric_expression" is an angle expressed in radians.
Syntax
tanh ( numeric_expression )

Red Brick®
ceil
Returns the smallest integer greater than or equal to "numeric_expression" or
"string_expression". Note that "string_expression" must represent a valid numeric
value.

Syntax
ceil ( numeric_expression|string_expression )

concat
Returns a string that is the result of concatenating, or joining, "string_expression1"
to "string_expression2".

Syntax
concat ( string_expression1 , string_expression2 )

478

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example
concat ( [Sales (query)].[Sales staff].[First name],
[Sales (query)].[Sales staff].[Last name] )

Result: Returns the first name and last name; e.g., Bob Smith.

{current_user}
Returns the database username (authorization ID) of the current user.

Syntax
{ current_user }

date
Returns a date value. "Expression" can be either characters or a timestamp.

Syntax
date ( expression )

dateadd
Adds "interval" to "datetime_expression" and returns a result that is the same
datetime data type as "datetime_expression". "Datepart" refers to the year, month,
day, hour, minute, second. "Interval" must be an integer and "datetime_expression"
can be a date, time, or timestamp.

Syntax
dateadd ( { datepart } , interval, datetime_expression )

datediff
Determines the difference between two datetime expressions and returns an integer
result in "datepart" units. "Datepart" refers to a year, month, day, hour, minute, or
second. "Datetime_expression1" and "datetime_expression2" can be dates, times, or
timestamps.

Syntax
datediff ( { datepart } , datetime_expression1, datetime_expression2 )

datename
Extracts "datepart" of "datetime_expression" and returns its value as a character
string. "Datepart" refers to a year, month, day, hour, minute, or second.
"Datetime_expression" can be a date, a time, or a timestamp.

Syntax
datename ( { datepart } , datetime_expression )

dec
Converts "expression" to a decimal value with the data type decimal (precision,
scale). The default value of precision is 9. The default value of scale is 0.

Syntax
dec ( expression , [ precision , scale ] )

decimal
Converts "expression" to a decimal value with the data type decimal (precision,
scale). The default value of precision is 9. The default value of scale is 0.

Appendix B. Using the expression editor

479

Syntax
decimal ( expression , [ precision , scale ] )

decode
Compares and converts "expression" to another value. If "expression" matches
"target", it is replaced, otherwise it is replaced by "default" or null if no default is
specified. The expressions can be any data type as long as they are all the same
data type.

Syntax
decode ( expression , target , replacement [ ,default ] )

float
Converts "numeric_expression" into a double-precision floating-point value.

Syntax
float ( numeric_expression )

ifnull
Tests "expression" for missing values and replaces each one with "substitute". If
"expression" is null, "substitute" is returned, otherwise it returns the value of
"expression". The expressions can be any data type as long as they are all the same
data type.

Syntax
ifnull ( expression, substitute )

int
Converts "numeric_expression" into an integer value and returns an integer value.
If "numeric_expression" is null, it returns null.

Syntax
int ( numeric_expression )

integer
Converts "numeric_expression" into an integer value and returns an integer value.
If "numeric_expression" is null, it returns null.

Syntax
integer ( numeric_expression )

Example
integer ( 84.95 )

Result: 85

length
Returns an integer result specifying the number of characters in
"string_expression". If "string_expression" is null, it returns null.

Syntax
length ( string_expression )

480

IBM Cognos Framework Manager Version 10.1.1: User Guide

lengthb
Returns an integer result specifying the number of bytes in "string_expression". If
"string_expression" is null, it returns null.

Syntax
lengthb ( string_expression )

ltrim
Removes leading blanks from "string_expression". If "string_expression" is null, it
returns null.

Syntax
ltrim ( string_expression )

nullif
Returns null if both "expression1" and "expression2" have the same value. If they
have different values, the value of "expression1" is returned. "Expression1" and
"expression2" can be any data type as long as they are the same data type.

Syntax
nullif ( expression1 , expression2 )

positionb
Returns an integer that is relative to the beginning byte position of
"string_expression1" in "string_expression2". If "string_expression1" is not located,
the result is 0. If "string_expression1" is of zero length, the result is 1. If
"string_expression1" is null, an error message is returned. If "string_expression2" is
null, the result is 0.

Syntax
positionb ( string_expression1, string_expression2 )

real
Returns a real value. If "numeric_expression" is null, it returns null.

Syntax
real ( numeric_expression )

round
Returns "numeric_expression" rounded to the nearest value "integer_expression"
places to the right of the decimal point. If "integer_expression" is negative,
"numeric_expression" is rounded to the nearest absolute value "integer_expression"
places to the left of the decimal point. Rounding takes place before data formatting
is applied.

Syntax
round ( numeric_expression , integer_expression )

Example
round (125, -1)

Result: 130

Appendix B. Using the expression editor

481

rtrim
Removes trailing blanks from "string_expression". If "string_expression" is null, it
returns null.

Syntax
rtrim ( string_expression )

Example
rtrim ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with any spaces at the end of the name removed.

sign
Determines the sign of "numeric_expression", and returns 1 for a positive value, –1
for a negative value, and 0 for zero.

Syntax
sign ( numeric_expression )

string
Converts "expression" to a character string. "Expression" can be either numeric or
datetime.

Syntax
string ( expression [ , length [ , scale ] ] )

substr
Returns a substring of "string_expression" that begins at position "start_integer"
and continues for "length_integer" characters. If "length_integer" is not specified, a
substring from "start_integer" to the end of "string_expression" is returned.

Syntax
substr ( string_expression , start_integer , length_integer )

Example
substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

substrb
Returns a substring of "string_expression" that begins at position "start_integer"
and continues for "length_integer" bytes. If "length_integer" is not specified, a
substring from "start_integer" to the end of "string_expression" is returned.

Syntax
substrb ( string_expression , start_integer , length_integer )

time
Creates a time value from "expression", which can be a character string or a
time-stamp data type expression.

Syntax
time ( expression )

482

IBM Cognos Framework Manager Version 10.1.1: User Guide

timestamp
Creates a time-stamp value from "timestamp_expression", which is a character
string.

Syntax
timestamp ( timestamp_expression )

timestamp
Creates a time-stamp value from "time_expression" and "date_expression". If either
"time_expression" or "date_expression" is null, the resulting time-stamp expression
is also null.

Syntax
timestamp ( date_expression , time_expression )

to_char
Converts "source_date" to the character string specified by "format_string".
"Source_date" can be a date, time, or timestamp data type.

Syntax
to_char ( source_date, format_string )

SQL Server
ascii
Returns a number representing the ascii code value of the leftmost character of
"string_expression".

Syntax
ascii ( string_expression )

Example
ascii ( ’A’ )

Result: 65

char
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
char ( integer_expression )

Example
char ( 65 )

Result: A

charindex
Searches "string_expression2" for the first occurrence of "string_expression1" and
returns an integer. "Start_location" is the character position to start searching for
"string_expression1" in "string_expression2". If "start_location" is not specified, is a
negative number, or is zero, the search starts at the beginning of
"string_expression2".
Appendix B. Using the expression editor

483

Syntax
charindex ( string_expression1 , string_expression2 [ , start_location ]

)

{current_user}
Returns the name of the current user.

Syntax
{ current_user }

datalength
Returns the length in bytes of "string_expression".

Syntax
datalength ( string_expression )

dateadd
Returns the date resulting from the addition of "integer_expression" units
(indicated by "datepart" (day, month, year)) to "date_expression".

Syntax
dateadd ( { datepart } , integer_expression , date_expression )

datediff
Returns the number of "datepart" (day, month, year) units between
"date_expression1" and "date_expression2".

Syntax
datediff ( {datepart} , date_expression1 , date_expression2 )

Example
datediff ( {yy} , 1984-01-01 , 1997-01-01 )

Result: 13

datename
Returns "datepart" from "date_expression", which can be a datetime, smalldatetime,
date, or time value as an ASCII string. Note that "datepart" must be a keyword
representing a datepart or its abbreviation recognized by Microsoft SQL Server and
must be enclosed in curly brackets.

Syntax
datename ( ’ { ’ datepart ’ } ’ , date_expression )

Example
datename ( {mm} , 2000-01-01 )

Result: January

datepart
Returns part of "date_expression" (for example, the month) as an integer.
"date_expression" can be a datetime, smalldatetime, date, or time value. Note that
"datepart" must be a keyword representing a datepart or its abbreviation
recognized by Microsoft SQL Server and must be enclosed in curly brackets.

484

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
datepart ( ’ { ’ datepart ’ } ’ , date_expression )

Example
datepart ( {wk} , 2000-01-01 )

Result: 1 (first week of the year)

day
Returns the day portion of "date_expression". Same as extract (day from
date_expression).

Syntax
day ( date_expression )

difference
Returns an integer value representing the difference between the values returned
by the data source-specific soundex function for "string_expression1" and
"string_expression2". The value returned ranges from 0 to 4, with 4 indicating the
best match. Note that 4 does not mean that the strings are equal.

Syntax
difference ( string_expression1 , string_expression2 )

Example 1
difference ([Sales target (query)].[Sales Staff].[First name],
[Sales (query)].[Retailers].[Contact first name])

Result: 0

Example 2
difference ([Sales target (query)].[Sales Staff].[First name],
[Sales target (query)].[Sales Staff].[First name])

Result: 4

getdate
Returns a datetime value representing the current date and time of the computer
that the database software runs on.

Syntax
getdate ()

left
Returns the leftmost "integer_expression" characters of "string_expression".

Syntax
left ( string_expression , integer_expression )

Example
left ( [Sales (query)].[Sales staff].[Last name] , 3 )

Result: Returns the first three characters of each last name.

Appendix B. Using the expression editor

485

ltrim
Returns "string_expression" with leading spaces removed.

Syntax
ltrim ( string_expression )

month
Returns the month portion of "date_expression". Same as extract (month from
date_expression).

Syntax
month ( date_expression )

patindex
Returns an integer that represents the starting position of the first occurrence of
"string_expression1" in the "string_expression2". Returns 0 if "string_expression1" is
not found. The % wildcard character must precede and follow "string_expression1",
except when searching for first or last characters.

Syntax
patindex ( string_expression1 , string_expression2 )

Example
patindex ( ’%po%’, ’Report’ )

Result: 3

replace
Replaces all occurrences of "string_expression2" in "string_expression1" with
"string_expression3".

Syntax
replace ( string_expression1 , string_expression2 , string_expression3 )

replicate
Returns a string consisting of "string_expression" repeated "integer_expression"
times.

Syntax
replicate ( string_expression , integer_expression )

reverse
Returns "string_expression" in reverse order.

Syntax
reverse ( string_expression )

right
Returns the rightmost "integer_expression" characters of "string_expression".

Syntax
right ( string_expression , integer_expression )

486

IBM Cognos Framework Manager Version 10.1.1: User Guide

round
Returns "numeric_expression" rounded to the nearest value "integer_expression"
places to the right of the decimal point. Rounding takes place before data
formatting is applied.

Syntax
round ( numeric_expression , integer_expression )

Example
round (125, -1)

Result: 130

rtrim
Returns "string_expression" with trailing spaces removed.

Syntax
rtrim ( string_expression )

Example
rtrim ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with any spaces at the end of the name removed.

sign
Returns an indicator of the sign "numeric_expression": +1 if "numeric_expression"
is positive, 0 if zero or -1 if negative.

Syntax
sign ( numeric_expression )

soundex
Returns a four character string representing the sound of the words in
"string_expression".

Syntax
soundex ( string_expression )

space
Returns a string consisting of "integer_expression" spaces.

Syntax
space ( integer_expression )

str
Returns a string representation of "numeric_expression" where
"integer_expression1" is the length of the string returned and "integer_expression2"
is the number of decimal digits.

Syntax
str ( numeric_expression [ , integer_expression1 [ , integer_expression2 ] ] )

Appendix B. Using the expression editor

487

stuff
Returns a string where "integer_expression2" characters have been deleted from
"string_expression1" beginning at "integer_expression1", and where
"string_expression2" has been inserted into "string_expression1" at its start. The
first character in a string is at position 1.

Syntax
stuff ( string_expression1 , integer_expression1 ,
integer_expression2 , string_expression2 )

year
Returns the year portion of "date_expression". Same as extract (year from
date_expression).

Syntax
year ( date_expression )

SQL Server Math
log:
Returns the natural logarithm of "numeric_expression".
Syntax
log ( numeric_expression )

log10:
Returns the base ten logarithm of "numeric_expression".
Syntax
log10 ( numeric_expression )

pi:
Returns the constant value of pi as a floating point value.
Syntax
pi ()

rand:
Generates a random number using "integer_expression" as the seed value.
Syntax
rand ( integer_expression )

SQL Server Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".

488

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atn2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression1".
Syntax
atn2 ( numeric_expression1, numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cot:
Returns the cotangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns "numeric_expression" radians converted to degrees.
Syntax
degrees ( numeric_expression )

radians:
Returns the number of radians converted from "numeric_expression" degrees.

Appendix B. Using the expression editor

489

Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Teradata
account
Returns the account string for the current user.

Syntax
{account}

add_months
Returns the date or the datetime resulting from adding "integer_expression"
months to "date_expression" or "datetime_expression".

Syntax
add_months ( date_expression|datetime_expression , integer_expression )

bytes
Returns the number of bytes contained in "byte_expression". "Byte_expression" is
restricted to BYTE or VARBYTE.

Syntax
bytes ( byte_expression )

case_n
Evaluates "condition_expression_list" and returns the position of the first true
condition, provided that no prior condition in the list evaluates to unknown. The
keywords must be enclosed in curly brackets. No case is an optional condition that
evaluates to true if every expression in the list evaluates to false. No case or
unknown is an optional condition that evaluates to true if every expression in the
list evaluates to false, or if an expression evaluates to unknown and all prior
conditions in the list evaluate to false. Unknown is an optional condition that
evaluates to true if an expression evaluates to unknown and all prior conditions in
the list evaluate to false.

Syntax
case_n ( condition_expression_list [ , NO CASE|UNKNOWN|
NO CASE OR UNKNOWN [ , UNKNOWN ] ] )

490

IBM Cognos Framework Manager Version 10.1.1: User Guide

char2hexint
Returns the hexadecimal representation for "string_expression".

Syntax
char2hexint ( string_expression )

characters
Returns an integer value representing the number of logical characters or bytes
contained in "string_expression".

Syntax
characters ( string_expression )

database
Returns the name of the default database for the current user.

Syntax
{database}

date
Returns the current date.

Syntax
{date}

format
Returns the declared format for "expression" as a variable character string of up to
30 characters.

Syntax
format ( expression )

index
Returns the starting position of "string_expression2" in "string_expression1".

Syntax
index ( string_expression1 , string_expression2 )

log
Computes the base 10 logarithm of "numeric_expression". "Numeric_expression"
must be a non-zero, positive, numeric expression.

Syntax
log ( numeric_expression )

nullif
Returns null if "scalar_expression1" and "scalar_expression2" are equal. Otherwise,
it returns "scalar_expression1". "Scalar_expression1" and "scalar_expression2" can be
any data type.

Syntax
nullif ( scalar_expression1 , scalar_expression2 )

nullifzero
If "numeric_expression" is zero, converts it to null to avoid division by zero.
Appendix B. Using the expression editor

491

Syntax
nullifzero ( numeric_expression )

profile
Returns the current profile for the session or null if none.

Syntax
{profile}

random
Returns a random integer number for each row of the results table. "Lower_bound"
and "upper_bound" are integer constants. The limits for "lower_bound" and
"upper_bound" range from -2147483648 to 2147483647 inclusive. "Upper_bound"
must be greater than or equal to "lower_bound".

Syntax
random ( lower_bound , upper_bound )

role
Returns the current role for the session or null if none.

Syntax
{role}

session
Returns the number of the session for the current user.

Syntax
{session}

soundex
Returns a character string that represents the Soundex code for "string_expression".

Syntax
soundex ( string_expression )

substr
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters. The first character in
"string_expression" is at position 1. If "integer_expression2" is omitted, returns the
substring of "string_expression" that starts at position "integer_expression1" and
ends at the end of "string_expression".

Syntax
substr ( string_expression , integer_expression1 [ , integer_expression2 ] )

Example
substr ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

time
Returns the current time based on a 24-hour day.

492

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
{time}

type
Returns the data type defined for "expression".

Syntax
type ( expression )

user
Returns the user name of the current user.

Syntax
{user}

vargraphic
Returns a character string that represents the vargraphic code for
"string_expression".

Syntax
vargraphic ( string_expression )

zeroifnull
Converts data from null to 0 to avoid errors created by a null value. If
"numeric_expression" is not null, returns the value of "numeric_expression". If
"numeric_expression" is a character string, it is converted to a numeric value of
float data type. If "numeric_expression" is null or zero, it returns zero.

Syntax
zeroifnull ( numeric_expression )

Teradata Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression". "Numeric_expression" must be
between -1 and 1, inclusive.
Syntax
acos ( numeric_expression )

acosh:
Returns the inverse hyperbolic cosine of "numeric_expression" where
"numeric_expression" can be any real number equal to or greater than 1.
Syntax
acosh ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression". "Numeric_expression" must be between -1 and
1, inclusive.
Appendix B. Using the expression editor

493

Syntax
asin ( numeric_expression )

asinh:
Returns the inverse hyperbolic sine of "numeric_expression" where
"numeric_expression" can be any real number.
Syntax
asinh ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians where the arctangent is
the angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
returned angle will be between - and π radians, excluding π.
Syntax
atan2 ( numeric_expression1, numeric_expression2 )

atanh:
Returns the inverse hyperbolic tangent of "numeric_expression" where
"numeric_expression" can be any real number between 1 and -1, excluding 1 and
-1.
Syntax
atanh ( numeric_expression )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cosh:
Returns the hyperbolic cosine of "numeric_expression" where "numeric_expression"
can be any real number.
Syntax
cosh ( numeric_expression )

sin:

494

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

sinh:
Returns the hyperbolic sine of "numeric_expression" where "numeric_expression"
can be any real number.
Syntax
sinh ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

tanh:
Returns the hyperbolic tangent of "numeric_expression" where
"numeric_expression" can be any real number.
Syntax
tanh ( numeric_expression )

SAP BW
SAP BW Trigonometry
arccos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
arccos ( numeric_expression )

arcsin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
arcsin ( numeric_expression )

arctan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".

Appendix B. Using the expression editor

495

Syntax
arctan ( numeric_expression )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

coshyp:
Returns the hyperbolic cosine of "numeric_expression" where "numeric_expression"
is an angle expressed in radians.
Syntax
coshyp ( numeric_expression )

sinhyp:
Returns the hyperbolic sine of "numeric_expression" where "numeric_expression" is
an angle expressed in radians.
Syntax
sinhyp ( numeric_expression )

tanhyp:
Returns the hyperbolic tangent of "numeric_expression" where
"numeric_expression" is an angle expressed in radians.
Syntax
tanhyp ( numeric_expression )

SAP BW Math
log10:
Returns the base ten logarithm of "numeric_expression".

496

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
log10 ( numeric_expression )

Sybase
ascii
Returns a number representing the ascii code value of the leftmost character of
"string_expression".

Syntax
ascii ( string_expression )

Example
ascii ( ’A’ )

Result: 65

char
Converts "integer_expression" to a character value. Char is usually used as the
inverse of ascii where "integer_expression" must be between 0 and 255. If the
resulting value is the first byte of a multibyte character, the character may be
undefined.

Syntax
char ( integer_expression )

charindex
Returns an integer that represents the starting position of "string_expression1"
within "string_expression2". If "string_expression1" is not found, zero is returned. If
"string_expression1" contains wildcard characters, charindex treats them as literals.

Syntax
charindex ( string_expression1 , string_expression2 )

datalength
Returns the length in bytes of "string_expression".

Syntax
datalength ( string_expression )

dateadd
Returns the date resulting from adding "integer_expression" units indicated by
datepart (day, month, year) to "date_expression". Note that "datepart" must be
enclosed in curly brackets.

Syntax
dateadd ( ’ { ’ datepart ’ } ’ , integer_expression , date_expression )

Example
dateadd ( {dd} , 16 , 1997-06-16 )

Result: Jul 2, 1997

Appendix B. Using the expression editor

497

datediff
Returns the number of units indicated by "datepart" (day, month, year) between
"date_expression1" and "date_expression2". Note that "datepart" must be enclosed
in curly brackets.

Syntax
datediff ( ’ { ’ datepart ’ } ’ , date_expression1 , date_expression2 )

Example
datediff ( {yy} , 1984-01-01 , 1997-01-01 )

Result: 13

datename
Returns "datepart" of "date_expression" as an ASCII string. "Date_expression" can
be a datetime, smalldatetime, date, or time value. Note that "datepart" must be
enclosed in curly brackets.

Syntax
datename ( ’ { ’ datepart ’ } ’ , date_expression )

Example
datename ( {mm} , 1999-05-01 )

Result: May

datepart
Returns "datepart" of "date_expression" as an integer. "Date_expression" can be a
datetime, smalldatetime, date, or time value. Note that the datepart argument must
be enclosed in curly brackets.

Syntax
datepart ( ’ { ’ datepart ’ } ’ , date_expression )

Example
datepart ( {mm} , 1999-05-01 )

Result: 5

day
Returns the day of the month (1-31) from "date_expression".

Syntax
day ( date_expression )

difference
Returns an integer value representing the difference between the values returned
by the data source-specific soundex function for "string_expression1" and
"string_expression2". The value that is returned ranges from 0 to 4, with 4
indicating the best match. Note that 4 does not mean that the strings are equal.

Syntax
difference ( string_expression1 , string_expression2 )

498

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 1
difference ([Sales target (query)].[Sales staff].[First name],
[Sales (query)].[Retailers].[Contact first name])

Result: 0

Example 2
difference ([Sales target (query)].[Sales staff].[First name],
[Sales target (query)].[Sales staff].[First name])

Result: 4

getdate
Returns current system date and time.

Syntax
getdate ()

left
Returns the leftmost "integer_expression" characters of "string_expression".

Syntax
left ( string_expression , integer_expression )

Example
left ( [Sales (query)].[Sales staff].[Last name] , 3 )

Result: Returns the first three characters of each last name.

ltrim
Returns "string_expression" with any leading spaces removed.

Syntax
ltrim ( string_expression )

month
Returns the month number (1-12) from "date_expression".

Syntax
month ( date_expression )

patindex
Returns an integer representing the starting position of the first occurrence of
"string_expression1" in "string_expression2" or returns 0 if "string_expression1" is
not found. By default, patindex returns the offset in characters. The offset can be
returned in bytes by setting the return type to bytes. The % wildcard character
must precede and follow the pattern in "string_expression1", except when
searching for first or last characters.

Syntax
patindex ( string_expression1 , string_expression2
[ using {bytes|chars|characters} ] )

rand
Returns a random float value between 0 and 1, using the optional
"integer_expression" as a seed value.
Appendix B. Using the expression editor

499

Syntax
rand ( integer_expression )

replicate
Returns a string with the same datatype as "string_expression", containing the
same expression repeated "integer_expression" times or as many times as will fit
into a 225-byte space, whichever is less.

Syntax
replicate ( string_expression , integer_expression )

reverse
Returns the reverse of "string_expression".

Syntax
reverse ( string_expression )

right
Returns the rightmost "integer_expression" characters of "string_expression".

Syntax
right ( string_expression , integer_expression )

round
Returns "numeric_expression" rounded to the nearest value "integer_expression"
places to the right of the decimal point. Rounding takes place before data
formatting is applied.

Syntax
round ( numeric_expression, integer_expression )

Example
round (125, -1)

Result: 130

rtrim
Returns "string_expression" with trailing spaces removed.

Syntax
rtrim ( string_expression )

Example
rtrim ( [Sales (query)].[Sales staff].[Last name] )

Result: Returns last names with any spaces at the end of the name removed.

soundex
Returns a four-character soundex code for character strings that are composed of a
contiguous sequence of valid single- or double-byte Roman letter.

Syntax
soundex ( string_expression )

500

IBM Cognos Framework Manager Version 10.1.1: User Guide

space
Returns a string with "integer_expression" single-byte spacing.

Syntax
space ( integer_expression )

str
Returns a string representation of "numeric_expression". "Integer_expression1" is
the length of the returned string and has a default setting of 10.
"Integer_expression2" is the number of decimal digits and has a default setting of
0. Both are optional values.

Syntax
str ( numeric_expression [ , integer_expression1 [ , integer_expression2 ] ] )

stuff
Deletes "integer_expression2" characters from "string_expression1" starting at
"integer_expression1", and inserts "string_expression2" into "string_expression1" at
that position. To delete characters without inserting other characters,
"string_expression2" should be null and not " ", which indicates a single space.

Syntax
stuff ( string_expression1 , integer_expression1 ,
integer_expression2 , string_expression2 )

substring
Returns the substring of "string_expression" that starts at position
"integer_expression1". "Integer_expression2" specifies the number of characters in
the substring.

Syntax
substring ( string_expression , integer_expression1 , integer_expression2 )

Example
substring ( [Sales (query)].[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

to_unichar
Returns a unichar expression with the value "integer_expression". If
"integer_expression" is in the range 0xD800..0xDFFF, the operation is aborted. If the
"integer_expression" is in the range 0..0xFFFF, a single Unicode value is returned. If
"integer_expression" is in the range 0x10000..0x10FFFF, a surrogate pair is returned.

Syntax
to_unichar ( integer_expression )

uhighsurr
Returns 1 if the Unicode value at "integer_expression" is the high half of a
surrogate pair (which should be displayed first in the pair). Otherwise, it returns 0.
This function allows you to write explicit code for surrogate handling. Particularly,
if a substring starts on a Unicode character where uhighsurr () is true, extract a
substring of at least 2 Unicode values, as substr () does not extract just 1. Substr ()
does not extract half of a surrogate pair.

Appendix B. Using the expression editor

501

Syntax
uhighsurr ( string_expression , integer_expression )

ulowsurr
Returns 1 if the Unicode value at "integer_expression" is the low half of a surrogate
pair (which should be displayed second in the pair). Otherwise, it returns 0. This
function allows you to explicitly code around the adjustments performed by substr
(), stuff (), and right (). Particularly, if a substring ends on a Unicode value where
ulowsurr () is true, extract a substring of 1 less characters (or 1 more), since substr
() does not extract a string that contains an unmatched surrogate pair.

Syntax
ulowsurr ( string_expression , integer_expression )

uscalar
Returns the Unicode scalar value for the first Unicode character in
"string_expression". If the first character is not the high-order half of a surrogate
pair, then the value is in the range 0..0xFFFF. If the first character is the high-order
half of a surrogate pair, a second value must be a low-order half, and the return
value is in the range 0x10000..0x10FFFF. If this function is called on a Unicode
character expression containing an unmatched surrogate half, the operation is
aborted.

Syntax
uscalar ( string_expression )

year
Returns the year from date_expression.

Syntax
year ( date_expression )

Sybase Math
log:
Returns the natural logarithm of "numeric_expression".
Syntax
log ( numeric_expression )

log10:
Returns the base ten logarithm of "numeric_expression".
Syntax
log10 ( numeric_expression )

pi:
Returns the constant value of pi as a floating point value.
Syntax
pi ()

sign:

502

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns an indicator denoting the sign of "numeric_expression": +1 if
"numeric_expression" is positive, 0 if "numeric_expression" is zero, or -1 if
"numeric_expression" is negative.
Syntax
sign ( numeric_expression )

Sybase Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

atn2:
Returns the angle, in radians, whose tangent is "numeric_expression1" /
"numeric_expression2".
Syntax
atn2 ( numeric_expression1, numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.

Appendix B. Using the expression editor

503

Syntax
cos ( numeric_expression )

cot:
Returns the cotangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns "numeric_expression" radians converted to degrees.
Syntax
degrees ( numeric_expression )

radians:
Returns the degree equivalent of "numeric_expression". Results are of the same
type as "numeric_expression". For numeric or decimal expressions, the results have
an internal precision of 77 and a scale equal to that of "numeric_expression". When
the money datatype is used, an internal conversion to float may cause some loss of
precision.
Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

Postgres
Postgres String
overlay:
Returns the "string_expression1" replacing "string_expression2" from character
position numeric_expression.
Syntax
overlay ( string_expression1 , string_expression2 ,
numeric_expression1 [ , numeric_expression2 ] )

btrim:
Returns "string_expression1" after removing the longest string of characters in
"string_expression2".

504

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
btrim ( string_expression1 [ , string_expression2 ] )

initcap:
Returns "string_expression", with the first letter of each word in uppercase and all
other letters in lowercase. Words are delimited by white space or characters that
are not alphanumeric.
Syntax
initcap ( string_expression )

lpad:
Returns "string_expression1" padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned.
Syntax
lpad ( string_expression1 , integer_expression [ , string_expression2 ] )

ltrim:
Returns "string_expression1", with leading characters removed up to the first
character not in "string_expression2"; for example, ltrim ( 'xyxXxyAB' , 'xy' )
returns XxyAB.
Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

md5:
Returns the MD5 hash of "string_expression1".
Syntax
md5 ( string_expression1 )

to_hex:
Returns the hexadecimal string representation of "numeric_expression1".
Syntax
to_hex ( numeric_expression1 )

repeat:
Returns the "string_expression" repeated "numeric_expression1" times.
Syntax
repeat ( string_expression , numeric_expression1 )

replace:
Returns "string_expression" with "string_expression2" replaced with
"string_expression3".
Appendix B. Using the expression editor

505

Syntax
replace ( string_expression , string_expression2 , string_expression3)

rpad:
Returns "string_expression1" right-padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned. If
"string_expression2" is not specified, then spaces are used.
Syntax
rpad ( string_expression1 , integer_expression [ , string_expression2 ] )

rtrim:
Returns "string_expression1", with final characters removed after the last character
not in "string_expression2"; for example, rtrim ( 'ABxXxyx' , 'xy' ) returns ABxX. If
"string_expression2" is not specified, the final space characters are removed.
Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

split_part:
Returns "numeric_expression" field having split "string_expression1" on
"string_expression2".
Syntax
split_part ( string_expression1 , string_expression2 , numeric_expression )

ascii
Returns a number representing the ASCII code value of the leftmost character of
"string_expression"; for example, ascii ( 'A' ) is 65.

Syntax
ascii ( string_expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
chr ( integer_expression )

{current_catalog}
Syntax
{current_catalog}

{current_db}
Syntax
{current_db}

506

IBM Cognos Framework Manager Version 10.1.1: User Guide

{current_schema}
Syntax
{current_schema}

{current_user}
Syntax
{current_user}

{session_user}
Syntax
{session_user}

Postgres Data type formatting
to_char:
Returns the string representation of "expression" with the format of
"string_expression". "Expression" can be either a date value or a numeric value.
Syntax
to_char ( expression , string_expression )

to_date:
Converts "string_expression1" to a date value as specified by the format
"string_expression2".
Syntax
to_date ( string_expression1 , string_expression2 )

to_number:
Converts "string_expression1" to a numeric value as specified by the format
"string_expression2".
Syntax
to_number ( string_expression1 , string_expression2 )

to_timestamp:
Converts "string_expression1" to a timestamp value as specified by the format
"string_expression2".
Syntax
to_timestamp ( string_expression1 , string_expression2 )

translate
Returns "string_expression1", with each occurrence of each character in
"string_expression2" replaced by its corresponding character in
"string_expression3".

Syntax
translate ( string_expression1 , string_expression2 , string_expression3 )
Appendix B. Using the expression editor

507

date_trunc
Returns the timestamp to the specified precision.

Syntax
date_trunc ( string_expression , timestamp_expression )

version
Returns the string value of the database version.

Syntax
version ()

Postgres Math
log:
Returns the base 10 logarithm of "numeric_expression1" or logarithm to the base
"numeric_expression2".
Syntax
log ( numeric_expression1 [ , numeric_expression2 ] )

ln:
Returns the natural logarithm of "numeric_expression1".
Syntax
ln ( numeric_expression )

cbrt:
Returns the cube root of "numeric_expression1".
Syntax
cbrt ( numeric_expression )

div:
Returns the integer quotient of "numeric_expression1" divided by
"numeric_expression2".
Syntax
div ( numeric_expression1 , numeric_expression2 )

pi:
Returns the constant of pi.
Syntax
pi ()

Postgres Trigonometry
acos:

508

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 , numeric_expression2 )

cos:
Returns the cosine of "numeric_expression", where "numeric_expression" is an
angle expressed in radians.
Syntax
cos ( numeric_expression )

cot:
Returns the cotangent of "numeric_expression", where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns the degrees where "numeric_expression" is an angle expressed in radians.

Appendix B. Using the expression editor

509

Syntax
degrees ( numeric_expression )

radians:
Returns the radians where "numeric_expression" is an angle expressed in degrees.
Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_expression", where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression", where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Vertica
Vertica String
overlay:
Returns the "string_expression1", replacing "string_expression2" from character
position "numeric_expression".
Syntax
overlay ( string_expression1 , string_expression2 , numeric_expression1
[ , numeric_expression2 ] )

btrim:
Returns "string_expression1" after removing the longest string of characters in
"string_expression2".
Syntax
btrim ( string_expression1 [ , string_expression2 ] )

initcap:
Returns "string_expression", with the first letter of each word in uppercase and all
other letters in lowercase. Words are delimited by white space or characters that
are not alphanumeric.

510

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
initcap ( string_expression )

lpad:
Returns "string_expression1" padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned.
Syntax
lpad ( string_expression1 , integer_expression [ , string_expression2 ] )

ltrim:
Returns "string_expression1", with leading characters removed up to the first
character not in "string_expression2"; for example, ltrim ( 'xyxXxyAB' , 'xy' )
returns XxyAB.
Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

to_hex:
Returns the hexadecimal string representation of "numeric_exp1".
Syntax
to_hex ( numeric_expression1 )

repeat:
Returns the "string_expression" repeated "numeric_expression1" times.
Syntax
repeat ( string_expression , numeric_expression1 )

replace:
Returns "string_expression" having replaced "string_expression2" with
"string_expression3".
Syntax
replace ( string_expression , string_expression2 , string_expression3 )

rpad:
Returns "string_expression1" right-padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned. If
"string_expression2" is not specified, then spaces are used.
Syntax
rpad ( string_expression1 , integer_expression [ , string_expression2 ] )

rtrim:

Appendix B. Using the expression editor

511

Returns "string_expression1", with final characters removed after the last character
not in "string_expression2"; for example, rtrim ( 'ABxXxyx' , 'xy' ) returns ABxX. If
"string_expression2" is not specified, the final space characters are removed.
Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

ascii
Returns a number representing the ASCII code value of the leftmost character of
"string_expression"; for example, ascii ( 'A' ) is 65.

Syntax
ascii ( string_expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
chr ( integer_expression )

current_database
Returns the name of the current database.

Syntax
current_database ()

current_schema
Returns the name of the current schema.

Syntax
current_schema ()

{current_user}
Syntax
{current_user}

{session_user}
Syntax
{session_user}

Vertica Data type formatting
to_char:
Returns the string representation of "expression" with the format of
"string_expression". "Expression" can be either a date value or a numeric value.
Syntax
to_char ( expression , string_expression

to_date:

512

IBM Cognos Framework Manager Version 10.1.1: User Guide

)

Converts "string_expression1" to a date value as specified by the format
"string_expression2".
Syntax
to_date ( string_expression1 , string_expression2 )

to_number:
Converts "string_expression1" to a numeric value as specified by the format
"string_expression2".
Syntax
to_number ( string_expression1, string_expression2 )

to_timestamp:
Converts "string_expression1" to a timestamp value as specified by the format
"string_expression2".
Syntax
to_timestamp ( string_expression1, string_expression2 )

translate
Returns "string_expression1", with each occurrence of each character in
"string_expression2" replaced by its corresponding character in
"string_expression3".

Syntax
translate ( string_expression1 , string_expression2 , string_expression3 )

date_trunc
Returns the timestamp to the specified precision.

Syntax
date_trunc ( string_expression , timestamp_expression)

version
Returns the string value of the database version.

Syntax
version ()

Vertica Math
log:
Returns the base 10 logarithm of "numeric_expression1" or logarithm to the base
"numeric_expression2".
Syntax
log ( numeric_expression1 [ , numeric_expression2 ] )

ln:
Returns the natural logarithm of "numeric_expression1".
Appendix B. Using the expression editor

513

Syntax
ln ( numeric_expression )

cbrt:
Returns the cube root of "numeric_expression1".
Syntax
cbrt ( numeric_expression )

pi:
Returns the constant of pi.
Syntax
pi ()

Vertica Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 , numeric_expression2 )

cos:

514

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cot:
Returns the cotangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns the degrees where "numeric_expression" is an angle expressed in radians.
Syntax
degrees ( numeric_expression )

radians:
Returns the radians where "numeric_expression" is an angle expressed in degrees.
Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_exp" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Paraccel
Paraccel string
overlay:
Returns the "string_expression1", replacing "string_expression2" from character
position numeric_expression.

Appendix B. Using the expression editor

515

Syntax
overlay ( string_expression1 , string_expression2 ,
numeric_expression1 [ , numeric_expression2 ] )

ltrim:
Returns "string_expression1", with leading characters removed up to the first
character not in "string_expression2"; for example, ltrim ( 'xyxXxyAB' , 'xy' )
returns XxyAB.
Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

replace:
Returns "string_expression", having replaced "string_expression2" with
"string_expression3".
Syntax
replace ( string_expression , string_expression2 , string_expression3 )

rtrim:
Returns "string_expression1", with final characters removed after the last character
not in "string_expression2"; for example, rtrim ( 'ABxXxyx' , 'xy' ) returns ABxX. If
"string_expression2" is not specified, the final space characters are removed.
Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

current_database
Returns the name of the current database.

Syntax
current_database ()

current_schema
Returns the name of the current schema.

Syntax
current_schema ()

{current_user}
Syntax
{current_user}

{session_user}
Syntax
{session_user}

Paraccel data type formatting
to_char:

516

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the string representation of "expression" with the format of
"string_expression". "Expression" can be either a date value or a numeric value.
Syntax
to_char ( expression , string_expression )

to_date:
Converts "string_expression1" to a date value as specified by the format
"string_expression2".
Syntax
to_date ( string_expression1 , string_expression2 )

to_number:
Converts "string_expression1" to a numeric value as specified by the format
"string_expression2".
Syntax
to_number ( string_expression1 , string_expression2 )

translate
Returns "string_expression1", with each occurrence of each character in
"string_expression2" replaced by its corresponding character in
"string_expression3".

Syntax
translate ( string_expression1 , string_expression2 , string_expression3 )

version
Returns the string value of the database version.

Syntax
version ()

Paraccel math
cbrt:
Returns the cube root of "numeric_expression1".
Syntax
cbrt ( numeric_expression )

pi:
Returns the constant of pi.
Syntax
pi ()

Appendix B. Using the expression editor

517

MySQL
MySQL String
lpad:
Returns "string_expression1" padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned.
Syntax
lpad ( string_expression1 , integer_expression [ , string_expression2 ] )

ltrim:
Returns "string_expression1", with leading characters removed up to the first
character not in "string_expression2"; for example, ltrim ( 'xyxXxyAB' , 'xy' )
returns XxyAB.
Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

hex:
Returns the hexadecimal string representation of "numeric_expression1".
Syntax
hex ( numeric_expression1 )

repeat:
Returns the "string_expression" repeated "numeric_expression1" times.
Syntax
repeat ( string_expression , numeric_expression1 )

replace:
Returns "string_expression" having replaced "string_expression2" with
"string_expression3".
Syntax
replace ( string_expression , string_expression2 , string_expression3 )

reverse:
Returns "string_expression" reversed.
Syntax
reverse ( string_expression )

right:
Returns the rightmost "numeric_expression" characters from "string_expression1".

518

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
right ( string_expression1 , numeric_expression )

rpad:
Returns "string_expression1" right-padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned. If
"string_expression2" is not specified, then spaces are used.
Syntax
rpad ( string_expression1 , integer_expression [ , string_expression2 ] )

rtrim:
Returns "string_expression1", with final characters removed after the last character
not in "string_expression2"; for example, rtrim ( 'ABxXxyx' , 'xy' ) returns ABxX. If
"string_expression2" is not specified, the final space characters are removed.
Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

soundex:
Returns a soundex string of "string_expression1".
Syntax
soundex ( string_expression1 )

ascii
Returns a number representing the ASCII code value of the leftmost character of
"string_expression"; for example, ascii ( 'A' ) is 65.

Syntax
ascii ( string_expression )

database
Returns the current database name.

Syntax
database ()

schema
Returns the current schema name.

Syntax
schema ()

session_user
Return the user name returned by the client.

Syntax
session_user ()

Appendix B. Using the expression editor

519

system_user
Return the user name returned by the client.

Syntax
system_user ()

version
Returns the string value of the database version.

Syntax
version ()

MySQL Math
log:
Returns the base 10 logarithm of "numeric_expression1" or logarithm to the base
"numeric_expression2".
Syntax
log ( numeric_expression )

ln:
Returns the natural logarithm of "numeric_expression1".
Syntax
ln ( numeric_expression )

pi:
Returns the constant of pi.
Syntax
pi ()

MySQL Trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:

520

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 ,numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cot:
Returns the cotangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns the degrees where "numeric_expression" is an angle expressed in radians.
Syntax
degrees ( numeric_expression )

radians:
Returns the radians where "numeric_expression" is an angle expressed in degrees.
Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Appendix B. Using the expression editor

521

Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Greenplum
Greenplum string
overlay:
Returns the "string_expression1" replacing "string_expression2" from character
position "numeric_expression".
Syntax
overlay ( string_expression1 , string_expression2 , numeric_expression1
[ , numeric_expression2 ] )

btrim:
Returns "string_expression1" after removing the longest string of characters in
"string_expression2".
Syntax
btrim ( string_expression1 [ , string_expression2 ] )

initcap:
Returns "string_expression" with the first letter of each word in uppercase and all
other letters in lowercase. Words are delimited by white space or characters that
are not alphanumeric.
Syntax
initcap ( string_expression )

lpad:
Returns "string_expression1" padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned.
Syntax
lpad ( string_expression1 , integer_expression [ , string_expression2 ] )

ltrim:
Returns "string_expression1", with leading characters removed up to the first
character not in "string_expression2"; for example, ltrim ( 'xyxXxyAB' , 'xy' )
returns XxyAB.
Syntax
ltrim ( string_expression1 [ , string_expression2 ] )

md5:

522

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the MD5 hash of "string_expression1".
Syntax
md5 ( string_expression1 )

to_hex:
Returns the hexadecimal string representation of "numeric_expression1".
Syntax
to_hex ( numeric_expression1 )

repeat:
Returns the "string_expression" repeated "numeric_expression1" times.
Syntax
repeat ( string_expression , numeric_expression1 )

replace:
Returns "string_expression" having replaced "string_expression2" with
"string_expression3".
Syntax
replace ( string_expression , string_expression2 , string_expression3)

rpad:
Returns "string_expression1" right-padded to length "integer_expression" with
occurrences of "string_expression2". If "string_expression1" is longer than
"integer_expression", the appropriate portion of "string_expression1" is returned. If
"string_expression2" is not specified, then spaces are used.
Syntax
rpad ( string_expression1 , integer_expression [ , string_expression2 ] )

rtrim:
Returns "string_expression1", with final characters removed after the last character
not in "string_expression2"; for example, rtrim ( 'ABxXxyx' , 'xy' ) returns ABxX. If
"string_expression2" is not specified, the final space characters are removed.
Syntax
rtrim ( string_expression1 [ , string_expression2 ] )

split_part:
Returns "numeric_expression" field having split "string_expression1" on
"string_expression2".
Syntax
split_part ( string_expression1 , string_expression2 , numeric_expression )

Appendix B. Using the expression editor

523

ascii
Returns a number representing the ascii code value of the leftmost character of
"string_expression"; for example, ascii ( 'A' ) is 65.

Syntax
ascii ( string_expression )

chr
Returns the character that has the ASCII code value specified by
"integer_expression". "Integer_expression" should be between 0 and 255.

Syntax
chr ( integer_expression )

current_database
Returns the name of the current database.

Syntax
current_database ()

current_schema
Returns the name of the current schema.

Syntax
current_schema ()

{current_user}
Syntax
{current_user}

{session_user}
Syntax
{session_user}

Greenplum data type formatting
to_char:
Returns the string representation of "expression" with the format of
"string_expression". "Expression" can either be a date value or a numeric value.
Syntax
to_char ( expression , string_expression )

to_date:
Converts "string_expression1" to a date value as specified by the format
"string_expression2".
Syntax
to_date ( string_expression1 , string_expression2 )

to_number:

524

IBM Cognos Framework Manager Version 10.1.1: User Guide

Converts "string_expression1" to a numeric value as specified by the format
"string_expression2".
Syntax
to_number ( string_expression1 , string_expression2 )

to_timestamp:
Converts "string_expression1" to a timestamp value as specified by the format
"string_expression2".
Syntax
to_timestamp ( string_expression1 , string_expression2 )

translate
Returns "string_expression1" with each occurrence of each character in
"string_expression2" replaced by its corresponding character in
"string_expression3".

Syntax
translate ( string_expression1 , string_expression2 , string_expression3 )

date_trunc
Returns the timestamp to the specified precision.

Syntax
date_trunc ( string_expression , timestamp_expression)

version
Returns the string value of the database version.

Syntax
version ()

Greenplum math
log:
Returns the base 10 logarithm of "numeric_expression1" or logarithm to the base
"numeric_expression2".
Syntax
log ( numeric_expression1 [ , numeric_expression2 ] )

ln:
Returns the natural logarithm of "numeric_expression1".
Syntax
ln ( numeric_expression )

cbrt:
Returns the cube root of "numeric_expression1".

Appendix B. Using the expression editor

525

Syntax
cbrt ( numeric_expression )

pi:
Returns the constant of pi.
Syntax
pi ()

Greenplum trigonometry
acos:
Returns the arccosine of "numeric_expression" in radians. The arccosine is the
angle whose cosine is "numeric_expression".
Syntax
acos ( numeric_expression )

asin:
Returns the arcsine of "numeric_expression" in radians. The arcsine is the angle
whose sine is "numeric_expression".
Syntax
asin ( numeric_expression )

atan:
Returns the arctangent of "numeric_expression" in radians. The arctangent is the
angle whose tangent is "numeric_expression".
Syntax
atan ( numeric_expression )

atan2:
Returns the arctangent of the x and y coordinates specified by
"numeric_expression1" and "numeric_expression2", respectively, in radians. The
arctangent is the angle whose tangent is "numeric_expression2" /
"numeric_expression1".
Syntax
atan2 ( numeric_expression1 ,numeric_expression2 )

cos:
Returns the cosine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
cos ( numeric_expression )

cot:

526

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns the cotangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
cot ( numeric_expression )

degrees:
Returns the degrees where "numeric_expression" is an angle expressed in radians.
Syntax
degrees ( numeric_expression )

radians:
Returns the radians where "numeric_expression" is an angle expressed in degrees.
Syntax
radians ( numeric_expression )

sin:
Returns the sine of "numeric_expression" where "numeric_expression" is an angle
expressed in radians.
Syntax
sin ( numeric_expression )

tan:
Returns the tangent of "numeric_expression" where "numeric_expression" is an
angle expressed in radians.
Syntax
tan ( numeric_expression )

Report functions
_add_days
Returns the datetime resulting from adding "integer_expression" days to
"timestamp_expression".

Syntax
_add_days ( timestamp_expression , integer_expression )

Example
_add_days ( 2007-01-14 00:00:00.000 , 3 )

Result: 2007-01-17 00:00:00.000

_add_months
Returns the datetime resulting from adding "integer_expression" months to
"timestamp_expression".

Appendix B. Using the expression editor

527

Syntax
_add_months ( timestamp_expression , integer_expression )

_add_years
Returns the datetime resulting from adding "integer_expression" years to
"timestamp_expression".

Syntax
_add_years ( timestamp_expression , integer_expression )

_age
Returns a number by subtracting "timestamp_expression" from today's date.

Syntax
_age ( timestamp_expression )

Example
_age ([Query1].[Date]), where [Query1].[Date] is March 2, 2004,
and today is July 8, 2009

Result: 50,406, where 5 is the number of years, 04 is the number of months, and 06
is the number of days.

_day_of_week
Returns the day of the week (between 1 and 7) for "timestamp_expression" where
"integer_expression" indicates which day of that week is day 1. To determine
"integer_expression", choose the day of the week and count from Monday; for
example, if you choose Wednesday, "integer_expression" would be 3 because
Wednesday is the third day from Monday.

Syntax
_day_of_week ( timestamp_expression , integer_expression )

Example
_day_of_week ( 2009-01-01 , 7 ), where 7 means that Sunday
is the first day of the week.

Result: 5

_day_of_year
Returns the ordinal for the day of the year in "timestamp_ expression" (1 to 366).
Also known as Julian day.

Syntax
_day_of_year ( timestamp_expression )

_days_between
Returns a positive or negative number representing the number of days between
"timestamp_expression1" and "timestamp_expression2". If "timestamp_expression1"
< "timestamp_expression2", the result will be a negative number.

Syntax
_days_between ( timestamp_expression1 , timestamp_expression2 )

528

IBM Cognos Framework Manager Version 10.1.1: User Guide

_days_to_end_of_month
Returns a number representing the number of days remaining in the month
represented by "timestamp_expression".

Syntax
_days_to_end_of_month ( timestamp_expression )

_first_of_month
Returns a datetime that is the first day of the month represented by
"timestamp_expression".

Syntax
_first_of_month ( timestamp_expression )

Example 1
_first_of_month ( 2009-05-04 00:00:00.000 )

Result: Returns 2009-05-01 00:00:00.000

Example 2
_first_of_month (current_date)

Result: Returns Jul 1, 2009 if the current date is July 30, 2009.

_last_of_month
Returns a datetime that is the last day of the month represented by
"timestamp_expression".

Syntax
_last_of_month ( timestamp_expression )

_make_timestamp
Returns a timestamp constructed from "integer_expression1" (the year),
"integer_expression2" (the month), and "integer_expression3" (the day). The time
portion defaults to 00:00:00.000.

Syntax
_make_timestamp ( integer_expression1 , integer_expression2 , integer_expression3 )

_months_between
Returns a positive or negative number representing the number of months between
"timestamp_expression1" and "timestamp_expression2". If "timestamp_expression1"
< "timestamp_expression2", the result will be a negative number.

Syntax
_months_between ( timestamp_expression1 , timestamp_expression2 )

_week_of_year
Returns the week number (1-53) of the year for "timestamp_expression". According
to the ISO 8601, week 1 of the year is the first week to contain a Thursday, which
is equivalent to the first week containing January 4th. A week starts on a Monday
(day 1) and ends on a Sunday (day 7).

Syntax
_week_of_year ( timestamp_expression )
Appendix B. Using the expression editor

529

_years_between
Returns a positive or negative integer representing the number of years between
"timestamp_expression1" and "timestamp_expression2". If "timestamp_expression1"
< "timestamp_expression2", a negative value is returned.

Syntax
_years_between ( timestamp_expression1 , timestamp_expression2 )

_ymdint_between
Returns a number representing the difference between "timestamp_expression1"
and "timestamp_expression2". This value has the form YYMMDD, where YY
represents the number of years, MM represents the number of months, and DD
represents the number of days.

Syntax
_ymdint_between ( timestamp_expression1 , timestamp_expression2 )

Example
_ymdint_between ( [Query1].[Date (close date)] , [Query1].
[Date (ship date)] ), where [Query1].[Date (close date)]
is February 20, 2004, and [Query1].[Date (ship date)]
is January 19, 2004.

Result: 101, where 1 is the number of months and 01 is the number of days.

abs
Returns the absolute value of "numeric_expression". If "numeric_expression" is
negative, a positive value is returned.

Syntax
abs ( numeric_expression )

AsOfDate
Returns the date value of the AsOfDate expression, if it is defined. Otherwise,
AsOfDate returns the report execution date.

Syntax
AsOfDate ()

AsOfTime
Returns the time value of the AsOfTime expression, if it is defined. Otherwise,
AsOfTime returns the report execution time.

Syntax
AsOfTime ()

BurstKey
Returns the burst key.

Syntax
BurstKey ()

BurstRecipients
Returns the distribution list of burst recipients.

530

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
BurstRecipients ()

ceiling
Returns the smallest integer that is greater than or equal to "numeric_expression".

Syntax
ceiling ( numeric_expression )

CellValue
Returns the value of the current crosstab cell.

Syntax
CellValue ()

character_length
Returns the number of characters in "string_expression".

Syntax
character_length ( string_expression )

ColumnNumber
Returns the current column number.

Syntax
ColumnNumber ()

CubeCreatedOn
Returns the date and time when the cube was created. "Dimension" specifies from
which cube to retrieve the metadata. If the dimension source is an IBM Cognos
PowerCube (.mdc), the function returns a blank string because the initial creation
date of a PowerCube is not maintained.

Syntax
CubeCreatedOn ( dimension )

CubeCurrentPeriod
Returns the current period for the cube. "Dimension" specifies from which cube to
retrieve the metadata.

Syntax
CubeCurrentPeriod ( dimension )

CubeDataUpdatedOn
Returns the date time that data in the cube was last updated. "Dimension" specifies
from which cube to retrieve the metadata.

Syntax
CubeDataUpdatedOn ( dimension )

CubeDefaultMeasure
Returns the name of the default measure for the cube. "Dimension" specifies from
which cube to retrieve the metadata.

Appendix B. Using the expression editor

531

Syntax
CubeDefaultMeasure ( dimension )

CubeDescription
Returns the description of the cube. "Dimension" specifies from which cube to
retrieve the metadata.

Syntax
CubeDescription ( dimension )

CubeIsOptimized
Returns "true" if the cube is optimized. "Dimension" specifies from which cube to
retrieve the metadata.

Syntax
CubeIsOptimized ( dimension )

CubeName
Returns the name of the cube. "Dimension" specifies from which cube to retrieve
the metadata.

Syntax
CubeName ( dimension )

CubeSchemaUpdatedOn
Returns the date time that the cube schema was last updated. "Dimension"
specifies from which cube to retrieve the metadata.

Syntax
CubeSchemaUpdatedOn ( dimension )

exp
Returns the constant 'e' raised to the power of "numeric_expression". The constant
'e' is the base of the natural logarithm.

Syntax
exp ( numeric_expression )

Example
exp ( 2 )

Result: 7.389056

extract
Returns an integer representing the value of "date_part_expression" in
"datetime_expression". "Date_part_expression" could be the year, month, day, hour,
minute, or second.

Syntax
extract ( date_part_expression , datetime_expression )

Example 1
extract ( year , 2003-03-03 16:40:15.535 )

Result: 2003

532

IBM Cognos Framework Manager Version 10.1.1: User Guide

Example 2
extract ( hour , 2003-03-03 16:40:15.535 )

Result: 16

floor
Returns the largest integer that is less than or equal to "numeric_expression".

Syntax
floor ( numeric_expression )

GetLocale
Returns the run locale (deprecated).

Syntax
GetLocale ()

HorizontalPageCount
Returns the current horizontal page count.

Syntax
HorizontalPageCount ()

HorizontalPageNumber
Returns the current horizontal page number.

Syntax
HorizontalPageNumber ()

InScope
Returns Boolean 1 (true) when the cell is in the scope of the data items and MUNs;
otherwise, returns Boolean 0 (false).

Syntax
InScope ( dataItem , MUN, ... )

IsAccessible
Returns Boolean 1 (true) if the report is run with the accessibility features enabled.
Use this function as a variable expression with a conditional block to make your
reports accessible. For example, you can add a list or crosstab equivalent to a chart
in reports that are run with accessibility features enabled.

Syntax
IsAccessible()

IsBursting
Returns Boolean 1 (true) when the report will be distributed to the recipient;
otherwise, returns Boolean 0 (false).

Syntax
IsBursting (’recipientName’)

IsCrosstabColumnNodeMember
Returns Boolean 1 (true) if the current node is a crosstab column node member.

Appendix B. Using the expression editor

533

Syntax
IsCrosstabColumnNodeMember ()

IsCrosstabRowNodeMember
Returns Boolean 1 (true) if the current node is a crosstab row node member.

Syntax
IsCrosstabRowNodeMember ()

IsFirstColumn
Returns Boolean 1 (true) if the current column is the first column.

Syntax
IsFirstColumn ()

IsInnerMostCrosstabColumnNodeMember
Returns Boolean 1 (true) if the current node is an innermost crosstab column node
member.

Syntax
IsInnerMostCrosstabColumnNodeMember ()

IsInnerMostCrosstabRowNodeMember
Returns Boolean 1 (true) if the current node is an innermost crosstab row node
member.

Syntax
IsInnerMostCrosstabRowNodeMember ()

IsLastColumn
Returns Boolean 1 (true) if the current column is the last column.

Syntax
IsLastColumn ()

IsLastInnerMostCrosstabColumnNodeMember
Returns Boolean 1 (true) if the current node is the last innermost crosstab column
node member.

Syntax
IsLastInnerMostCrosstabColumnNodeMember ()

IsLastInnerMostCrosstabRowNodeMember
Returns Boolean 1 (true) if the current node is the last innermost crosstab row
node member.

Syntax
IsLastInnerMostCrosstabRowNodeMember ()

IsOuterMostCrosstabColumnNodeMember
Returns Boolean 1 (true) if the current node is an outermost crosstab column node
member.

Syntax
IsOuterMostCrosstabColumnNodeMember ()

534

IBM Cognos Framework Manager Version 10.1.1: User Guide

IsOuterMostCrosstabRowNodeMember
Returns Boolean 1 (true) if the current node is an outermost crosstab row node
member.

Syntax
IsOuterMostCrosstabRowNodeMember ()

IsPageCountAvailable
Returns Boolean 1 (true) if the page count is available for the current execution of
the report; otherwise, returns Boolean 0 (false).

Syntax
IsPageCountAvailable ()

ln
Returns the natural logarithm of "numeric_expression".

Syntax
ln ( numeric_expression )

Locale
Returns the run locale.

Syntax
Locale ()

lower
Returns "string_expression" with all uppercase characters converted to lowercase.
This function is displayed in the Bursted Sales Performance Report sample report
in the GO Data Warehouse (query) package.

Syntax
lower ( string_expression )

mapNumberToLetter
Adds "integer_expression" to "string_expression".

Syntax
mapNumberToLetter ( string_expression , integer_expression )

Example
mapNumberToLetter ( ’a’ , 1 )

Result: b

mod
Returns an integer value representing the remainder (modulo) of
"integer_expression1" / "integer_expression2".

Syntax
mod ( integer_expression1 , integer_expression2 )

ModelPath
Returns the model path.

Appendix B. Using the expression editor

535

Syntax
ModelPath ()

Now
Returns the current system time.

Syntax
Now ()

nullif
Returns null if "string_expression1" equals "string_expression2" (case-insensitive),
otherwise returns "string_expression1".

Syntax
nullif ( string_expression1 , string_expression2 )

octet_length
Returns the number of bytes in "string_expression".

Syntax
octet_length ( string_expression )

PageCount
Returns the current page count. This function works only when the report output
is Adobe PDF or Microsoft Excel. If you save the report output, this function works
for all formats.

Syntax
PageCount ()

PageName
Returns the current page name.

Syntax
PageName ()

PageNumber
Returns the current page number.

Syntax
PageNumber ()

ParamCount
Returns the parameter count of "parameterName".

Syntax
ParamCount (’parameterName’)

ParamDisplayValue
Returns a string that is the parameter display value of "parameterName". This
function is displayed in the Recruitment Report sample report in the GO Data
Warehouse (analysis) package.

Syntax
ParamDisplayValue (’parameterName’)

536

IBM Cognos Framework Manager Version 10.1.1: User Guide

ParamName
Returns the parameter name of "parameterName".

Syntax
ParamName (’parameterName’)

ParamNames
Returns all parameter names.

Syntax
ParamNames ()

ParamValue
Returns the parameter value of "parameterName".

Syntax
ParamValue (’parameterName’)

position
Returns the integer value representing the starting position of "string_expression1"
in "string_expression2". Returns 0 if "string_expression1" is not found.

Syntax
position ( string_expression1 , string_expression2 )

power
Returns "numeric_expression1" raised to the power of "numeric_expression2".

Syntax
power ( numeric_expression1 , numeric_expression2 )

Example
power ( 3 , 2 )

Result: 9

ReportAuthorLocale
Returns the author locale.

Syntax
ReportAuthorLocale ()

ReportCreateDate
Returns the date when the report was created.

Syntax
ReportCreateDate ()

ReportDate
Returns the report execution date and time.

Syntax
ReportDate ()

Appendix B. Using the expression editor

537

ReportDescription
Returns the report description. This function works only when the report is run
from IBM Cognos Connection.

Syntax
ReportDescription ()

ReportID
Returns the report ID.

Syntax
ReportID ()

ReportLocale
Returns the run locale.

Syntax
ReportLocale ()

ReportName
Returns the report name. This function works only when the report is run from
IBM Cognos Connection.

Syntax
ReportName ()

ReportOption
Returns the value of the run option variable identified by "optionName", such as
attachmentEncoding, burst, cssURL, email, emailAsAttachment, emailAsURL,
emailBody, emailSubject, emailTo, emailToAddress, metadataModel,
outputEncapsulation, outputFormat, outputLocale, outputPageDefinition,
outputPageOrientation, primaryWaitThreshold, print, printer, printerAddress,
prompt, promptFormat, saveAs, saveOutput, secondaryWaitThreshold,
verticalElements, or xslURL.

Syntax
ReportOption (’optionName’)

ReportOutput
Returns the name of the output format, such as CSV, HTML, layoutDataXML,
MHT, PDF, rawXML, singleXLS, spreadsheetML, XLS, XML, or XLWA.

Syntax
ReportOutput ()

ReportPath
Returns the report path. This function works only when the report is run from IBM
Cognos Connection.

Syntax
ReportPath ()

ReportProductLocale
Returns the product locale.

538

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
ReportProductLocale ()

ReportSaveDate
Returns the date when the report was last saved.

Syntax
ReportSaveDate ()

round
Returns "numeric_expression" rounded to the nearest value with
"integer_expression" significant digits to the right of the decimal point. If
"integer_expression" is negative, "numeric_expression" is rounded to the nearest
absolute value with "integer_expression" significant digits to the left of the decimal
point. Rounding takes place before data formatting is applied.

Syntax
round ( numeric_expression , integer_expression )

Example
round (125, -1)

Result: 130

RowNumber
Returns the current row.

Syntax
RowNumber ()

ServerLocale
Returns the locale of the server that runs the report.

Syntax
ServerLocale ()

ServerName
Returns the name of the web server where the run request originated from. The
value may be empty if the request is executed from the scheduler.

Syntax
ServerName ()

sqrt
Returns the square root of "numeric_expression". "Numeric_expression" must not
be a negative value.

Syntax
sqrt ( numeric_expression )

substring
Returns the substring of "string_expression" that starts at position
"integer_expression1" for "integer_expression2" characters or to the end of
"string_expression" if "integer_expression2" is -1. The first character in
"string_expression" is at position 1.
Appendix B. Using the expression editor

539

Syntax
substring ( string_expression , integer_expression1 , integer_expression2 )

Example
substring ( [Sales (analysis)].[Sales staff].[Sales staff].
[Sales staff].[Position code], 3 , 5 )

Result: Returns characters 3 to 7 of the position codes.

TOCHeadingCount
Returns the table of contents heading count for a specified heading level.

Syntax
TOCHeadingCount ( headingLevel )

Today
Returns the current system date.

Syntax
Today ()

trim
Returns "string_expression" trimmed of any leading and trailing blanks or trimmed
of the character specified by "match_character_expression". "Trim_what_expression"
may be "leading", "trailing", or "both" (default). "Match_character_expression" can
be an empty string to trim blanks or can specify a character to be trimmed.

Syntax
trim ( trim_what_expression , match_character_expression , string_expression )

upper
Returns "string_expression" with all lowercase characters converted to uppercase.

Syntax
upper ( string_expression )

URLEncode
Returns the URL encoded value of the input text.

Syntax
URLEncode (’text’)

Data type casting functions
date2string:
Returns a date as a string in YYYY-MM-DD format.
Syntax
date2string ( date_expression )

date2timestamp:
Converts "date_expression" to a timestamp. The time part of the timestamp will
equal zero.

540

IBM Cognos Framework Manager Version 10.1.1: User Guide

Syntax
date2timestamp ( date_expression )

date2timestampTZ:
Converts "date_expression" to a timestamp with a time zone. The time and time
zone parts of the timestamp will equal zero.
Syntax
date2timestampTZ ( date_expression )

DTinterval2string:
Returns a date time interval as a string in DDDD HH:MM:SS.FFFFFFF or -DDDD
HH:MM:SS.FFF format.
Syntax
DTinterval2string ( date_time_interval_expression )

DTinterval2stringAsTime:
Returns a date time interval as a string in HHHH:MM:SS.FFFFFFF or
HH:MM:SS.FFF format. Days are converted to hours.
Syntax
DTinterval2stringAsTime ( date_time_interval_expression )

int2DTinterval:
Converts an integer to a date time interval. "String_expression" specifies what
"integer_expression" represents: "ns" = nanoseconds, "s" = seconds (default), "m" =
minutes, "h" = hours, "d" = days.
Syntax
int2DTinterval ( integer_expression , string_expression )

Example 1
int2DTinterval (1020,"h")

Result: 42 days 12 hours
Example 2
int2DTinterval (1020,"s")

Result: 17 minutes
int2YMinterval:
Converts "integer_expression" to a year month interval. "String_expression"
specifies what "integer_expression" represents: "y" = years, "m" = months (default).
Syntax
int2YMinterval ( integer_expression , string_expression )

number2string:
Appendix B. Using the expression editor

541

Converts "numeric_expression" to a string, using the %g format specifier (C/C++
syntax).
Syntax
number2string ( numeric_expression )

string2date:
Returns "string_expression" as a date in YYYY-MM-DD format.
Syntax
string2date ( string_expression )

string2double:
Returns a floating point number. "String_expression" has the following form:
"[whitespace] [sign] [digits] [digits] [ {d|D|e|E }[sign]digits]"
Syntax
string2double ( string_expression )

string2DTinterval:
Returns "string_expression" as a date time interval in [-]DD HH:MM[:SS[.FFF]]
format.
Syntax
string2DTinterval ( string_expression )

string2int32:
Returns an integer. "String_expression" has the following form: "[whitespace]
[{+|-}] [digits]"
Syntax
string2int32 ( string_expression )

string2int64:
Returns a long integer. "String_expression" has the following form: "[whitespace]
[{+|-}] [digits]"
Syntax
string2int64 ( string_expression )

string2time:
Returns "string_expression" as a time in HH:MM:SS.FFFFFFF format.
Syntax
string2time ( string_expression )

string2timestamp:

542

IBM Cognos Framework Manager Version 10.1.1: User Guide

Returns "string_expression" as a timestamp in YYYY-MM-DD [T|t|[white space]+]
HH:MM:SS.FFFFFFF format.
Syntax
string2timestamp ( string_expression )

string2timestampTZ:
Returns "string_expression" in YYYY-MM-DD HH:MM:SS.FFFFFFF +HHMM or
YYYY-MM-DD [T|t] HH:MM:SS.FFF -HHMM format.
Syntax
string2timestampTZ ( string_expression )

string2YMinterval:
Returns "string_expression" as a Year Month Interval in [-]YY MM format.
Syntax
string2YMinterval ( string_expression )

time2string:
Returns a time as a string in HH:MM:SS.FFF format.
Syntax
time2string ( time_expression )

timestamp2date:
Converts "timestamp_expression" to a date. The time part of the timestamp will be
ignored.
Syntax
timestamp2date ( timestamp_expression )

timestamp2string:
Returns a timestamp as a string in YYYY-MM-DD HH:MM:SS.FFFFFFF format.
Syntax
timestamp2string ( timestamp_expression )

timestamp2timestampTZ:
Converts "timestamp_expression" to a timestamp with a time zone. The
displacement part of the timestamp with the time zone will be zero.
Syntax
timestamp2timestampTZ ( timestamp_expression )

timestampTZ2date:
Converts "timestamp_time_zone_expression" to a date. The time and time zone
parts of the timestamp will be ignored.
Appendix B. Using the expression editor

543

Syntax
timestampTZ2date ( timestamp_time_zone_expression )

timestampTZ2string:
Returns a timestamp with the time zone as a string in YYYY-MM-DD
HH:MM:SS.FFFFFFF +HHMM or YYYY-MM-DD HH:MM:SS.FFF -HHMM format.
Syntax
timestampTZ2string ( timestamp_time_zone_expression )

timestampTZ2timestamp:
Converts "timestamp_time_zone_expression" to a timestamp. The displacement
part of the timestamp with the time zone will be ignored.
Syntax
timestampTZ2timestamp ( timestamp_time_zone_expression )

timeTZ2string:
Returns a time with the time zone as a string in HH:MM:SS.FFF +HHMM or
HH:MM:SS.FFFFFFF -HHMM format. For example, -05:30 means a timezone of
GMT minus 5 hours and 30 minutes.
Syntax
timeTZ2string ( timeTZ_expression )

YMinterval2string:
Returns "year_month_interval_expression" as a string in (YY MM) or -(YY MM)
format.
Syntax
YMinterval2string ( year_month_interval_expression )

544

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix C. Accessibility features
Accessibility features help users who have a physical disability, such as restricted
mobility or limited vision, to use information technology products.

Accessibility features in Framework Manager
The major accessibility features are accelerators and command keys that you can
use to navigate through Framework Manager.
v An underlined letter on the screen designates an accelerator; for example, F is
the accelerator for the File menu. In Microsoft Windows, press the Alt key, then
the accelerator to trigger an action; for example, Alt+F shows the File menu. If
they are enabled, you can also use extended accelerators.
v Command keys directly trigger an action and usually make use of the Ctrl keys.
For example, to print, press Ctrl+P.

Keyboard shortcuts for Framework Manager
You can use keyboard shortcuts to navigate through and perform some tasks in
Framework Manager.
This product uses standard Microsoft Windows operating system navigation keys
in addition to application-specific keys.
The following keyboard shortcuts are based in US standard keyboards.
Description

Shortcut

Context-sensitive help

F1

New file

Ctrl + N

Open file

Ctrl + O

Save file

Ctrl + S

Undo

Ctrl + Z

Redo

Ctrl + Y

Cut

Ctrl+X

Copy

Ctrl+C

Paste

Ctrl+V

Delete

Del

Keyboard shortcuts for Model Design Accelerator
You can use keyboard shortcuts to navigate through and perform some tasks in
Model Design Accelerator.
Description

Diagram shortcut

Autolayout as a tree

Ctrl + A

Autolayout as a star

Ctrl + S

Zoom in

Ctrl + +

© Copyright IBM Corp. 2005, 2011

545

Description

Diagram shortcut

Zoom out

Ctrl + -

Fit diagram to window

Ctrl + 0

Zoom to 100%

Ctrl + 1

Undo

Ctrl + Z

Redo

Ctrl + Y

Add directly related tables

Ctrl + D

Add recursively all tables linked by Many to Ctrl + T
One relationships
Add tables with One to Many

Ctrl + O

Add tables with Many to One

Ctrl + M

Remove selected tables

Del

Remove all tables except those selected

Shift + Del

Description

Model Accelerator shortcut

Rename

F2

Delete

Del

Zoom In

Ctrl + +

Zoom out

Ctrl + -

Fit diagram to window

Ctrl + 0

Zoom to 100%

Ctrl + 1

Undo

Ctrl + Z

Redo

Ctrl + Y

IBM and accessibility
See the IBM Accessibility Center (http://ibm.com/able) for more information
about the commitment that IBM has to accessibility.

546

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix D. Data formatting reference
This chapter contains definitions of data formatting properties found in IBM
Cognos Framework Manager. The definition for each formatting property is also
shown when you select a property in the Data Format dialog box in Framework
Manager.
For SAP BW metadata:
v Any unit of measure information that exists in SAP BW is automatically
appended to the data value.
v You cannot define a format for each currency in a multi-currency query subject.

Data Formatting Properties
The following is a list of properties available in the data formatting dialog.

"Not Applicable" Characters
Specifies the characters to be displayed when the value to be formatted was not
applicable. The default value is two dashes (--). Note that the format will be
applied only if the data source supports this error condition.

Any Error Characters
Specifies the characters to be displayed when the value to be formatted was not
available because of an error. This property is overridden by the more specific
formatting error conditions, such as Security Error Characters. The default value is
two dashes (--). Note that the format will be applied only if the data source
supports this error condition.

Calendar Type
Specifies the type of calendar to be displayed. The date values will be mapped to
the selected calendar before being formatted. The default value is inherited from
the user's content language. Note that the Japanese Imperial setting is only
applicable for Japanese languages.

Clock
Specifies whether to display the time in 12-hour or 24-hour format. The default
value is inherited from the user's content language.

Currency
Specifies the currency to be used. The default currency symbol will be displayed
unless the values of the Currency Display and Currency Symbol properties are
changed. The default value is inherited from the model.

Currency Display
Specifies whether to display the international or local currency symbol. By default,
the local currency symbol is displayed.

© Copyright IBM Corp. 2005, 2011

547

Currency Symbol
Specifies a character or characters to use as the symbol to identify the local
currency. This symbol will precede the number and any sign, even if it is a leading
sign. A space between the symbol and the numeric value can be specified by
entering it in this property, after the symbol. The default value is inherited from
the user's content language.

Currency Symbol Position
Specifies where the currency symbol will appear. If End is selected, any spaces that
follow the character or characters in the Currency Symbol or International
Currency Symbol properties will be rendered between the number and the symbol.
The default value is inherited from the user's content language.

Date Ordering
Specifies the order in which to display the day, month, and year. The default value
is inherited from the user's content language.

Date Separator
Specifies the character to be displayed between the year, month, and day. The
default value is inherited from the user's content language.

Date Style
Specifies the date style. The results rendered are determined by the language.
Generally, Short uses only numbers, Medium uses some abbreviated words, Long
uses complete words, and Full includes all available details.

Decimal Separator
Specifies the character that will separate non-decimal numbers from decimals. This
property is ignored if no decimals are displayed. The default value is inherited
from the user's content language.

Display AM / PM Symbols
Specifies whether to display the AM or PM symbols. The default value is inherited
from the user's content language.

Display As Exponent
Specifies whether to render values in scientific notation, using exponents. If this
property is set to No, scientific notation will not be used. If this property is not
specified, scientific notation will be used only when values exceed the maximum
number of digits. The default value is inherited from the user's content language.

Display Days
Specifies whether to display the day. The format of the day can be controlled by
selecting one of the specific formats. Selecting Julian means that the 3-digit day of
the year will be displayed. The default value is inherited from the user's content
language.

Display Eras
Specifies whether to display the era. The default value is inherited from the user's
content language.

548

IBM Cognos Framework Manager Version 10.1.1: User Guide

Display Hours
Specifies whether to display the hours. The default value is inherited from the
user's content language.

Display Milliseconds
Specifies whether to display the milliseconds. The format of the milliseconds can
be controlled by selecting one of the specific formats. This property is ignored if
seconds are not displayed. The default value is inherited from the user's content
language.

Display Minutes
Specifies whether to display the minutes. The format of the minutes can be
controlled by selecting one of the specific formats. The default value is inherited
from the user's content language.

Display Months
Specifies whether to display the month. The format of the month can be controlled
by selecting one of the specific formats. The default value is inherited from the
user's content language.

Display Months
Specifies whether to display the month.

Display Seconds
Specifies whether to display the seconds. The format of the seconds can be
controlled by selecting one of the specific formats. The default value is inherited
from the user's content language.

Display Time Zone
Specifies whether to display the time zone. The default value is inherited from the
user's content language.

Display Weekdays
Specifies whether to display the weekday. The format of the weekday can be
controlled by selecting one of the specific formats. The default value is inherited
from the user's content language.

Display Years
Specifies whether to display the year. The first two digits of the year, which
indicate the century, can be controlled by selecting one of the associated property
values. The default value is inherited from the user's content language.

Display Years
Specifies whether to display the year.

Divide By Zero Characters
Specifies the characters to be displayed when a numeric value is the result of a
division by zero. The default value is /0. Note that the format will be applied only
if the data source supports this error condition.

Appendix D. Data formatting reference

549

Exponent Symbol
Specifies the character to be displayed to identify exponents if the scientific
notation is used. The symbol will be rendered after the number, separated by a
space. The default value is inherited from the user's content language.

Group Size (digits)
Specifies the primary grouping size. If a value is specified it represents the number
of digits to the left of the decimal point to be grouped together and separated by
the thousands separator. The default value is inherited from the user's content
language.

International Currency Symbol
Specifies a character or characters to use as a symbol to identify the international
currency. This symbol will replace the currency symbol. A space between the
symbol and the numeric value can be specified by entering it in this property, after
the symbol. The default value is inherited from the user's content language.

Mantissa (digits)
Specifies the number of digits to be displayed following the exponent symbol if the
scientific notation is used.

Maximum No. of Digits
Specifies the maximum number of digits that can be displayed. If the maximum
number of digits is not sufficient to display the value, a scientific notation will be
used. The default value is inherited from the user's content language.

Minimum No. of Digits
Specifies the minimum number of digits that can be displayed. If the minimum
number of digits is too high to display a value, the padding character will be used.
The default value is inherited from the user's content language.

Missing Value Characters
Specifies the character or characters to be displayed when the value is missing. If
no value is entered for this property, an empty string will be displayed.

Negative Pattern
Specifies a presentation format, based on patterns, for negative numbers. Some
restrictions exist. The numerical part of the negative pattern is ignored. Only the
suffix and the prefix are used. For example, in the pattern ABC#,##0.#EFG, ABC is
the prefix, EFG is the suffix and #,##0.# is the numerical part of the pattern.

Negative Sign Position
Specifies where the negative sign will appear. The default value is inherited from
the user's content language.

Negative Sign Symbol
Specifies how to display negative numbers. The default value is inherited from the
user's content language.

550

IBM Cognos Framework Manager Version 10.1.1: User Guide

No. of Decimal Places
Specifies the number of digits to be displayed to the right of the decimal point. If
this property is not set, the number of decimal places will vary depending on the
number rendered.

Numeric Overflow Characters
Specifies the characters to be displayed when a numeric value is the result of a
numeric overflow. The default value is two dashes (--). Note that the format will be
applied only if the data source supports this error condition.

Padding Character
Specifies the character that will be used to pad values that have fewer digits than
the minimum number of digits. The default value is inherited from the user's
content language.

Pattern
Specifies a presentation format that is based on patterns. The pattern format
overrides formats specified in other properties. For example, to format the date as
2009/12/31 23:59:59 PM, use the pattern yyyy/mm/dd hh:mm:ss aa. For example,
to format thousands using the letter K, set the Format Type to Number, set the
Scale to -3 (to remove 000), and then use the pattern to ####K.

Percentage Symbol
Specifies whether to display the values per hundred (percent) or per thousand. The
symbol will be appended to the number and any trailing sign. A space between the
numeric value and the symbol can be specified by entering it in this property, after
the symbol. The default value is inherited from the user's content language.

Percent Scale (integer)
Scale to be applied to value after formatting. If omitted, no percent scale will be
applied and the value will formatted according the normal decimal positioning
associated with the percent (or per mille) symbol.

Scale
Specifies how many digits to move the decimal delimiter for formatting purposes.
For example, move the decimal three spaces to present values in thousands. The
default value is inherited from the database field.

Secondary Group Size (digits)
Specifies the secondary grouping size. If a value is specified it represents the
number of digits to the left of the primary group that will be grouped together and
separated by the thousands separator. If this property is left blank, the secondary
grouping of digits is the same number as the primary group size, as specified by
the Group Size (digits) property. The default value is inherited from the user's
content language.

Security Error Characters
Specifies the characters to be displayed when the value to be formatted was not
available for security reasons. The default value is #!Security. Note that the format
will be applied only if the data source supports this error condition.

Appendix D. Data formatting reference

551

Thousands Separator
Specifies how to delimit digit groups, such as thousands. This property is only
used if the Use Thousands Separator property is set to Yes. The default value is
inherited from the user's content language.

Time Separator
Specifies the character to be displayed between the hour, minute, and second. The
default value is inherited from the user's content language.

Time Style
Specifies the time style to be displayed. The exact results that will be rendered are
determined by the language. Generally, Short means that the minimum details will
be displayed, Long adds seconds, and Full means that all details are displayed,
including the time zone. The default value is inherited from the user's content
language.

Time Unit
Specifies the unit of measure of the value. This property will be ignored if any day
or time components are shown. The default value is inherited from the user's
content language.

Use Thousands Separator
Specifies whether the grouping delimiter will be applied as defined by the Group
Size property. The default value is inherited from the user's content language.

Zero Value Characters
Specifies the character or characters to be displayed when the value is zero (0). If
no value is entered for this property, the Maximum No. of Digits property
determines how many zero digits are displayed.

552

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix E. Using Patterns to Format Data
You can format data so that it matches any pattern of text and numbers when
default formats are not appropriate. For example, you can format dates to use full
text including the era, or you can format them to only use numbers and show the
last two digits of years to save space.
Using symbols and patterns can provide similar results as basic data formatting
tasks. For example, you can set how many digits appear after the decimal point.
You can achieve these types of results with a pattern, or you can set the No. of
Decimal Places property. Patterns allow flexibility for more complex requirements.
Each supported content language code requires a specific set of symbols to be used
in patterns. For each language code, there are two tables you will need; one for
date and time symbols, and one for decimal symbols. The decimal symbols are the
same for all locales, however, date and time symbols are grouped into six locale
groups. Check the Date and Time Symbol section to see which locale group is used
for your locale.
To define patterns, open the Data Format dialog box, and edit the Pattern property
for each format type. Use the symbols that are defined in the language code tables,
and follow these guidelines.

Pattern Guidelines
When you define a pattern, the number of symbols you use affects how the data
will be shown. There are different rules for text, numbers, and values that can take
the form of text or numbers.

Text
You can specify whether text is produced in full or abbreviated form.
Number of symbols

Meaning

Example

4 or more

Full text form

EEEE produces Monday

Less than 4

Abbreviated form

EEE produces Mon

Numbers
The number of symbols you use in a pattern sets the minimum number of digits
that are produced in a report. Numbers that have fewer digits than specified are
zero-padded. For example, if you specify mm for minutes, and the database value
is 6, the report will show 06.
Note: The year value is handled differently. If you specify two symbols for year,
the last two digits of the year value is produced. For example, yyyy produces 1997,
and yy produces 97.

© Copyright IBM Corp. 2005, 2011

553

Text and Numbers
For values that can produce text or numbers, such as months, you can specify
whether text or numbers are produced, and whether words are abbreviated.
Number of symbols

Meaning

Example

3 or more

Text

MMMM produces January
MMM produces Jan

Less than 3

Numbers

MM produces 01
M produces 1

Date and Time Symbols
Date and time symbols are divided into locales, each of which is detailed below.

Locale Group A
Locales: af-za, en, en-au, en-be, en-bw, en-ca, en-gb, en-hk, en-ie, en-in, en-mt,
en-nz, en-ph, en-sg, en-us, en-vi, en-za, fo-fo, gl-es, id, id-id, is, is-is, it, it-ch, it-it,
kk-kz, ms, ms-bn, ms-my, nb-no, nl, nl-be, nl-nl, no, no-no, om-et, om-so, pl, pl-pl,
pt, pt-br, pt-pt, so-dj, so-et, so-ke, so-so, sv, sv-fi, sv-se, sw-ke, sw-tz

554

Meaning

Symbol

Presentation

Example

Era

G

Text

AD

Year

y

Number

1996

Year (of 'Week of
Year')

Y

Number

1996

Month in year

M

Text and number

July and 07

Week in year

w

Number

27

Week in month

W

Number

2

Day in year

D

Number

189

Day in month

d

Number

10

Day of week in
month

F

Number

2 (2nd Wed in July)

Day of Week (1=first
day)

e

Number

2

Day in week

E

Text

Tuesday

a.m. or p.m. marker

a

Text

pm

Hour in day (1 to 24) k

Number

24

Hour in a.m. or p.m.
(0 to 11)

K

Number

0

Hour in a.m. or p.m.
(1 to 12)

h

Number

12

Hour in day (0 to 23) H

Number

0

Minute in hour

m

Number

30

Second in minute

s

Number

55

Millisecond

S

Number

978

IBM Cognos Framework Manager Version 10.1.1: User Guide

Meaning

Symbol

Presentation

Example

Time zone

z

Text

Pacific Standard Time

Escape used in text

'

n/a

n/a

Single quote

''

n/a

'

Locale Group B
Locales: be-by, bg-bg, el, el-gr, fi, fi-fi, hr, hr-hr, hu, hu-hu, ja, ja-jp, ko, ko-kr, ro,
ro-ro, ru, ru-ua, ru-ru, sh-yu, sk, sk-sk, sl-si, sq-al, sr-sp, th, tr, tr-tr, uk-ua, zh,
zh-cn, zh-hk, zh-mo, zh-sg, zh-tw
Meaning

Symbol

Presentation

Example

Era

G

Text

AD

Year

a

Number

1996

Year (of 'Week of
Year')

A

Number

1996

Month in year

n

Text and number

July and 07

Week in year

w

Number

27

Week in month

W

Number

2

Day in year

D

Number

189

Day in month

j

Number

10

Day of week in
month

F

Number

2 (2nd Wed in July)

Day of Week (1=first
day)

e

Number

2

Day in week

E

Text

Tuesday

a.m. or p.m. marker

x

Text

pm

Hour in day (1 to 24) h

Number

24

Hour in a.m. or p.m.
(0 to 11)

K

Number

0

Hour in a.m. or p.m.
(1 to 12)

k

Number

12

Hour in day (0 to 23) H

Number

0

Minute in hour

m

Number

30

Second in minute

s

Number

55

Millisecond

S

Number

978

Time zone

z

Text

Pacific Standard Time

Escape used in text

'

n/a

n/a

Single quote

''

n/a

'

Locale Group C
Locales: ca-es, cs, cs-cz, da, da-dk, es, es-ar, es-bo, es-cl, es-co, es-cr, es-do, es-ec,
es-es, es-gt, es-hn, es-mx, es-ni, es-pa, es-pe, es-pr, es-py, es-sv, es-us, es-uy, es-ve,
eu-es, mk-mk

Appendix E. Using Patterns to Format Data

555

Meaning

Symbol

Presentation

Example

Era

G

Text

AD

Year

u

Number

1996

Year (of 'Week of
Year')

U

Number

1996

Month in year

M

Text and number

July and 07

Week in year

w

Number

27

Week in month

W

Number

2

Day in year

D

Number

189

Day in month

t

Number

10

Day of week in
month

F

Number

2 (2nd Wed in July)

Day of Week (1=first
day)

e

Number

2

Day in week

E

Text

Tuesday

a.m. or p.m. marker

a

Text

pm

Hour in day (1 to 24) h

Number

24

Hour in a.m. or p.m.
(0 to 11)

K

Number

0

Hour in a.m. or p.m.
(1 to 12)

k

Number

12

Hour in day (0 to 23) H

Number

0

Minute in hour

m

Number

30

Second in minute

s

Number

55

Millisecond

S

Number

978

Time zone

z

Text

Pacific Standard Time

Escape used in text

'

n/a

n/a

Single quote

''

n/a

'

Locale Group D
Locales: de, de-at, de-be, de-ch, de-de, de-lu

556

Meaning

Symbol

Presentation

Example

Era

G

Text

AD

Year

j

Number

1996

Year (of 'Week of
Year')

J

Number

1996

Month in year

M

Text and number

July and 07

Week in year

w

Number

27

Week in month

W

Number

2

Day in year

D

Number

189

Day in month

t

Number

10

Day of week in
month

F

Number

2 (2nd Wed in July)

IBM Cognos Framework Manager Version 10.1.1: User Guide

Meaning

Symbol

Presentation

Example

Day of Week (1=first
day)

e

Number

2

Day in week

E

Text

Tuesday

a.m. or p.m. marker

a

Text

pm

Hour in day (1 to 24) h

Number

24

Hour in a.m. or p.m.
(0 to 11)

K

Number

0

Hour in a.m. or p.m.
(1 to 12)

k

Number

12

Hour in day (0 to 23) H

Number

0

Minute in hour

m

Number

30

Second in minute

s

Number

55

Millisecond

S

Number

978

Time zone

z

Text

Pacific Standard Time

Escape used in text

'

n/a

n/a

Single quote

''

n/a

'

Locale Group E
Locales: fr, fr-be, fr-ca, fr-ch, fr-fr, fr-lu
Meaning

Symbol

Presentation

Example

Era

G

Text

AD

Year

a

Number

1996

Year (of 'Week of
Year')

A

Number

1996

Month in year

M

Text and number

July and 07

Week in year

w

Number

27

Week in month

W

Number

2

Day in year

D

Number

189

Day in month

j

Number

10

Day of week in
month

F

Number

2 (2nd Wed in July)

Day of Week (1=first
day)

e

Number

2

Day in week

E

Text

Tuesday

a.m. or p.m. marker

x

Text

pm

Hour in day (1 to 24) h

Number

24

Hour in a.m. or p.m.
(0 to 11)

K

Number

0

Hour in a.m. or p.m.
(1 to 12)

k

Number

12

Hour in day (0 to 23) H

Number

0

Minute in hour

Number

30

m

Appendix E. Using Patterns to Format Data

557

Meaning

Symbol

Presentation

Example

Second in minute

s

Number

55

Millisecond

S

Number

978

Time zone

z

Text

Pacific Standard Time

Escape used in text

'

n/a

n/a

Single quote

''

n/a

'

Meaning

Symbol

Presentation

Example

Era

R

Text

AD

Year

b

Number

1996

Year (of 'Week of
Year')

B

Number

1996

Month in year

M

Text and number

July and 07

Week in year

t

Number

27

Week in month

T

Number

2

Day in year

l

Number

189

Day in month

L

Number

10

Day of week in
month

F

Number

2 (2nd Wed in July)

Day of Week (1=first
day)

e

Number

2

Day in week

E

Text

Tuesday

a.m. or p.m. marker

a

Text

pm

Hour in day (1 to 24) u

Number

24

Hour in a.m. or p.m.
(0 to 11)

K

Number

0

Hour in a.m. or p.m.
(1 to 12)

k

Number

12

Hour in day (0 to 23) U

Number

0

Minute in hour

n

Number

30

Second in minute

s

Number

55

Millisecond

S

Number

978

Time zone

c

Text

Pacific Standard Time

Escape used in text

'

n/a

n/a

Single quote

''

n/a

'

Locale Group F
Locales: ga-ie

558

IBM Cognos Framework Manager Version 10.1.1: User Guide

Decimal Format Symbols
All locales
Symbol

Meaning

0

A digit that is shown even if the value is
zero.

#

A digit that is suppressed if the value is
zero.

.

A placeholder for decimal separator.

,

A placeholder for thousands grouping
separator.

E

Separates mantissa and exponent for
exponential formats.

;

Separates formats for positive numbers and
formats for negative numbers.

-

The default negative prefix.

%

Multiplied by 100, as percentage.
Multiplied by 1000, as per mille.
The currency symbol. If this symbol is
present in a pattern, the monetary decimal
separator is used instead of the decimal
separator.
The international currency sign. It will be
replaced by an international currency
symbol. If it is present in a pattern, the
monetary decimal separator is used instead
of the decimal separator.

X

Other characters that can be used in the
prefix or suffix.

'

Used to quote special characters in a prefix
or suffix.

/u221E

Infinity symbol.

/uFFFD

Not a Number symbol.

Appendix E. Using Patterns to Format Data

559

560

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix F. Guidelines for Working with SAP BW Data for
Use in Transformer
Starting with Transformer version 8.4, you can use Framework Manager packages
published to Content Manager to leverage your SAP BW data. The SAP-based
packages can be used as data sources to create Transformer models. As result,
Transformer PowerCubes can be used as high speed data access cache methods for
distributing smaller or focused areas of your business information. This is the
recommended method for leveraging your SAP BW data.
There are special considerations when using SAP-based packages created in
Framework Manager. For detailed information about creating your SAP queries,
creating the SAP-based packages in Framework Manager and using them in
Transformer, see “Working with SAP BW Data Using a Package in Framework
Manager.” For general information about creating packages in Framework
Manager, see "Create or Modify a Package" in the IBM Cognos Framework Manager
User Guide.

Transformer versions 7.x, 8.1, 8.2 and 8.3
In Transformer versions 7.x, 8.1, and 8.2, you can leverage your SAP BW data
using a Framework Manager package in which the query subjects and dimensions
are externalized using CSV files. Transformer can use the CSV files as a data
source to create a model and generate PowerCubes. This method should only be
used in a IBM Cognos environment when you want to leverage data in IBM
Cognos BI to build PowerCubes for IBM Cognos BI.
In Transformer version 8.3, use published packages for dimensions and use CSV
files for facts.
There are special considerations when using externalized CSV files with SAP data
in Framework Manager. For more information, see “Working with SAP BW Data
Using Externalized CSV Files in Framework Manager” on page 572. For general
information about externalizing query subjects and dimensions using the CSV
method, see "Externalizing Query Subjects and Dimensions" in the Framework
Manager User Guide.

Working with SAP BW Data Using a Package in Framework Manager
You can leverage SAP BW data in Transformer by using an SAP-based package
created in Framework Manager and published to Content Manager. This is the
recommended method to leverage your SAP BW data. There are special
considerations when using SAP-based packages created in Framework Manager.
You can use Transformer to import both dimensional and fact data from an SAP
BW query source. The following instructions describe how to rebuild an SAP BW
cube as an IBM Cognos Transformer cube. To do so, the SAP BW query package
must be in a specific format.
There are three stages to importing a SAP BW query to access both dimensions
and facts using IBM Cognos BI:
v Creating a Query in SAP BW Business Explorer Query Designer
© Copyright IBM Corp. 2005, 2011

561

v
v

Creating a Package in Framework Manager
Creating a Model in Transformer

Limitations
v This extract process is limited to SAP BW data sources only.
v The data source must be a specifically constructed query defined in the SAP BW
data source.
For general information about creating packages, see "Create or Modify a Package"
in the Framework Manager User Guide.

Creating a BW Query in SAP Business Explorer Query
Designer
You must create a query that includes the cube that you wish to import. We
recommend that you base the query on a single InfoCube in the database. A query
based on multiple sources may result in SAP BW errors during data retrieval.
After creating the query, you can create a variable “Create a Variable” on page 563.

Procedure
1. In Query Designer, click New Query.
2. In the New Query dialog box, select the information provider that contains the
cube that you want to import.
3. Click the Tools icon to view the technical name of the InfoObject.
4. Drag a characteristic that you wish to import from the InfoObject catalog on
the left column to one of the fields on the right-hand side of the page. For
example, Columns or Rows.
The characteristics you select will define the metadata in the Cognos
Transformer cube. The characteristics must adhere to the following restrictions:
v You must have at least a single optional variable to segment the data.
v Select a characteristic that is representative of the data source. The
characteristics can be either key figures, which will become measures in
Cognos Transformer, or dimensions, which will become the Cognos
Transformer dimensions.
v Do not assign any of the characteristics a display hierarchy, either explicitly
or by a variable.
v
v
v
v

All key figures in the SAP BW query must be numeric.
Do not select the Currency/Unit characteristic.
Ensure that all selected key figures use the same currency.
Only include characteristics in the SAP BW query that you wish to extract
using Framework Manager. Including unnecessary characteristics increases
data volume, thereby adversely affecting performance.

v Characteristics must be copied to the Columns or Rows fields of the query
definition. If copied to the Free Characteristics or the Filter fields, the
characteristics show as dimensions when importing from the package but the
stream extract processing is not able to fetch the values.
v If you have filters defined, they must reference only dimensions that have
been included elsewhere in the query definition.

562

IBM Cognos Framework Manager Version 10.1.1: User Guide

v If you include a free characteristic, no values will appear for that
characteristic in the key figures extract. A filter on a free characteristic acts as
a filter on the returned SAP BW data. You can use this as a filter to define a
subset of an InfoCube.
v Use a picklist prompt, rather than a type-in prompt for the query. A picklist
prompt provides values for segmenting the data.
5. To define the metadata that will populate the Cognos Transformer cube, you
must change the properties of each characteristic that you have selected for
inclusion. Right-click a characteristic, and select Properties.
6. In the Properties of Characteristic dialog box, change the Display As value to
Key, and the Suppress Results Rows value to Always. Note that any
restriction or filter applied here will be carried forward in Cognos Transformer.
7. Repeat steps 5 and 6 for each characteristic that you selected in step 4.
Note: You should only select the characteristics that you require. To avoid
excessive memory consumption, and decreased system performance or failure,
carefully consider what characteristics you want to include in the query. We
recommend that you consult an SAP BW administrator to ensure that the data
volumes are not exceeded.
8. Click the Queries Properties icon, and in the Extended tab select the Allow
External Access to this Query check box. This exposes the query to Framework
Manager.
9. Click Save, and provide the new query with a Description and a Technical
Name. We recommend that you use the SAP BW naming convention in the
Technical Name field. That is, begin the entry with the letter 'Z' followed by an
intuitive name or your standard naming convention. It is important to write
down this technical name, as you will need it to find the query in Framework
Manager.

Results
You are now ready to create a variable “Create a Variable.” For more information
on using the SAP Query Designer, see your SAP BW documentation.

Create a Variable
You must now create an optional prompt parameter for the query so Cognos
Transformer can issue smaller queries to SAP, and thereby retrieve the entire data
set.
There are no set rules for variable usage when extracting SAP BW data for use in
Cognos Transformer. However, you must be careful not to request too much data
that could potentially perform poorly or error out with out-of-memory messages
within your SAP environment.
A basic guideline to follow is that when a variable is utilized for the extraction,
Cognos Transformer will first fetch all members that exist for the dimension
against which the variable is defined. After this, Cognos Transformer will perform
individual data fetches to extract the fact data for each of the individual members
within the dimension in order to satisfy the variable.
This allows Cognos Transformer to break down your data extraction into
manageable chunks that the SAP BW server can handle. There are no set standards
as to which dimension to apply it to. To achieve optimal performance, you must
understand your SAP BW data and determine which dimension evenly breaks up
the factual data.
Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

563

You must choose carefully which dimension to define the variable on. It may
require some experimentation to achieve optimal performance. For example, you
may have a Country or region dimension that contains three countries or regions
as members, United States (US), Canada (CA), and Mexico (MX). If most of the
business is performed in the US (90%) and the remaining business (10%) is
recorded against Canada and Mexico evenly, this dimension would not evenly split
up the data. The resulting queries would have one very large request (US) and two
small ones (CA and MX). Therefore, this dimension would not be a good
candidate.
You do not want to apply a variable on a dimension that would cause too many
very small requests. For example, [0MATERIAL], a dimension often utilized in SAP
BW environments would probably not be a good candidate because it would cause
too many small requests to be performed.
You may have a dimension defined for [COSTCENTER] that evenly divides up the
data for 10 distinct cost centers that may serve to segment the data evenly. Another
good alternative may be calendar year or calendar month because it may divide
your data into sections that perform adequately.
It is not necessary to apply any variables to queries for data extraction. Some
extraction will perform perfectly well when no variables are applied. For example,
a good approach may be to apply a variable on a dimension which splits the data
into 20 individual fetches and test the extraction. If this performs well, you may
choose to apply a variable on a different dimension which may contain 5 distinct
members and see how it compares.
No formula can be applied as no two environments are alike. However, a cautious
approach is recommended to avoid disrupting your SAP BW environment.

Procedure
1. In Query Designer, right-click a characteristic that you have selected in the
previous procedure and select Restrict.
To ensure that data is distributed evenly, select a characteristic that is
representative of the cube and will not result in a large number of values. You
want a resulting variable where the number of rows for each value of the
variable is similar; you do not want a resulting variable that is too fine-grained
(for example, not many rows per value resulting in an excessive number of
queries), nor do you want a variable that is too coarse-grained (for example,
more than one million rows per value).
2. In the Selection for ... dialog box, click the Variables tab, right-click anywhere
inside the Description window and select New Variable.
Note: If one of the characteristics that you have chosen already has a variable,
you can avoid creating a new variable and skip to step 7 of this procedure.
3. In the New Variable Wizard General Information page, type a Variable Name
and Description, and select a dimension as the characteristic. Click Next.
4. In the Details page, select Single Value, Multiple Single Values, or Interval in
the Variable Represents field, Optional in the Variable entry is field, and
select the Ready for Input check box. Click Next.
5. In the Default Values page, ensure that the Default Value field is empty.
6. Click Next until you are returned to Selection for ... dialog box. The new
variable appears in the Description window.

564

IBM Cognos Framework Manager Version 10.1.1: User Guide

7. Select the variable and click the right arrow to move the selected variable to the
Selection window. Save the query. You are now ready to import the query in
Framework Manager.
Steps to create a variable:
Procedure
1. In Query Designer, right-click a characteristic that you have selected in the
previous procedure and select Restrict.
To ensure that data is distributed evenly, select a characteristic that is
representative of the cube and will not result in a large number of values. You
want a resulting variable where the number of rows for each value of the
variable is similar; you do not want a resulting variable that is too fine-grained
(for example, not many rows per value resulting in an excessive number of
queries), nor do you want a variable that is too coarse-grained (for example,
more than one million rows per value).
2. In the Selection for ... dialog box, click the Variables tab, right-click anywhere
inside the Description window and select New Variable.

3.
4.

5.
6.

Note: If one of the characteristics that you have chosen already has a variable,
you can avoid creating a new variable and skip to step 7 of this procedure.
In the New Variable Wizard General Information page, type a Variable Name
and Description, and select a dimension as the characteristic. Click Next.
In the Details page, select Single Value, Multiple Single Values, or Interval in
the Variable Represents field, Optional in the Variable entry is field, and
select the Ready for Input check box. Click Next.
In the Default Values page, ensure that the Default Value field is empty.
Click Next until you are returned to Selection for ... dialog box. The new
variable appears in the Description window.

to move the selected
7. Select the variable and click the right arrow
variable over to the Selection window, and save the query. You are now ready
to import the query in Framework Manager.

Creating a Package in Framework Manager
To create a package in IBM Cognos Framework Manager you must
v Import the SAP BW metadata using the MetaData Wizard “Steps for Importing
Using the Metadata Wizard” on page 566
Framework Manager imports the SAP BW query into a model, and defines a
package that it exports to Content Manager.
When importing, note the following:
– The dimensions selected in the SAP BW query are available in the Dimension
Folders in the Import dialog box.
– Each dimension will contain at least one hierarchy.
– Always select the primary hierarchy whose name matches the hierarchy.
– If other hierarchies are available, select one that gives the desired set of levels
within the hierarchy.
– Framework Manager imports time dimensions into the model from the SAP
BW data source only if a configuration parameter is turned on. Setting the
configuration as a time dimension is a global entry; every imported
dimension will then be treated as time strings.
Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

565

v Create a package “Steps for Creating a Package” on page 568
When creating the package for publishing to Content Manager, hide the primary
hierarchy in those dimensions where you imported two hierarchies. The primary
hierarchy is necessary, and must be in the package for querying to work
correctly. You can hide the hierarchy if you don't want it visible.

Steps for Importing Using the Metadata Wizard
Procedure
1. In Framework Manager, click Create a new project.
2. Complete the fields in the New Project dialog box. Click OK.
3. Complete the steps in the Metadata Wizard. When prompted to select a data
source, if you need to create a new data source, click New...
4. In the Select Objects page, locate the query that you defined in SAP BW query
Designer in the previous stage “Creating a BW Query in SAP Business Explorer
Query Designer” on page 562. Scroll the list for the technical name that you
provided when you created the variable. The folder structure is as follows:
Hierarchies > Level definitions > Query Item definitions.

566

IBM Cognos Framework Manager Version 10.1.1: User Guide

5. Select the main query items that directly relate to the level. That is, those
labeled (Key), (Name), and so on.
Tip: Secondary or additional attributes are removed on import to Transformer.
Only items that are needed are imported. However, to improve performance,
we recommend that you do not select secondary or additional attributes. If you
select all the attributes here, you can exclude unwanted query items when
publishing the package.
6. Complete the remaining screens in the Metadata Wizard, accepting the default
values, and click Next. This will generate dimensions and import the metadata.
7. At the final wizard screen, verify the results, and click Finish.

Results
You are now ready to create a model in Transformer. For more information on
creating a package, see "Create or Modify a Package" in the Framework Manager
User Guide.
Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

567

Steps for Creating a Package
Procedure
1. Click the Packages folder, and from the Actions menu, click Create, Package.
2. In the Provide Name page, type the name for the package and, if you want, a
description and screen tip. Click Next.
3. Select the query that you imported in the previous section.
For more information, see “Creating a BW Query in SAP Business Explorer
Query Designer” on page 562.
4. In the Define objects page, when hiding or excluding child objects from the
package, you must select each of them individually. Excluding parent objects
also exclude all of its children. Note that excluding (or unselecting) many
objects from larger cubes will require a significant amount of time.
Note: Framework Manager supports ctrl+shift and alt+shift functionality. Use
these keystrokes to select multiple objects that you wish to include or hide in
the cube. For example, if you wish to only include two items in a large branch,
select the entire branch, then use ctrl+shift to de-select the items you wish to
include, and hide the remaining selected items.
For more information about including, excluding and hiding objects, see
"Create or Modify a Package" in the Framework Manager User Guide.

568

IBM Cognos Framework Manager Version 10.1.1: User Guide

5. Choose whether to use the default access permissions for the package:
v To accept the default access permissions, click Finish.
v To set the access permissions, click Next.
6. When you are prompted to open the Publish Package Wizard, click Yes.

Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

569

7. Select the default values, and click Publish. This will publish the package to
the content store, and will allow you to access the package in Transformer.
8. At the final screen verify the results, and click Finish.

Results
You are now ready to create a model in Transformer. For more information on
creating a package, see "Create or Modify a Package" in the Framework Manager
User Guide.

Creating a Model in Transformer
Use Transformer to access a published SAP-based package and use it as a data
source to create a model. After the model is created, you can create PowerCubes
for use with the desired IBM Cognos component, accessing the dimensional and
fact data from the original SAP BW source. In addition, you can combine the SAP
metadata in a Transformer model with other corporate metadata or personal
sources provided you have the necessary matching key information to join the data
during cube building.
When you create the Transformer model, you must use the Insert Dimension from
Package wizard rather than the New Model Wizard. You use the Insert
Dimension from Package wizard because it
v creates a single query for each dimension and for the facts.
v imports facts and dimensions in the same manner as dimensionally-modeled
relational models. That is, facts and dimensions are imported at the same time.
v ensures that the scope is set properly between the dimensions and facts.

570

IBM Cognos Framework Manager Version 10.1.1: User Guide

v populates the dimension with the appropriate business key and caption
information.
v only imports the necessary items from the BW package required for cube
building, when the metadata is imported. This reduces the number of attributes
and keeps the data volumes to only the necessary items for cube building.
If you want to define business rules, do so in the Transformer model rather than in
Framework Manager. Calculations that you define in Framework Manager are not
imported into Transformer.

Steps to create a model in Transformer
Procedure
1. In Transformer, click Create a new model.
2. In the New Model Wizard, click Cancel.
3. With the Dimension Map pane selected, from the Edit menu, click Insert
Dimension from Package.
4. Click Browse to open the metadata browser.
5. In the Browse Metadata dialog box, select the package that contains your SAP
BW query and click OK.
6. In the Insert Dimension from Package dialog box, click Finish.
7. In the Select Dimension and Measures from Package dialog box, click the
dimensions and measures to include in the data source.
Select a query item that will provide the dates for the PowerCube. Note that
the dates for the PowerCube can be derived entirely from the transaction data.
8. If there are errors or warnings, you are notified. In the Data Sources pane,
expand the package to view the data source queries and query items. Key
figures or measures appear in the Measures pane.
Ensure that the aggregation rule for each measure is correctly defined within
Transformer to align as closely as possible with the aggregation rule defined
in SAP BW.
It is recommended that the storage type for all measures be set to 64-bit
floating point.
For the root level of each characteristic (dimension), ensure it is marked as
unique.
SAP BW presentation hierarchies may contain ragged paths, typically in
association with the "not assigned" and "#" nodes in the hierarchy. The gaps in
these hierarchies produce blanks at the associated level in the Transformer
hierarchy. In Transformer, it is possible to define the text that should be used
for blanks (the default text is ""). A best practice is to define a more
appropriate text for blank entries for all such levels.
9. If you want to add another query, repeat steps 3 to 7.
Tip: If you add a new dimension to a model after adding the measures,
Transformer does not automatically add the key for the new dimension to the
Key Figures. As a result, the scope is not defined in the Dimension Map. In
such situations, you must manually add the key for the new dimension from
the lowest level of the dimension to the Key Figures.
10. Save the model.

Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

571

Results
You can now use this model to create PowerCubes for use with the desired IBM
Cognos component, accessing the dimensional and fact data from the original SAP
BW data source. For more information, see the section "Create a Model" in the
Transformer User Guide.

Working with SAP BW Data Using Externalized CSV Files in
Framework Manager
When you externalize query subjects and dimensions into formats that you can use
in other applications, there are special considerations. When extracting data from
SAP BW using Framework Manager, you must understand the distinction that
Framework Manager makes between different types of dimensions. Each type of
dimension exhibits a different behavior when it is externalized, and can be
modified before externalizing.
In Transformer versions 7.x, 8.1, and 8.2, you can leverage your SAP BW data
using a Framework Manager package in which the query subjects and dimensions
are externalized using CSV files. Transformer can use the CSV files as a data
source to create a model and generate PowerCubes. CSV files are also supported in
Transformer version 8.3 but it is recommended that you use package support for
dimensional data and CSV files for fact data.
In this version of Transformer, using Framework Manager packages published to
Content Manager is the preferred method to leverage SAP BW data. For general
information about creating packages, see "Create or Modify a Package" in the
Framework Manager User Guide. For SAP-specific information about creating
packages, see “Working with SAP BW Data Using a Package in Framework
Manager” on page 561.

Extract Size
The Extract Size data source property within Framework Manager controls the
amount of data retrieved from SAP BW at any one time.
If this setting is negative, zero, or empty, a single query is issued to SAP BW to
extract the characteristic data.
If this setting is a positive value, Framework Manager issues multiple queries to
SAP BW, each of which returns approximately the number of megabytes specified
by the Extract Size property.
This feature can reduce the overall size of the query result on the SAP BW server.
Overall query execution may take longer, but for large characteristics, not using
this feature may result in consumption of a user's allotted memory space on the
SAP BW server.
The entire data for a characteristic dimension will be in memory within
Framework Manager prior to the production of an extract file. It is important that
only the required query items be extracted from SAP BW to ensure that an extract
does not fail due to memory allocation errors within Framework Manager.

572

IBM Cognos Framework Manager Version 10.1.1: User Guide

Model query subjects are extracted using the same mechanism by which queries
are executed within IBM Cognos. Therefore, the Extract Size property has no effect
on the query execution.

Measure Dimensions
When extracting a measure dimension, you should create a model query subject
containing the measures that you want. You should include the business key query
item from each of the levels of each dimension, depending on the level of
granularity that you are trying to achieve.
For information about externalizing model query subjects, see “Framework
Manager Considerations” on page 575.

Characteristic Dimensions
Characteristic dimensions are externalized independent of the type of SAP BW
data source, such as InfoCube or SAP BW query.
Framework Manager uses a single approach to externalize all dimensions that do
not contain fact query items. In these cases, the extract size configuration setting is
used to control the manner in which data is extracted from SAP BW.
Note: Model query subjects are externalized in a different manner, regardless of
whether they contain fact query items or not. For information about externalizing
model query subjects, see “Framework Manager Considerations” on page 575.

Key Figures Dimensions from an SAP BW InfoCube
When externalizing the key figures dimension from a model based on an InfoCube,
Framework Manager uses exactly the same approach as used for externalizing
model query subjects.
For an InfoCube containing more than a few thousand transactions, externalizing
an InfoCube directly from Framework Manager can easily exceed both time and
memory limits on either the client or server. In such cases, it is highly
recommended that an SAP BW query be used as the basis for externalizing the
SAP BW metadata.

Key Figures Dimensions from an SAP BW Query
Using a BEx query as the basis for externalizing key figures from an SAP BW data
source is, in most cases, the best approach. By using a BEx variable to break the
data of the key figure dimension into manageable sections, arbitrarily large
volumes of transaction data can be extracted from SAP BW.
Note, however, that this approach incurs some restrictions as to what can be
extracted from SAP BW, and how it can be extracted. The remainder of this section
describes how an SAP BW query is used to extract data from SAP BW, including
all known restrictions and limitations.

Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

573

SAP BW Query Requirements
For the remainder of this section, we assume that an SAP BW query is being used
as the basis for externalizing the data, not as the basis for reporting, and not with
the intent of exceeding the memory and time limitations associated with extracting
data directly from an InfoCube.
It is not possible to externalize an arbitrary SAP BW query. An SAP BW query
must adhere to the following restrictions if you want to externalize it:
v Set the characteristic display to Key. Setting the display to anything else may
result in incorrect data.
To change what appears for a characteristic, right-click the characteristic and
click Properties. In the Properties of Characteristic dialog box, change the
Display As value to Key.
We strongly recommend that you use Key.
v To reduce data volumes, as well as the amount of aggregation performed by the
SAP BW server, we strongly recommend that summarization for all
characteristics in the query be disabled in its property sheet.
To disable summarization for a characteristic, right-click the characteristic along
the edge of the SAP BW query and click Properties. In the Properties dialog
box, set the Suppress Results Rows value to Always.
v If at least one characteristic in an SAP BW query is displayed as something other
than Key, then summarization for all characteristics must be suppressed.
v The query must not contain the Currency/Unit characteristic.
v None of the characteristics may be assigned a display hierarchy, either explicitly
or by a variable.
v If a characteristic is included in an SAP BW query as a free characteristic, no
values will appear for that characteristic in the key figures extract.
A filter on a free characteristic acts as a filter on the data returned by SAP BW. It
is an efficient mechanism for defining a subset of an InfoCube.
Such a filter may also be applied to a characteristic along an axis of an SAP BW
query, in which case the filtered values appear in the key figures extract.
v All key figures in the SAP BW query must be numeric.
v The values of each key figure should be in a single currency. A variable should
not be used to drive the assignment of a target currency.
v Include in the SAP BW query only those characteristics which are to be extracted
using Framework Manager. Including unnecessary characteristics increases the
volume of data transferred from SAP BW, thus affecting performance.

Guidelines and Constraints When Working with SAP BW Cubes
You must use CSV files when importing metadata from SAP BW cubes. For
performance reasons, we recommend that you filter on geography, time periods, or
some other dimension that limits the amount of data retrieved. Remember to apply
your dimension filter to the related dimensions and their fact tables (measures).
For more information, see "Create a Filter" in the Framework Manager User Guide.
Because SAP BW cubes are multidimensional, rollups are applied at the source. If
you change the rollup type after importing the data into Cognos Transformer, your
results will not be valid.
Missing data or metadata that is out-of-scope for a particular measure may yield
different results, depending on the context. You may see:

574

IBM Cognos Framework Manager Version 10.1.1: User Guide

v
v
v
v

NULL values
# symbols
REST_H
Not assigned

Because such duplicate tokens can cause problems in Cognos Transformer, in
unique levels for example, we recommend that you assign filters to the dimension
so that they do not appear in the imported data.
Finally, remember to select only those query items needed to generate your filtered
data.

Framework Manager Considerations
When extracting the measure dimension from an SAP BW query, the Extract Size
property of the data source controls the amount of data retrieved from the SAP
BW server at one time. Model query subjects are externalized in a different
manner, regardless of whether they contain fact query items or not. In this
scenario, the setting has no affect on the SAP BW server, but it does limit the
amount of memory Framework Manager allocates at any one time to retrieve the
data.
Note that filters defined on the key figures dimension are not enforced when
extracting data from an SAP BW query. To obtain performance benefits of
extracting data from an SAP BW query, filters must be defined in an SAP BW
query.
In addition, any calculations defined within the key figures dimension are ignored.
These may be defined either within the SAP BW query in BEx, or in a model query
subject in Framework Manager.
Each characteristic extracted must contain at least one query item from the lowest
level of its hierarchy (if there is one) to provide linkage with the key figures
extract. You should include the business key query item from each of the levels of
each dimension, depending on the level of granularity that you are trying to
achieve.

Use of Variables to Externalize Key Figures from an SAP BW
Query
The volume of transactions within an SAP BW query is such that, in most cases,
the use of a single query to extract the data from SAP BW will exceed the memory
allocated to a user on an SAP BW server. In Framework Manager, you can use a
single optional variable to extract fact data from an SAP BW query in reasonably
sized sections.
To use this feature, one characteristic included in the SAP BW query (but not
included as a free characteristic) is assigned a variable that conforms to the
following restrictions:
v It must be a single value.
v It must be optional.
v It must not have a default value.
v It can be defined on the characteristic or a presentation hierarchy.
If an SAP BW query contains such a variable and the key figures dimension is
externalized, Framework Manager runs a query for each possible value associated
Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

575

with a variable. Thus, by choosing an appropriate characteristic, the key figures
dimension can be extracted without exceeding the memory restrictions of either the
client or server. Memory caches on the client and server are flushed after each
query.
If a presentation hierarchy is used to drive the creation of extract sections, it is
important that the values for a variable be obtained from a single level in the
hierarchy, otherwise the extract will contain data summarized at different levels. To
restrict the values for a variable to a single level of a hierarchy, edit the Level
Restriction of the variable in Framework Manager. For example, using a value such
as "2:2" indicates that only values from the second level of the hierarchy are to be
used (level 0 is the root of a hierarchy).
In the presence of an SAP BW query with one such variable, the value of the
variable is reset after each query.
If an SAP BW query contains anything more than a single variable, or one that is
defined differently than described above, Framework Manager does not attempt to
use a variable to break the extraction of the key figures dimension into smaller
sections.

Workaround for Problems Encountered While Externalizing
When externalizing a data source from Framework Manager, you may encounter
an authentication error if
v the model is published to Content Manager
v externalizing the data takes longer to perform than the timeout period assigned
to passports within IBM Cognos Configuration
Users are not prompted to re-enter their authentication credentials.
If an error occurs, the externalized data is still complete and valid. However, if the
modeler chooses to actually publish the model, the modeler must re-authenticate
and re-publish the model, but without externalizing the data.
Another solution is to publish the model to the network, in which case the
authentication error does not occur.

Building PowerCubes from SAP BW Data
You can build IBM Cognos PowerCubes from SAP BW data. There are guidelines
to consider for both Framework Manager and Transformer.
For more information, see “Framework Manager Guidelines” and “Transformer
Guidelines” on page 577.

Framework Manager Guidelines
When externalizing data for the purpose of creating one or more PowerCubes,
keep these considerations in mind.
v The extract of each characteristic must have a common key query item that is
equivalent to a surrogate key query item in the key figures extract.
v For an extract based on an SAP BW query, it is strongly recommended that all
characteristics be displayed as Key in the SAP BW query.
v If a characteristic does not have a presentation hierarchy, or a new one is
desired, extract one or more query items that can form the basis for levels in a
hierarchy.

576

IBM Cognos Framework Manager Version 10.1.1: User Guide

v During the import of SAP BW metadata into a model that will extract data, limit
the model to only those query items that are absolutely required to build a
PowerCube. This will improve data extract performance.
v Null values are included in CSV files when externalizing SAP BW-based query
subjects and dimensions.
v A practical limit for PowerCubes is 2,000,000 categories (values) for a dimension
(characteristic).

Transformer Guidelines
When using the SAP BW data that you extracted from Framework Manager, keep
these considerations in mind.
v In Transformer version 8.3, you can insert regular dimensions from SAP data
sources directly from a IBM Cognos data source, using the Insert dimension
from package option.
v Using the model wizard in Transformer, insert a data source of type
Delimited-Field Text With Column Titles and start by selecting the CSV file. Do
not run auto-design.
v Drag all the key figure columns from the Data Sources pane into the Measures
pane. Ensure that the aggregation rule for each measure is correctly defined
within Transformer to align as closely as possible with the aggregation rule
defined in SAP BW.
v It is recommended that the storage type for all measures be set to 64-bit floating
point.
v Using the date wizard, select a query item that will provide the dates for the
PowerCube. Note that the dates for the PowerCube can be derived entirely from
the transaction data.
v Insert the various CSV files corresponding to the characteristics that were
externalized using Framework Manager.
Each CSV file contains a column that corresponds to a column in the key figures
CSV file. By right-clicking the various columns and editing the column
properties, ensure the columns that provide the linkage between a characteristic
and the key figures have the same name. For example, if a key figure column is
named Customer and the corresponding column in the customer CSV file is
named Customer - Key, then the name of the column in the key figures CSV file
can be changed to Customer - Key.
v For each characteristic, create a new dimension, using the key columns, or other
attributes of a characteristic, to drive the levels of the dimension. For each level,
ensure that the properties for the label, short name, and description are assigned
source columns, if applicable.
v For the root level of each characteristic (dimension), ensure it is marked as
unique.
v SAP BW presentation hierarchies may contain ragged paths, typically in
association with the "not assigned" and "#" nodes in the hierarchy. The gaps in
these hierarchies produce blanks at the associated level in the Transformer
hierarchy.
In Transformer, it is possible to define the text that should be used for blanks. The
default text is blank, but you should define a more appropriate text for blank
entries for all such levels.

Appendix F. Guidelines for Working with SAP BW Data for Use in Transformer

577

578

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix G. Reserved words
You must ensure that the names of data sources, tables, and columns do not use
names reserved by IBM Cognos software.
If you must use a reserved word, enclose the word in quotes in the SQL
specification. For example, select Orderdate, "Timezone".
The following words are reserved:
Range

Reserved Words

A to C

abs, all, and, any, as, asc, at, avg, between,
bigint, bit_length, boolean, both, by, call,
case, cast, ceil, ceiling, char, char_length,
character, character_length, coalesce, count,
create, cross, cube, cume_dist, current,
current_date, current_time,
current_timestamp, cursor

D to M

date, day, dbkey, dec, decimal, declare,
delete, dense_rank, desc, distinct, double,
else, end, escape, except, exists, exp, extract,
false, filename, filter, first, first_value, float,
floor, following, for, from, full, group,
grouping, hash, having, hour, in, inner,
insert, int, integer, intersect, interval, into, is,
join, last, last_value, leading, left, like, ln,
local, localtime, localtimestamp, loop, lower,
max, merge, min, minute, mod, month

N to Q

national, natural, nchar, no, not, ntile, null,
nullif, nulls, numeric, nvarchar, octet_length,
of, on, or, order, others, out, outer, over,
partition, perc, percent_rank, percentile,
percentile_cont, percentile_disc, position,
power, preceding, precision, qualify

R to T

range, rank, ratio_to_report, ravg, rcount,
rdiff, real, recursive, returning, right, rmax,
rmin, rollup, row, row_number, rows, rsum,
scroll, second, select, set, sets, smallint,
snapshot, some, sqrt, stddev, stddev_pop,
stddev_samp, substring, sum, table, tertile,
then, time, timestamp, timezone_hour,
timezone_minute, to, top, trailing, trim, true,

U to Z

unbounded, union, unknown, updatable,
update, upper, user, using, values, var_pop,
var_samp, varchar, variance, varying, when,
where, window, with, within, without, xavg,
xcount, xfirst, xlast, xmax, xmin,
xmovingavg, xmovingsum, xntile, xperc,
xrank, xratio, xstddev, xstddev_pop, xsum,
xtertile, xvariance, xvariance_pop, year, zone

The following are also reserved words: _cursor, _local and _rowset.

© Copyright IBM Corp. 2005, 2011

579

580

IBM Cognos Framework Manager Version 10.1.1: User Guide

Appendix H. XML data types
You can import XML as a tabular data source in IBM Cognos Framework Manager.
The following data types are supported when importing from XML into
Framework Manager.
v boolean
v byte
v
v
v
v
v
v

date
dateTime
decimal
double
ENTITIES
ENTITY

v float
v ID
v
v
v
v
v

IDREF
int
integer
language
long

v Name
v NCName
v negativeInteger
v
v
v
v
v

NMTOKEN
NMTOKENS
nonNegativeInteger
NonPositiveInteger
NOTATION

v positiveInteger
v QName
v
v
v
v
v

short
string
time
token
unsignedLong

v unsignedInt
v unsignedShort
v unsignedByte
The following data types are not supported.
v base64Binary
v duration
v gYearMonth
© Copyright IBM Corp. 2005, 2011

581

v
v
v
v

582

gYear
gMonthDay
gMonth
hexBinary

IBM Cognos Framework Manager Version 10.1.1: User Guide

Notices
This information was developed for products and services offered worldwide.
IBM may not offer the products, services, or features discussed in this document in
other countries. Consult your local IBM representative for information on the
products and services currently available in your area. Any reference to an IBM
product, program, or service is not intended to state or imply that only that IBM
product, program, or service may be used. Any functionally equivalent product,
program, or service that does not infringe any IBM intellectual property right may
be used instead. However, it is the user's responsibility to evaluate and verify the
operation of any non-IBM product, program, or service.
IBM may have patents or pending patent applications covering subject matter
described in this document. The furnishing of this document does not grant you
any license to these patents. You can send license inquiries, in writing, to:
IBM Director of Licensing
IBM Corporation
North Castle Drive
Armonk, NY 10504-1785
U.S.A.
For license inquiries regarding double-byte (DBCS) information, contact the IBM
Intellectual Property Department in your country or send inquiries, in writing, to:
Intellectual Property Licensing
Legal and Intellectual Property Law
IBM Japan Ltd.
1623-14, Shimotsuruma, Yamato-shi
Kanagawa 242-8502 Japan
The following paragraph does not apply to the United Kingdom or any other
country where such provisions are inconsistent with local law: INTERNATIONAL
BUSINESS MACHINES CORPORATION PROVIDES THIS PUBLICATION "AS IS"
WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR A PARTICULAR
PURPOSE. Some states do not allow disclaimer of express or implied warranties in
certain transactions, therefore, this statement may not apply to you.
This information could include technical inaccuracies or typographical errors.
Changes are periodically made to the information herein; these changes will be
incorporated in new editions of the publication. IBM may make improvements
and/or changes in the product(s) and/or the program(s) described in this
publication at any time without notice.
Any references in this information to non-IBM Web sites are provided for
convenience only and do not in any manner serve as an endorsement of those Web
sites. The materials at those Web sites are not part of the materials for this IBM
product and use of those Web sites is at your own risk.

© Copyright IBM Corp. 2005, 2011

583

IBM may use or distribute any of the information you supply in any way it
believes appropriate without incurring any obligation to you.
Licensees of this program who wish to have information about it for the purpose
of enabling: (i) the exchange of information between independently created
programs and other programs (including this one) and (ii) the mutual use of the
information which has been exchanged, should contact:
IBM Software Group
Attention: Licensing
3755 Riverside Dr
Ottawa, ON K1V 1B7
Canada
Such information may be available, subject to appropriate terms and conditions,
including in some cases, payment of a fee.
The licensed program described in this document and all licensed material
available for it are provided by IBM under terms of the IBM Customer Agreement,
IBM International Program License Agreement or any equivalent agreement
between us.
Any performance data contained herein was determined in a controlled
environment. Therefore, the results obtained in other operating environments may
vary significantly. Some measurements may have been made on development-level
systems and there is no guarantee that these measurements will be the same on
generally available systems. Furthermore, some measurements may have been
estimated through extrapolation. Actual results may vary. Users of this document
should verify the applicable data for their specific environment.
Information concerning non-IBM products was obtained from the suppliers of
those products, their published announcements or other publicly available sources.
IBM has not tested those products and cannot confirm the accuracy of
performance, compatibility or any other claims related to non-IBM products.
Questions on the capabilities of non-IBM products should be addressed to the
suppliers of those products.
All statements regarding IBM's future direction or intent are subject to change or
withdrawal without notice, and represent goals and objectives only.
This information contains examples of data and reports used in daily business
operations. To illustrate them as completely as possible, the examples include the
names of individuals, companies, brands, and products. All of these names are
fictitious and any similarity to the names and addresses used by an actual business
enterprise is entirely coincidental.
If you are viewing this information softcopy, the photographs and color
illustrations may not appear.

584

IBM Cognos Framework Manager Version 10.1.1: User Guide

Trademarks
IBM, the IBM logo, ibm.com, Impromptu, ReportNet, TM1, and Cognos are
trademarks or registered trademarks of International Business Machines Corp.,
registered in many jurisdictions worldwide. Other product and service names
might be trademarks of IBM or other companies. A current list of IBM trademarks
is available on the Web at “ Copyright and trademark information ” at
www.ibm.com/legal/copytrade.shtml.
The following terms are trademarks or registered trademarks of other companies:
v Netezza is a registered trademark or trademark of Netezza Corporation, an IBM
Company.
v Microsoft, Windows, Windows NT, and the Windows logo are trademarks of
Microsoft Corporation in the United States, other countries, or both.
v UNIX is a registered trademark of The Open Group in the United States and
other countries.
v Java and all Java-based trademarks and logos are trademarks or registered
trademarks of Oracle and/or its affiliates.

Notices

585

586

IBM Cognos Framework Manager Version 10.1.1: User Guide

Glossary
information and then render the results as
PDF and HTML reports and metrics.
Application tier components also pass
requests to Content Manager and render
the results that Content Manager retrieves
from the content store.

This glossary includes terms and definitions for
IBM Cognos Business Intelligence and Framework
Manager.
The following cross-references are used in this
glossary:
v See refers you from a term to a preferred
synonym, or from an acronym or abbreviation
to the defined full form.
v See also refers you to a related or contrasting
term.

attribute
1. In dimensional models, a property that
provides qualitative information about
members of a level in a dimension. For
example, the Store level within the
Retailer dimension might have properties
such as address or retail space. In general,
dimensional attributes do not have
measure values or rollups associated with
them, but are used to locate or filter
members.

To view glossaries for other IBM products, go to
www.ibm.com/software/globalization/
terminology.
“A” “B” “C” on page 588 “D” on page 589 “E” on
page 589 “F” on page 590 “G” on page 590 “H”
on page 590 “I” on page 590 “J” on page 590 “L”
on page 590 “M” on page 590 “N” on page 591
“O” on page 591 “P” on page 592 “Q” on page
592 “R” on page 592 “S” on page 593 “T” on page
593 “U” on page 594 “W” on page 594

2. In relational models, a query item that
is not a measure or identifier. When a
query item is an attribute, it is not
intended to be aggregated, or used for
grouping or generating prompt pick lists.
3. In BI Modeling, a characteristic of an
entity which is descriptive rather than a
unique identifier or an aggregative
measure.

A
access permission
A privilege that permits the access or use
of an object.
accountability scorecard
A scorecard that Metric Studio
automatically builds for each user which
contains the metrics and projects they
own.
agent

A process that performs an action on
behalf of a user or other program without
user intervention or on a regular
schedule, and reports the results back to
the user or program.

alias

An alternative name used instead of a
primary name.

anonymous access
A type of access that allows users and
servers to access a server without first
authenticating with it.
application tier component
For installation, the set of processors that
access the query databases to gather
© Copyright IBM Corp. 2005, 2011

authentication
The process of validating the identity of a
user or server.
authentication provider
The communication mechanism to an
external authentication source.
Functionalities, such as user
authentication, group membership, and
namespace searches, are made available
through authentication providers.

B
burst

To create several report results by running
a single report once. For example, the
user can create a report that shows sales
for each employee, and run it once,
sending different results to regional
managers by bursting on region.

burst key
The dimension or level of a query in the

587

Sockets Layer (SSL) cipher specification
used for the secure exchange of data.

report specification that is used to create,
or burst, a set of report results.

C
See certificate authority.

CA

calculated member
A member of a dimension whose measure
values are not stored but are calculated at
run time using an expression.
canvas
An area within a dashboard or workspace
that users interact with to create, view,
and manipulate content and data.
capability
A group of functions and features that
can be hidden or revealed to simplify the
user interface. Capabilities can be enabled
or disabled by changing preference
settings, or they can be controlled through
an administration interface.
cardinality
1. For relational data sources, a numerical
indication of the relationship between two
query subjects, query items, or other
model objects.

class style
A combination of formatting
characteristics, such as font, font size, and
border, that the user names and stores as
a set.
CM

Common Gateway Interface (CGI)
An Internet standard for defining scripts
that pass information from a web server
to an application program, through an
HTTP request, and vice versa.
condition
An expression that can be evaluated as
true, false, or unknown. It can be
expressed in natural language text, in
mathematically formal notation, or in a
machine-readable language.
conformed dimension
A dimension with a single definition that
can be reused or shared across multiple
coordinated data marts.
constraint
1. A security specification that denies one
or more users the ability to access a
model component or to perform a
modeling or authoring task.

2. For OLAP data sources, the number of
members in a hierarchy. The cardinality
property for a hierarchy is used to assign
solve orders to expressions.
cascading prompt
A prompt that uses values from a
previous prompt to filter the values in the
current prompt or pick list.
certificate
In computer security, a digital document
that binds a public key to the identity of
the certificate owner, thereby enabling the
certificate owner to be authenticated. A
certificate is issued by a certificate
authority and is digitally signed by that
authority. See also certificate authority.
certificate authority (CA)
A component that issues certificates to
each computer on which components are
installed.
CGI

See Common Gateway Interface.

cipher suite
The combination of authentication, key
exchange algorithm, and the Secure

588

See Content Manager.

2. A restriction on the possible values that
users can enter in a field.
contact
A named e-mail address to which reports
and agent e-mails can be sent. Contacts
are never authenticated.
content locale
A code that is used to set the language or
dialect used for browsers and report text,
and the regional preferences, such as
formats for time, date, money, money
expressions, and time of day.
Content Manager (CM)
The service that retrieves information
from the content store, and saves
information to the content store.
content store
The database that contains the data
needed to operate, such as report
specifications, published models, and
security rights.

IBM Cognos Framework Manager Version 10.1.1: User Guide

credential
A set of information that grants a user or
process certain access rights.
cube

A multidimensional representation of data
needed for online analytical processing,
multidimensional reporting, or
multidimensional planning applications.

custom set
In Analysis Studio, a named object which
can include filter rules, calculations, and
sort rules. Custom sets can define a set of
members that is different from any set
originally defined in the cube model. See
also predefined set, set.

D
dashboard
A web page that can contain one or more
widgets that graphically represent
business data.
data source
The source of data itself, such as a
database or XML file, and the connection
information necessary for accessing the
data.
data source connection
The named information that defines the
type of data source, its physical location,
and any sign-on requirements. A data
source can have more than one
connection.
data tree
Within a studio, a structure that contains
objects such as query subjects, query
items, dimensions, levels, and members.
A data tree is used as a palette of the
available data that can be inserted into
calculations, filters, display areas, and
other authoring gestures.
deployment
The process of moving an application
(such as a report or model) to a different
instance. For example, reports are often
created in a test environment and then
deployed to production. When an
application is deployed, it is exported,
transferred, and imported.
deployment archive
A file used for deployment. A deployment
archive contains the data from the content
store that is being moved.

deployment specification
A definition of what packages to move
(deploy) between source and target
environments, the deployment
preferences, and the archive name.
Deployment specifications are used for
import and export.
derived index
A calculated metric that provides a status
and a score based on other metrics.
details-based set
A set based on an item and its immediate
details. See also set.
dimension
In Cognos BI and TM1, a broad grouping
of descriptive data about a major aspect
of a business, such as products, dates, or
locations. Each dimension includes
different levels of members in one or
more hierarchies and an optional set of
calculated members or special categories.
dimensional data source
A data source containing data modeled
using OLAP concepts, including
dimensions, hierarchies, and measures.
drill down
In a multidimensional representation of
data, to access information by starting
with a general category and moving
downwards through the hierarchy of
information, for example from Years to
Quarters to Months.

E
event

A change to a state, such as the
completion or failure of an operation,
business process, or human task, that can
trigger a subsequent action, such as
persisting the event data to a data
repository or invoking another business
process.

event key
A combination of data items that uniquely
defines an event instance. Identifying an
event instance enables the agent to
determine if it is new, ongoing or
stopped.
event list
The set of detected event instances

Glossary

589

evaluated by the task execution rules to
determine which agent tasks should be
performed.

F
fact

See measure.

G
gateway
An extension of a web server program
that transfers information from the web
server to another server. Gateways are
often CGI programs, but may follow other
standards such as ISAPI and Apache
modules.
glyph The actual shape (bit pattern, outline) of a
character image. For example, italic A and
roman A are two different glyphs
representing the same underlying
character. Strictly speaking, any two
images which differ in shape constitute
different glyphs. In this usage, glyph is a
synonym for character image, or simply
image (The Unicode Standard – Version
1.0).
governor
A set of rules to limit user activities, such
as the execution of reports, that either
take too long or consume too many
resources.
group A collection of users who can share access
authorities for protected resources.
grouping
In reporting, the process of organizing
common values of query items together
and only displaying the value once.

H
hierarchy
The organization of a set of entities into a
tree structure, with each entity (except the
root) having one or more parent entities
and an arbitrary number of child entities.

modified, and an optional thumbnail view
of the dashboard, workspace, or report.
information pane
In Analysis Studio, a pane that helps the
user to confirm their selection in the data
tree by displaying related information,
such as the level and attributes.
initiative
A task developed to achieve objectives or
close the gap between performance and
targets. Initiatives are associated with
individual objectives and often known as
projects, actions, or activities.
item

See member.

J
job

A group of runnable objects, such as
reports, agents, and other jobs that the
user runs and schedules as a batch.

job step
The smallest part of a job that can be run
separately. A job step can be a report or it
can be another job.

L
layout The arrangement of printed matter on a
screen or page, including margins, line
spacing, type specification, header and
footer information, indents, and more.
level

A set of entities or members that form
one section of a hierarchy in a dimension
and represent the same type of object. For
example, a geographical dimension might
contain levels for region, state, and city.

locale A setting that identifies language or
geography and determines formatting
conventions such as collation, case
conversion, character classification, the
language of messages, date and time
representation, and numeric
representation.

M
See Multidimensional Expression
Language.

I

MDX

information card
A display of high-level information about
dashboard, workspace, or report content,
such as owner, contact information, date

measure
A performance indicator that is
quantifiable and used to determine how
well a business is operating. For example,

590

IBM Cognos Framework Manager Version 10.1.1: User Guide

measures can be Revenue,
Revenue/Employee, and Profit Margin
percent.
member
A unique item within a hierarchy. For
example, Camping Equipment and 4 Man
tent are members of the Products
hierarchy.

simplify model maintenance or to
facilitate multi-user modeling.
multidimensional data source
See dimensional data source.
Multidimensional Expression Language (MDX)
The multidimensional equivalent of
Structured Query Language (SQL).

metric A measure to assess performance in a key
area of a business.

N

metric extract
A set of mappings between an existing
Cognos data source and a Metric Studio
object or value. For example, a cube
measure named Revenue is mapped to a
Metric Studio metric named Revenue
Actual Value.

named set
See predefined set.

metric package
In Cognos Connection, a representation of
a Metric Studio application. A metric
package contains connection information,
reports, and metric management tasks for
that application. See also package.

news item
A single entry in a Really Simple
Syndication (RSS) compatible format. It
can include a headline, text, and a link to
more information. A news item task in an
agent can be used to create news items
for display in a Cognos Connection
portlet.

metric store
A database that contains content for
metric packages. A metric store also
contains Metric Studio settings, such as
user preferences.
metric type
A category of metrics that defines the
business rules such as performance
pattern, units, and meaning of a group of
metrics. For example, Revenue can be a
metric type, and European Revenue and
North American Revenue would be
metrics of this type.
model A physical or business representation of
the structure of the data from one or more
data sources. A model describes data
objects, structure, and grouping, as well
as relationships and security. In Cognos
BI, a model is created and maintained in
Framework Manager. The model or a
subset of the model must be published to
the Cognos server as a package for users
to create and run reports.
model segment
A part of a Framework Manager project,
such as a parameter map, a data source, a
namespace, or a folder, that is a shortcut
to a second project. Segments are used to

namespace
A part of the model in which the names
may be defined and used. Within a
namespace, each name has a unique
meaning.

normalization
The process of restructuring a data model
by reducing its relations to their simplest
forms. It is a key step in the task of
building a logical relational database
design. Normalization helps avoid
redundancies and inconsistencies in data.
An entity is normalized if it meets a set of
constraints for a particular normal form
(first normal form, second normal form,
and so on).

O
object In Report Studio, an empty information
container that can be dragged to a report
from the Toolbox tab and then filled with
data. Reports are made up of objects,
which include crosstabs, text items,
calculations, graphics, and tables.
object extract
An extract that defines the metadata for a
Metric Studio object, such as a user
defined column, a scorecard, or a data
source.

Glossary

591

P
package
A subset of a model, which can be the
whole model, to be made available to the
Cognos server. See also metric package.
page set
In Report Studio, a set of one or more
designed pages which repeat in the report
output for each instance of a chosen
query item. See also set.
passport
Session-based information, stored and
encrypted in Content Manager memory,
regarding authenticated users. A passport
is created the first time a user accesses
Cognos 8, and it is retained until a
session ends, either when the user logs off
or after a specified period of inactivity.
portlet
A reusable component that is part of a
web application that provides specific
information or services to be presented in
the context of a portal.
predefined set
A set of members defined inside an OLAP
data source as a list or by an expression.
Predefined sets can be used in analysis
and report authoring. See also custom set,
set.
product locale
The code or setting that specifies which
language, regional settings, or both to use
for parts of the product interface, such as
menu commands.
project
1. In Metric Studio, a task or set of tasks
undertaken by a team and monitored on a
scorecard. A project tracks dates,
resources, and status.
2. In Framework Manager, a set of
models, packages, and related information
for administration, and for sharing model
information.
3. In Metric Designer, a group of extracts.
Each extract contains the metadata that is
used to populate the Metric Studio data
store or to create applications.
prompt
A report element that asks for parameter
values before the report is run.

592

properties pane
Within a studio, a pane that provides an
overview of the properties for selected
data. The properties pane can also be
used to make several changes and apply
them at the same time, instead of
repeating several different commands.
publish
In Cognos BI, to expose all or part of a
Framework Manager model or
Transformer PowerCube, through a
package, to the Cognos server, so that the
data can be used to create reports and
other content.

Q
query The simple report specifications created
and edited by Query Studio.
query item
A representation of a column of data in a
data source. Query items may appear in a
model or in a report and contain a
reference to a database column, a
reference to another query item, or a
calculation.
query subject
A named collection of query items that
are closely functionally related. Query
subjects are defined using Framework
Manager to represent relational data and
form the set of available data for
authoring reports in Query Studio and
Report Studio. A query subject is similar
to a relational view in that it can be
treated as a table but does not necessarily
reflect the data storage.

R
Really Simple Syndication (RSS)
An XML file format for syndicated Web
content that is based on the Really Simple
Syndication specification (RSS 2.0). The
RSS XML file formats are used by Internet
users to subscribe to websites that have
provided RSS feeds. See also Rich Site
Summary.
repeater
In Report Studio, a cell container that
repeats values within itself with no
predefined internal structure.

IBM Cognos Framework Manager Version 10.1.1: User Guide

repeater table
In Report Studio, a table-like container
that repeats cells across and down the
page or row in the associated query.
report A set of data deliberately laid out to
communicate business information.
report output
The output produced as a result of
executing a report specification against a
data set.
report specification
An executable definition of a report,
including query and layout rules, which
can be combined with data to produce a
report output.
report view
A reference to another report that has its
own properties, such as prompt values,
schedules, and results. Report views can
be used to share a report specification
instead of making copies of it.
response file
An ASCII file that can be customized with
the setup and configuration data that
automates an installation. The setup and
configuration data would have to be
entered during an interactive install, but
with a response file, the installation can
proceed without any intervention.
Rich Site Summary (RSS)
An XML-based format for syndicated web
content that is based on the RSS 0.91
specification. The RSS XML file formats
are used by Internet users to subscribe to
websites that have provided RSS feeds.
See also Really Simple Syndication.
RSS
1. See Really Simple Syndication.
2. See Rich Site Summary.

S
score

A number or ranking that expresses
applicability in relation to a standard.

scorecard
A collection of metrics representing the
performance of one unit or aspect of an
organization.

scorecard structure
The hierarchy of scorecards that reflects
how an enterprise organizes its metrics.
security provider
See authentication provider.
selection-based set
A collection of individual items that the
user has explicitly selected. The items or
members may be selected from one or
more levels of the same hierarchy. See
also set.
session
The time during which an authenticated
user is logged on.
set

A collection of related items or members.
Members in a set may be specifically
chosen, or selected by one or more filter
rules. See also custom set, details-based
set, page set, predefined set,
selection-based set, stacked set.

stacked set
Two or more sets arranged one above
another in rows or side-by-side in
columns. See also set.
strategy
The overall plan of action (such as for a
brand unit, business unit, channel, or
company) to achieve a stated goal.
Strategies normally cover a period of
more than one year.
strategy map
In Metric Studio, a visual representation
of the strategy and the objectives of that
strategy for an organization. For example,
a strategy map may show employees how
their jobs are aligned to the overall
objectives of the organization.
summary
In reporting and analysis, an aggregate
value that is calculated for all the values
of a particular level or dimension.
Examples of summaries include total,
minimum, maximum, average, and count.

T
task

An action performed by an agent if the
event status meets the task execution
rules. For example, an agent can send an
e-mail, publish a news item, or run a
report.

Glossary

593

whether a report is delivered to the user.
When the rule is run, the output is
evaluated and, if it satisfies the condition
or rule, the report is delivered by e-mail
or news item. Watch rules limit report
delivery to those reports containing data
of significance to the user.

task execution rule
A user-specified option within an agent
that determines which statuses and values
cause a task to be run. It determines
which tasks to execute for each event
instance.
template
In report authoring, a reusable report
layout or style that can be used to set the
presentation of a query or report.
thumbnail
An icon-sized rendering of a larger
graphic image that permits a user to
preview the image without opening a
view or graphical editor.
tuple

An ordered collection of two or more
members from different dimensions. For
example, the tuple (2007, Camping
Equipment, Japan) returns the value for
the intersection of the three members:
2007, Camping Equipment, and Japan.
Tuples can be used to filter and sort data,
and to create calculations.

U

Web Services for Remote Portlets
A standard for creating
presentation-oriented web services so that
they can be easily integrated within other
applications, such as web portals.
widget
A portable, reusable application or piece
of dynamic content that can be placed
into a Web page, receive input, and
communicate with an application or with
another widget.
work area
The area within a studio that contains the
report, analysis, query, or agent currently
being used.
workspace
See dashboard.

union set
See stacked set.
user

Any individual, organization, process,
device, program, protocol, or system that
uses the services of a computing system.

user-defined column
In metric management, a column used to
represent a value other than the actual or
target. It may be an industry benchmark
or any other useful additional numerical
information for a period, including a
calculation based on the other values of
the metric. User-defined columns may be
different for each metric type.

W
watch list
A list of metrics that each user has chosen
to monitor closely. If notification is
enabled in Metric Studio, the user will
receive e-mail notification of changes to
these metrics. Users can also choose to
display their watch list as a portlet within
Cognos Connection.
watch rule
A user-defined condition that determines

594

IBM Cognos Framework Manager Version 10.1.1: User Guide

Index
A

B

accessibility features 545
keyboard shortcuts 545
accessing
data source connections 44
secured InfoCube 183
action logs 274
running in batch mode 276
adding
business rules for relational metadata 141
business rules for SAP BW metadata 221
data source functions 294
function sets 294
groups 238
languages for relational metadata 122
languages to packages 243
metadata security 243
object security 240
roles 238
security 243
users 238
additive 132, 209
administrative access 243
advisor, model 177
aggregate rollups 291
aggregation 302
rules for relational metadata 128, 130, 131, 132
rules for SAP BW metadata 207, 208, 209
types 209
types for relational metadata 132
aggregation for calculations 315
aggregation rules 134
Aggregation Rules property
relational metadata 128
aggregation type
calculated 177
aliases
using with parameters 149, 227
ambiguous objects 345
ambiguous paths 166
ambiguous relationships 320
Analysis Studio and sparse data 71
analyzing
models 177
problems 11
publishing impact on packages 268
applying
filters for relational metadata 147
filters for SAP BW metadata 225
Architect XML files
importing 49
As View SQL 101
model query subjects 102
Aster Data 1
attributes 102, 103, 110, 111, 190, 196, 197, 355
auditing 254, 268
auto save
options 20
automatic aggregation types
relational metadata 131
SAP BW metadata 208, 209

balanced hierarchies 106, 191
binary round-off errors 363
BLOB 284
BmtScriptPlayer
syntax 276
braces in expressions 361
branches
creating 258
branching
methodologies 256
projects 255
broken reports 251
business layer 67
business rules for relational metadata 141
calculations 142
filters 144
macros 153
parameter maps 149
parameters 153
prompts 136
session parameters 151
business rules for SAP BW metadata 221
calculations 221
filters 223
business view 67
business view for relational metadata 164
folders 172
namespaces 172
shortcuts 169, 171
shortcuts and relationships 170
business view for SAP BW metadata 230
folders 231
namespaces 231
shortcuts 230
shortcuts and dimensions 231

© Copyright IBM Corp. 2005, 2011

C
cached data 283
reusing 292
cached metadata 177
calculated aggregation type 177, 315
calculated aggregations
relational metadata 130
calculated key figures 183
calculations
creating for relational metadata 142
creating for SAP BW metadata 221
order of operations 315
security 241
unexplained number discrepancies 363
cardinality
1-1 339
1-n 339
checking 320
data source 69
dimensions and facts 320
facts 177
mixed 177

595

cardinality (continued)
notation 70
queries 70, 300
redefining 72
rules 70, 300
types 70, 300
catalog 296
categories
for verifying 234
changed features 1, 7
changes in model not in report 251
changing
metadata 265
type of SQL 96
changing packages
analyzing the effects 268
characteristic
mapping to Framework Manager 189
characteristic dimensions
externalizing 573
characteristic structures 185
checking
projects 234
relationships 68
choosing
query processing 291
clearing
object security 240
CLOB
Oracle 359
Cognos PowerCubes
See IBM Cognos PowerCubes
Cognos SQL 98
comments
adding to SQL 95
Common Warehouse Metamodel 271
exporting 362
comparing tables 86
complex expressions
relationships 72
Composite stored procedures 79
concepts 299
conditional query subjects 149, 227
conformed dimensions 332
creating 86
multiple facts 337, 342
SAP BW 5, 6
conformed star schema groups 332
connecting to multiple PowerCubes 41
connections between
dimensions 115, 199
query subjects 86
content manager data source 296
Context Explorer 86, 115, 199
controlling
access 237
SQL generation 283
converting
measures into query items 112, 113
model query subjects into data source query subjects
query items into measures 141
query subjects into dimensions 94
regular dimensions 118
copying
projects 266
creating 271
branches 258

596

creating (continued)
calculations for relational metadata 142
calculations for SAP BW metadata 221
data source connections 44
dimensions for relational metadata 102, 103, 110, 111
dimensions for SAP BW metadata 190
filters for relational metadata 144
filters for SAP BW metadata 223
folders for relational metadata 172
folders for SAP BW metadata 231
links 264
measure dimensions 331
measure dimensions for relational metadata 112
measure folders for relational metadata 174
namespaces 65
namespaces for relational metadata 172
namespaces for SAP BW metadata 231
packages 236
parameter maps for relational metadata 149
parameter maps for SAP BW metadata 227
projects 16, 35
prompts with query macros 157
query item folders for relational metadata 173
query sets for relational metadata 86
query subjects for relational metadata 76, 77, 80
query subjects for SAP BW metadata 202
regular dimensions 328
regular dimensions for relational metadata 103, 115
relationship shortcuts for relational metadata 73
relationships for relational metadata 73
segments 263
star schema groups 332
cross-fact queries 320
cross-product joins 283
crowsfeet notation 23, 35
csv files 244, 247
CSVIdentityName function 239
CSVIdentityNameList function 240
cubes 296
curly brackets 153
currency
format type 135, 210
custom properties
SAP BW 215
custom relationship expressions 72
CWM,
See Common Warehouse Metamodel

D

95

data
formatting for relational metadata 135
formatting for SAP BW metadata 210
security 237, 239
using multilingual 118
data extraction
SAP BW guidelines for variable usage 564
data formats
date and time symbols 554
decimal format symbols 559
using patterns 553
data source
adding functions 294
updated by stored procedure 80
data source connections 44
accessing 44
creating 44

IBM Cognos Framework Manager Version 10.1.1: User Guide

data source connections (continued)
isolation levels 42
Microsoft SQL 44
OLAP cubes 41
testing 46
data source functions
adding 294
data source query subjects
creating 76
definition 15
data source query subjects for relational metadata 75
determinants 82, 84
using parameters 153
data sources
Architect XML files 49
connection levels 42
DecisionStream 50
ERwin 57
IBM Cognos models 49
IBM DB2 Cube Views 57
Impromptu XML files 49
Microsoft Analysis Server 48
Microsoft SQL Server 48
modifying properties 296
multilingual 120
Oracle Designer 62
other metadata sources 57
paths to file-based data source connections 44
properties 196, 291
relational databases 48
SAP BW 5, 6, 183
XML files 64
data types 353
data warehouse
relationships 68
database connections,
See data source connections
database functions
vendor-specific 294
database layer 67
database only 291
databases
importing 48
datatypes
graphic 360
date
format type 135, 210
prompts 138, 212
date prompts 136, 210
DB2 361
DB2 Cube Views
imported expressions 63
DecisionStream
importing 50
default data set
setting 272
defining
function sets 294
languages for relational metadata 122
prompt controls 136
prompt controls for SAP BW metadata 210
deleting
projects 267
dense data
semi-additive measures 134
dependencies, object 269
dependencies, report 268

deprecated features 1, 8
detailed fact query subject 561
detailed key figures 561
detecting
relationships 74
determinants 82
cardinality 69
converting from dimension information 355
defining 302
query subjects 312
relationships 177
specifying 82, 84
SQL generation 85
uniquely identified 82, 84
Diagram tab 22
diagrams 18
settings 23, 35
viewing 22, 32, 33
dimension information 355
dimension map 102, 103, 110, 111, 190
Dimension Map tab 23
dimensional data 327
dimensional models
star schemas 164
dimensional queries 335
multiple facts and grains 337, 342
single fact 335
dimensionally modeled relational metadata
semi-additive measures 134
dimensionally modeling relational metadata 328
dimensions
ambiguous 345
converting from query subjects 355
creating 23
definition 15
exploring 22, 32
hierarchies 329
identifying 320
measure 317, 331
mixed cardinality 177
model 306
modifying 23
properties 24
query subjects 306
regular 306, 312, 317, 328
role-playing 321
SAP BW 561
searching 26
semi-additive measures 134
shared 317
star schema groups 332
dimensions for relational metadata 102, 164
balanced hierarchies 106
converting 118
converting from query subjects 94
dimension map 102, 103, 110, 111
exploring 115
hierarchies 105
keys 109
levels 105, 108
measure 112
merging 115
modifying 24
network hierarchies 107
ragged hierarchies 107
regular 103
roles 110, 111
Index

597

dimensions for relational metadata (continued)
scope relationships 113, 114
shortcuts 171
snowflaked 168
testing 115
unbalanced hierarchies 107
dimensions for SAP BW metadata 190
balanced hierarchies 191
dimension map 190
hierarchies 191
key figures 198
levels 191, 196
network hierarchies 195
ragged hierarchies 193
regular 190
roles 196, 197
shortcuts 231
testing 199
unbalanced hierarchies 193
DMR (dimensionally modeled relational) metadata
documenting the model 254
double quotation marks 153
double-counting 82, 320, 339, 345
drop-down list prompts 136, 138, 210, 212
duplicate object names
importing 47
durable models 3, 174
renaming query items 268
dynamic query mode 2, 3, 247, 248, 284, 285, 287

E
editing
SQL 95
embedded files 244, 247
embedded strings 153
in expressions 153
in macros 153
environment
Framework Manager 13
error messages
QE-DEF-0177 360
QE-DEF-0259 361
UDA-SQL-0107 360
UDA-SQL-0114 360
errors
repairing 234
ERWin metadata
out of memory error 359
escape symbol 153
evaluating
relational query subjects 92
SAP BW query subjects 204
Event Studio
stored procedures 80
examples for relational metadata
filter 148
in_range function 144
multilingual modeling 124
parameter map 151
prompts 159
examples for SAP BW metadata
in_range function 223
except all query set 86
except query set 86
Explorer Diagram 32
Explorer tab 22

598

328

Explorer Tree 31
exploring
dimensions 102, 115, 190, 199
object-based security 253
objects 22, 32
packages 253
query subjects 86
roles 253
exporting
CWM file 362
metadata as CWM files 271
translation tables 122
expression editor
function sets 294
searching for values 365
expressions
braces 361
custom 72
imported 63
relationships 72
using prompts 136
externalize methods
IQD 9
externalized dimensions
prompts 362
externalizing
characteristic dimensions 573
Framework Manager requirements 575
InfoCube key figures 573
measure dimensions 573
model query subjects 573
query subjects 244, 247
SAP BW Dimensions 561
SAP BW Query key figures 573, 575
SAP BW Query requirements 574

F
fact data 327
fact tables 112, 164
fact-less query 332
facts 331
aggregation rules 134
ambiguous 345
cardinality 177
identifying 320
mixed cardinality 177
features
changed 1, 7
deprecated 1, 8
new 1, 7
removed 1, 9
file-based data sources
paths 44
filters
mandatory 147
optional 147
security 239, 241
filters for relational metadata
applying to query subjects 147
creating 144
determining usage 147
mandatory 144
modifying 144
multiple dimensions 24
multiple query items 24
multiple query subjects 24

IBM Cognos Framework Manager Version 10.1.1: User Guide

filters for relational metadata (continued)
optional 144
filters for SAP BW metadata
applying 225
creating 223
determining usage 225
modifying 223
finding
objects 26
fixing
failed transactions 260
folders
creating 172, 174
measure 174
query item 173
using shortcuts 169
folders for SAP BW metadata
creating 231
using shortcuts 230
font
settings 23, 35
foreign keys 74
format types
currency 135, 210
date 135, 210
text 135, 210
formatting
data for relational metadata 135
data for SAP BW metadata 210
Framework Manager
project 13
security filters change for SAP BW 8
full outer joins 69, 360
Oracle 363
function set ID 296
function sets
adding 236, 294
defining 294
functions 1
project 294

G
gateways
cannot access URI 359
generating
models, using Model Design Accelerator 37
relationships 74
glossary 587
governor
Allow Dynamic Generation of Dimensional
Information 289
Allow Enhanced Model Portability at RunTime 288
Allow Usage of Local Cache 289
Cross-Product Joins 285
Grouping of Measure Attributes 286
Maximum External Data File Size 290
Maximum External Data Row Count 290
Maximum External Data Sources 290
Maximum Number of Report Table 283
Maximum Number of Retrieved Rows 284
Outer Joins 284
Publish Entire Model When Processing 290
Query Execution Time Limit 284
Shortcut Processing 285
SQL Generation for Determinant Attributes 287
SQL Generation for Level Attributes 287

governor (continued)
SQL Join Syntax 285
SQL Parameter Syntax 288
Suppress Null Values for SAP BW Data Sources
Use With Clause When Generating SQL 289
governors
allow usage of local cache 292
IBM Cognos ReportNet upgrade 352
setting 283
granularity 325
graphic datatype 360
Grouping of Measure Attributes
governor 286
groups
adding 238
star schema 164

289

H
hierarchies 302, 306, 355
balanced 106, 191
multiple 329
network 107, 195
ragged 107, 193
regular dimension 105, 191
SAP BW 186
specifying roles 110, 111
time-dependent 4, 186
unbalanced 107, 193
versioned 186

I
IBM accessibility page 547
IBM Cognos 8 Planning and SAP BW data 561
IBM Cognos models
importing 49
IBM Cognos PowerCubes
publishing 249
identifiers
unique 82
import view 67
imported metadata
checking 320
importing
Architect XML files 49
data sources 57
databases 48
DecisionStream 50
duplicate object names 47
IBM Cognos models 49
Impromptu XML files 49
metadata from XML files 64
metadata into Framework Manager 46
relational metadata 74
relationships 68
SAP BW hierarchies 186
SAP BW metadata 183, 187
translation tables for relational metadata 123
Impromptu Query Definition files 244, 247
Impromptu XML files
importing 49
improving performance
reusing cached data 292
in_range function 144, 223

Index

599

InfoCube
mapping to Framework Manager 189
permissions for accessing metadata 184
InfoCube key figures
externalizing 573
Informix
functions 79
stored procedures 79
inner joins 70, 74, 362
intersect all query set 86
intersect query set 86
IQD
files 244, 247
IQD externalize method 9
isolation levels 42

J
Japanese characters
export paths 362
joins 68
creating 34
deleting 34
full outer 69, 360
inner 70, 74, 362
loop 324
modifying 34, 72
Oracle 363
outer 70, 71
overriding 34

M

K
key figures 183
mapping to Framework Manager
modifying 198
prompts 362
structures 185
keyboard shortcuts 545
keys 103, 190, 355
cardinality 69
for levels 109
for roles 196, 197
foreign 74
primary 74
specify roles 110, 111

189

L
languages
adding for relational metadata 122
defining for relational metadata 122
incorrect in SAP BW query 360
setting up multilingual environment 118
specifying for packages 243
Large Text Item Limit 284
layers 67
level of details
settings 23, 35
levels 102, 105, 190, 191, 196, 197, 355
member unique names 108, 196
regular dimension 108, 196
security 362
sorting 109
specify roles 110, 111
unique 103

600

limitations
linking 262
macros 156
segmenting 262
limited local 291
linked projects 261, 358
synchronizing 281
linking
limitations 262
links 261
creating 264
literal strings 153
in expressions 153
in macros 153
local query processing
rollup processing 291
locales,
See languages
log file
archive entries 280
log files 274
play back 275
logging on
to Microsoft SQL 44
loop joins 320, 324

macros
creating 156
limitations 156
prompts 153
using 153
main projects 263
managing
packages 240, 243, 253, 254
project 253
projects 265, 274
mandatory cardinality 70
mandatory prompts 157
many-to-many relationships 69
many-to-one relationships 69
mapping
parameter values for relational metadata 149
parameter values for SAP BW metadata 227
SAP BW objects to Framework Manager 189
master-detail tables 327, 331
maximum cardinality 70, 300
measure dimensions 317
creating 331
externalizing from SAP BW 573
role-playing 321
measure dimensions for relational metadata
creating 112
exploring 115
scope relationships 113, 114
measure dimensions for SAP BW metadata
exploring 199
measure folders 174
measure scope issues 113
measures
calculated aggregation type 177
converting 113, 141
converting to query items 112
for IBM Cognos 8 Planning 561
IBM Cognos BI upgrade 353
semi-additive 134

IBM Cognos Framework Manager Version 10.1.1: User Guide

member unique names
relational metadata 108
SAP BW metadata 196
members
sorting 109
merging
projects 255
query subjects, relational 86
query subjects, SAP BW 203
regular dimensions, relational 115
merise notation 23, 35
metadata
cached 177
changing 265
exporting 271
importing 46
merging 86, 203
moving 265
publishing 233
relational 67
SAP BW 183
security 237, 243
synchronizing 280
understanding 253
Metadata Wizard 35
methodologies
branching 256
Microsoft
SQL server and logon 44
SQL Server data sources 48
Microsoft Analysis Server
data sources 48
migrating
models 274
Minimized SQL 101, 177
model query subjects 102
minimum cardinality 70, 300
model
durability 174
versioning 251
Model Accelerator 33
model advisor 177
model business views 164, 230
Model Design Accelerator 31
building query subjects 36
creating projects 35
creating star schemas 36
diagram colors 32
diagram settings 35
Explorer Diagram 32
Explorer Tree 31
generating models 37
joins 34
managing star schemas 38
Metadata Wizard 35
Model Accelerator 33
Model Warning View 34
Query Subject Diagram 33
Relationship Editing Mode 34
model documentation 254
model objects 18
shortcuts 313
using parameters 149, 227
viewing 18, 31
model portability 274, 283
model query subjects
definition 15

model query subjects (continued)
externalizing 573
security 241
model query subjects for relational metadata 77
creating 77
creating from existing objects 86
determinants 82, 84
SQL type 102
model query subjects for SAP BW metadata 202
creating 202
creating from existing objects 203
model session parameters
relational metadata 151
SAP BW metadata 228
model versioning 251
model versions
updating 247
Model Warning View 34
modeling
data sources 120
distributed models 254
main projects 254
multilingual 120
multiuser 254, 255
modeling problems 177
models 13
analyzing 177
definition 14
generating, using Model Design Accelerator 37
migrating from one relational database to another
preparing relational 67
preparing SAP BW metadata 183
publishing 233
sample 29
upgrading 17, 351
verifying 234
versioning 247
modifying
filters for relational metadata 144
filters for SAP BW metadata 223
package access 243
package administrative access 243
packages 236
properties 24
query item properties 24
query items for relational metadata 125
query items for SAP BW metadata 204
relational dimensions 24
relational query subjects 24
relationships 72
session parameters 151, 228
SQL at runtime 157
stored procedure query subjects 80
moving
metadata 265
projects 266
multi-edge suppression 244
MultiCube
mapping to Framework Manager 189
multidimensional
query subjects 202
multilingual
data sources 120
data, using 118
multilingual modeling
example for relational metadata 124
packages 243
Index

274

601

multilingual modeling (continued)
parameters 121
relational metadata 118
multilingual reporting environment
setting up 118
multilingual reports 119
multiple cubes in packages 249
multiple data sets 272
setting default data set 272
multiple data source connections
using 41, 44
multiple hierarchies 329
multiple relationships 177
multiple users
modeling 254
multiple valid relationships 321, 324
multiple-fact queries 306, 337, 342
multiple-grain queries 306, 337, 342
multiuser modeling 254, 255

315

P

N
namespaces 13
creating 65
creating for relational metadata 172
creating for SAP BW metadata 231
definition 15
naming conventions
objects 27
native metadata 41
native SQL 99
nested parameters 149, 227
network hierarchies 107, 195
new features 1, 7
non-additive 132, 209
normalized data sources 327
notation 23, 35, 69, 70
null suppression 244
null values
SAP BW 283
number sign
reserved for macros 153

O
object security 237
adding 240
calculations 241
exploring 253
filters 241
model query subjects 241
removing 240
shortcuts 241
objects
exploring 22, 32
naming conventions 27
properties 24
remapping 270
reorder 22
searching for 26
unique identifiers 27
OLAP cubes
as datasources 41
OLAP data sources
publishing 249
one-to-many relationships 69, 339

602

one-to-one relationships 69, 339
opening
projects 17
operations for calculations 315
optional cardinality 70, 300
optional prompts 157
optional relationships 69
Oracle
Designer 62
full outer joins 363
Oracle full outer joins 360
order of operations for calculations
organizing models 164, 230
out of memory error 359
outer joins 70, 74, 283
Analysis Studio 71
full 69, 360
Oracle 363

package administrative access
modifying 243
packages 13
access 243
adding security 243
administrative access 243
analyzing changes 268
containing multiple cubes 249
creating 236
creating in Cognos Connection 183, 247
definition 15
exploring 253
managing 240, 243, 253, 254
modifying 236
multilingual support 243
publishing 233, 247
SAP BW data sources 4
security 237
verifying 234
viewing inclusion 254
parameter maps for relational metadata
creating 149
using as lookup tables 118
parameter maps for SAP BW metadata 227
creating 227
parameters
in data source query subjects 153
parameters for relational metadata
aliases 149
creating 149
data source query subjects 153
model objects 149
multilingual modeling 121
nested 149
session 151
using 153
parameters for SAP BW metadata
creating 227
maps 227
session 228
pass-through SQL 100
performance tuning
query processing 291
performance, optimizing for SAP BW 217, 218, 219
physical layer 67

IBM Cognos Framework Manager Version 10.1.1: User Guide

play back
action logs 276
plus operator 153
portability 274
PowerCubes
building from SAP BW data 576
connecting to multiple data sources 41
Framework Manager guidelines 576
paths to cube files 44
Transformer guidelines 577
presentation hierarchy level
mapping to Framework Manager 189
presentation layer 67
primary keys 74
project
managing 253
project objects
naming conventions 27
project page 18
Project Viewer 18
projects 13
branching 255
copying 266
creating 16, 35
definition 13
deleting 267
files 13
fixing synchronization errors 279
Framework Manager 13
functions 294
linking 264
managing 265, 274
merging 255
moving 266
opening 17
options 20
play back transactions 275
renaming 267
segmenting 263
shortcuts 264
synchronizing 280
view transaction history 275
Prompt Info property 136, 210
prompt information properties 136
prompts
cascade on reference 139, 213
creating 157
creating with macros 157
date 136, 138, 210, 212
defining 136, 210
different values to use and display 139, 213
display item reference 139, 213
drop-down list 136, 138, 210, 212
examples 159
filter on reference 139, 214
in expressions 136
key figures 362
mandatory 157
optional 157
properties 136, 138, 210, 212
SAP BW variables 215
search 136, 138, 210, 212
stored procedure example 82
testing 140, 215
text box 138, 210, 212
time 136, 138, 210, 212
type-in 136, 138, 210, 212

prompts (continued)
use item reference 139, 213
properties
aggregation rules 128
aggregation rules for SAP BW metadata 207
cascade on reference 139, 213
catalog 296
content manager data source 296
cubes 296
data sources 291
display item reference 139, 213
filter on reference 139, 214
function set ID 296
modifying 24
parameter map 296
prompt info 136, 210
prompt type 138, 212
query interface 296
query processing 296
query type 296
regular aggregate 128, 207
rollup processing 296
SAP BW data source 196
SAP BW variables 196
schema 296
semi-aggregate 207
usage 128, 207
use item reference 139, 213
viewing 24
publishing
metadata 233
packages 233, 247, 251
packages based on OLAP data sources 249

Q
QE-DEF-0177 360
QE-DEF-0259 361
queries
fact-less 332
multiple-fact 306, 337, 342
multiple-grain 306
single fact 335
split 347
stitched 320
query items
converting 113, 141
converting from measures 112
definition 16
properties 24
query items for relational metadata
aggregation rules 132
durable model capability 268
folders 173
modifying 24, 125
renaming 268
roles 110, 111
usage 131
query items for SAP BW metadata
aggregation 209
aggregation rules 209
formatting 210
modifying 204
roles 196, 197
usage 208
query macros
using to create prompts 157
Index

603

query mode
dynamic 2, 3
query processing 291, 296
choosing 291
query reuse 292
query sets for relational metadata
creating 86
testing 90
Query Subject Diagram 33
query subjects
building using Model Design Acclerator 36
converting to dimensions 355
csv files 244, 247
DB2 361
definition 15
determinants 177, 312, 355
dimensions 177, 306
embedded files 244, 247
exploring 22, 32
externalized 244, 247
facts 177
Impromptu Query Definition files 244, 247
minimized SQL 177
mixed cardinality 177
multiple relationships 177
properties 24
SAP BW 353
searching 26
security 239
star schema groups 332
tab files 244, 247
testing 62
Transformer files 244, 247
using in Transformer 244
query subjects for relational metadata
changing type of SQL 96
converting 94, 95
converting from dimensions 118
creating 76, 77, 86
data source 75
determinants 82, 84
editing SQL 95
evaluating 92
exploring 86
generating SQL 101
model 77
modifying 24, 80
parameter maps 149
query sets 86
relationships 68
shortcuts 171
SQL 75
stored procedure 78
testing 90
types 75
updating 94
query subjects for SAP BW metadata
creating 202, 203
evaluating 204
model 202
parameter maps 227
query type 296
Query, SAP BW
mapping to Framework Manager 189
quotation marks 153
in expressions 153
in macros 153

604

R
ragged hierarchies 107, 193
recording transactions 274
recursive relationships 177, 325
reflexive relationships 177, 325
regional settings
setting up a multilingual environment 118
Regular Aggregate property 132
relational metadata 128
SAP BW metadata 207, 209
regular dimensions 306, 312, 317
creating 328
hierarchies 329
role-playing 321
regular dimensions for relational metadata 103
converting 118
exploring 115
hierarchies 105
levels 105, 108
merging 115
scope relationships 113, 114
regular dimensions for SAP BW metadata 190
exploring 199
hierarchies 191
levels 191, 196
related objects 86, 115, 199
relational data source query subjects
evaluating 92
updating 94
relational metadata 67
business rules 141
business view 67
import view 67
query items 125
star schemas 164
relational modeling concepts 299
relational models
migrating 274
Relationship Editing Mode 34
relationships
0-1 69
0-n 69
1-1 69
1-n 69, 339
ambiguous 320
cardinality 69, 300
changing 72
checking 68, 320
complex expressions 72
creating 73
custom 72
definition 68
detecting 74
determinants 177
from Oracle Designer 62
generating 74
importing 68
levels of granularity 325
many-to-many 69
many-to-one 69
modifying 72
multiple 177
multiple valid 321, 324
n-n 69
one-to-many 69
one-to-one 69
reflexive and recursive 177

IBM Cognos Framework Manager Version 10.1.1: User Guide

relationships (continued)
scope 113, 114
shortcuts 73, 170
verifying 68
remap objects 270
RemoteCube
mapping to Framework Manager 189
removed features 1, 9
removing
object security 240
renaming
projects 267
relationships 72
reorder objects 22
repairing
IBM Cognos ReportNet models 354
repairing models 234
report
dependencies 268
reporting requirements 11
reports
multilingual 119
not showing changes to model 251
reserved symbols
number sign 153
reserved words 579
resetting
Regular Aggregate property 135
Usage property 135
resolving
ambiguous objects 345
split queries 347
restricting
access 237
BLOBs 284
data retrieved 283
reusing cached data 292
role-playing dimensions 177, 321
roles
adding 238
dimensions 110, 111
exploring 253
roles for SAP BW metadata
dimensions 196, 197
rollup processing 291, 296
round-off errors 363
row limits 283
rules
aggregation for SAP BW metadata 207
business 141
business for SAP BW metadata 221
cardinality 70
rules of cardinality 300

S
sample models 29
SAP BW
conformed dimensions 5, 6
custom properties 215
guidelines for using fact data 564
importing key figures 183
security filter change in Framework Manager
Transformer 572
wrong language in query 360
SAP BW data
Cognos Planning 561

8

SAP BW data (continued)
creating packages 4
SAP BW dimensions 561
SAP BW metadata 183
importing 183
SAP BW Query
permissions for accessing metadata 184
SAP BW Query key figures
externalizing 573
SAP BW query subjects 353
SAP BW structures 185
SAP BW variables 196, 215
save as
copying projects 266
saving automatically
options 20
schema 296
scope relationships 102, 103, 110, 111, 113, 114, 190
script files
fixing errors 279
scripts
running 251
search prompts 136, 138, 210, 212
searching
objects 24, 26
secured InfoCube
accessing 183
security
CSVIdentityName function 239
CSVIdentityNameList function 240
exploring 253
filter change in Framework Manager for SAP BW
filters 239
levels 362
packages 236
types 237
segmented projects 261, 263, 358
copying 266
deleting 267
moving 266
synchronizing 281
segmenting
limitations 262
projects 263
segments 261
recommendations for using 261
self-joins 177
semi-additive 135
semi-additive measures 134, 210
Semi-Aggregate property 135
SAP BW metadata 207, 210
session parameters
modifying for relational metadata 151
modifying for SAP BW metadata 228
setting
governors 283
suppression 244
settings
font 23, 35
level of detail 23, 35
notation 23, 35
snap options 23, 35
test 91, 117, 200
shared dimensions 317
shortcuts 313
behavior 283, 285
security 241

8

Index

605

shortcuts for relational metadata
dimensions and query subjects 171
relationships 73, 170
using 169
shortcuts for SAP BW metadata
dimensions 231
using 230
show dependencies 269
single fact queries 335
single quotation marks 153
snap options
settings 23, 35
snowflaked data sources 327
snowflaked dimensions 168
sort objects 22
sorting
levels 109
members 109
objects 24
sparse data
semi-additive measures 134
sparse data and Analysis Studio 71
split queries 347
SQL 335
As View 101, 102
changing type 96
Cognos 95, 98
comments 95
determinants 85
editing 95
generation types 101
inner joins 362
Minimized 101, 102, 177
model query subjects 102
native 95, 99
pass-through 95, 100
query subjects 75
server, connecting 44
stand-alone native 95, 100
SQL generation
controlling 283
SQL Generation for Determinant Attributes
governor 287
SQL Generation for Level Attributes
governor 287
SQL Parameter Syntax
governor 288
square brackets 153
star dimensions 168
star schema concepts 326
star schema groups 317
creating 332
multiple conformed 332
star schemas
creating using Model Design Accelerator 36
groupings 164
managing using Model Design Accelerator 38
multiple 166
statistics
viewing 25
stitched queries 320
stored procedure query subjects 78
Composite 79
creating 80
definition 15
evaluating 92
example 82

606

stored procedure query subjects (continued)
Informix 79
modifying 80
updating 94
stored procedures
data query updates database 80
structures
SAP BW 185
summaries
viewing 25
summarize aggregations
relational metadata 131
supported environments
multilingual 118
supporting
multiple users 254
suppression
multi-edge 244
null 244
suppression options 244
synchronizing
fixing errors 279
linked projects 281
metadata 280
projects 280
query subjects 94
segmented projects 281
syntax
BmtScriptPlayer 276

T
tab files 244, 247
tasks
viewing 25
testing
changing settings 91, 117, 200
data source connections 46
projects 234
prompts 140, 215
query subjects 62, 360
relational measure dimensions 115
relational query sets 90
relational query subjects 90
relational regular dimensions 115
SAP BW measure dimensions 199
SAP BW regular dimensions 199
text box prompts 136, 138, 210, 212
text format type 135, 210
time limits 283
time prompts 136, 138, 210, 212
time-dependent hierarchies 4
trace
transaction history 275
transaction history
viewing 275
transactions
fixing 260
play back 275
Transformer
SAP BW 572
Transformer and query subjects 244, 247
Transformer version 7.x
externalized CSV files 572
Transformer version 8.x
externalized CSV files 572

IBM Cognos Framework Manager Version 10.1.1: User Guide

translation tables
exporting 122
importing 123
troubleshooting 359
type-in prompts 136, 138, 210, 212
type-in SQL 361

U
UDA-SQL-0107 360
UDA-SQL-0114 360
unable to access service at URL 359
unbalanced hierarchies 107, 193
understanding
metadata 253
unexplained number calculations 363
union all query set 86
union query set 86
unique identifiers 82
objects 27
unique keys 355
unique levels 103
uniquely identified determinants 82, 84
updating
model versions 247
query subjects 94
upgrading
IBM Cognos ReportNet models 352
linked projects 358
models 17, 351
segmented projects 358
upgrading models
warnings 358
URI
unable to access service 359
Usage property
relational metadata 128, 131
SAP BW metadata 207, 208
users
adding 238
packages 236
using
multiple data sets 272
multiple data source connections 41, 44
using embedded strings
in expressions 228
in macros 228
using literal strings
in expressions 228

using literal strings (continued)
in macros 228
using quotation marks
in expressions 228
in macros 228

V
valid relationships
multiple 321
validating 1
relational query subjects 92
SAP BW query subjects 204
vargraphic datatype 360
variables
guidelines for SAP BW fact data 564
SAP BW 215
stored procedure 82
using when externalizing 575
vendor-specific database functions 294
verifying
IBM Cognos ReportNet models 351, 354
models 234
packages 234
relationships 68
versioned hierarchies 186
versioning
models 247
viewing
diagrams 22, 32, 33
model objects 18, 31
package inclusion 254
properties 24
related objects 86, 115, 199
SQL 95
statistics 25
summaries 25
tasks 25

W
With clause

283

X
XML files
importing

64

Index

607



Source Exif Data:
File Type                       : PDF
File Type Extension             : pdf
MIME Type                       : application/pdf
PDF Version                     : 1.3
Linearized                      : Yes
Subject                         : 
Modify Date                     : 2011:06:16 09:51:36Z
Create Date                     : 2011:06:16 09:51:36Z
Page Count                      : 619
Creation Date                   : 2011:06:16 09:51:36Z
Mod Date                        : 2011:06:16 09:51:36Z
Producer                        : ID Workbench
Author                          : IBM
Keywords                        : 
Metadata Date                   : 2011:06:16 09:51:36Z
Creator                         : IBM
Title                           :   IBM Cognos Framework Manager    Version 10.1.1:   User Guide
Description                     : 
Page Mode                       : UseOutlines
EXIF Metadata provided by EXIF.tools

Navigation menu