IBM Cognos Software Development Kit Version 11.0.0

Dynamic Cubes Developer Guide

IBM

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

Product Information This document applies to IBM Cognos Software Development Kit Version 11.0.0 and may also apply to subsequent releases. Licensed Materials - Property of IBM © Copyright International Business Machines Corporation 2013, 2018. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents

Introduction...... vii

Chapter 1. What's new?...... 1 New features in version 10.2.2...... 1 Support for in-memory aggregates...... 1 Support for calculated members and measures...... 1 Support for slices...... 2 Support for relative time members...... 2 Support for named sets...... 2 Support for parameter maps...... 3 Support for virtual measure folders...... 3 Support for new expression types...... 3 New features in version 10.2.1 interim fix 3...... 3 Support for virtual cubes...... 4

Chapter 2. Overview of the Cognos Dynamic Cubes API...... 5 Cognos Dynamic Cubes HTTP request structure...... 5 Cognos Dynamic Cubes HTTP response structure...... 6 Cognos Dynamic Cubes sample programs...... 7 Command overview...... 7

Chapter 3. Sample Cognos Dynamic Cubes model creation...... 9 Creating a model...... 9 Creating a data source for the model...... 9 Creating a relational dimension...... 10 Creating a level for the relational dimension...... 10 Creating a second level for the relational dimension...... 12 Creating a relational hierarchy for the model...... 14 Creating physical tables and joins...... 15 Creating mappings for the level attributes...... 17 Creating a cube for the model...... 19 Creating a measure dimension for the cube...... 19 Creating a measure...... 20 Creating a relationship between the relational dimension and the measure dimension...... 21 Saving the model to the local file system...... 22 Publishing, registering, and starting the cube...... 22

Chapter 4. Virtual cube modeling using the Cognos Dynamic Cubes API...... 25 Creating a virtual cube...... 25 Creating a virtual measure dimension...... 26 Creating a virtual measure...... 27 Creating a virtual dimension...... 29 Creating a virtual hierarchy...... 30 Creating a virtual level...... 31

Chapter 5. Aggregate modeling using the Cognos Dynamic Cubes API...... 33 Creating an aggregate...... 33 Creating an aggregate measure...... 33 Creating an aggregate dimension...... 34 Creating an aggregate hierarchy...... 34 Creating an aggregate level...... 35

iii Chapter 6. Performing additional tasks using the Cognos Dynamic Cubes API...... 37 Filter data using an aggregate slicer...... 37 Create calculated members and measures...... 38 Use relative time functionality...... 38 Create named sets...... 40 Create parameter maps...... 41

Chapter 7. Cognos Dynamic Cubes command reference...... 43 Control commands...... 43 authenticate...... 43 cube_deploy...... 43 cube_register...... 44 cube_start...... 44 model_close...... 44 model_new...... 44 model_open...... 45 model_open_stream...... 45 model_save...... 45 model_save_as...... 46 model_save_stream...... 46 search...... 46 Model commands...... 46 aggregate...... 48 aggregate_dimension...... 48 aggregate_hierarchy...... 48 aggregate_level...... 49 aggregate_measure...... 49 calculated_member...... 49 cube...... 50 datasource...... 51 folder...... 53 level...... 53 measure...... 54 measure_dimension...... 56 measure_folder...... 57 model...... 57 named_set...... 58 named_set_folder...... 59 namespace...... 60 parameter_map...... 61 physical_association...... 61 physical_join...... 62 physical_table...... 62 query_item...... 63 query_item_mapping...... 64 query_item_role...... 65 relational_dimension...... 65 relational_filter...... 66 relational_hierarchy...... 67 relational_parameter_map...... 69 relational_query_subject...... 69 relationship...... 70 relative_time_member...... 71 security_filter...... 72 security_view...... 73 sql_object...... 74 iv virtual_cube...... 74 virtual_dimension...... 75 virtual_hierarchy...... 76 virtual_level...... 77 virtual_measure...... 77 virtual_measure_dimension...... 78 virtual_measure_folder...... 79 virtual_source...... 80 Localized text...... 81 Expressions...... 82

Notices...... 83 Index...... 87

v vi Introduction

This document is intended for use with IBM® Cognos® Dynamic Cubes. It describes the API available to create applications that model dimensional metadata and create dynamic cubes for use as data sources in the Content Manager.

Audience To use the IBM Cognos Dynamic Cubes Developer Guide effectively, you must be familiar with the following items: • Cognos Dynamic Cubes, IBM Cognos Cube Designer, and the IBM Cognos Dynamic Cubes User Guide. • The representational state transfer (REST) web services architecture. • A programming language that has libraries for making HTTP requests.

Finding information To find product documentation on the web, including all translated documentation, access IBM Knowledge Center (http://www.ibm.com/support/knowledgecenter).

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 Sample Outdoors Company, Great Outdoors Company, GO Sales, any variation of the Sample Outdoors or Great Outdoors names, 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.

Accessibility features Consult the documentation for the tools that you use to develop applications to determine their accessibility level. These tools are not a part of this product. IBM Cognos HTML documentation has accessibility features. PDF documents are supplemental and, as such, include no added accessibility features.

© Copyright IBM Corp. 2013, 2018 vii viii IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 1. What's new?

This topic contains a list of new features for this release of the IBM Cognos Dynamic Cubes API. It helps you plan your upgrade and application deployment strategies and the training requirements for your users.

New features in version 10.2.2 New features have been added to the IBM Cognos Dynamic Cubes API and are described here.

Support for in-memory aggregates This release of the Dynamic Cubes API adds support for in-memory aggregates. The following commands have been added to support modeling in-memory aggregates. • aggregate • aggregate_dimension • aggregate_hierarchy • aggregate_level • aggregate_measure The following command has been updated to support modeling in-memory aggregates: cube The following properties were added: • inDatabaseAggregates • inMemoryAggregates You can see usage examples for aggregate modeling in Chapter 5, “Aggregate modeling using the Cognos Dynamic Cubes API,” on page 33.

Support for calculated members and measures This release of the Dynamic Cubes API adds support for calculated members and measures. The following command has been added to support modeling calculated members and measures: calculated_member The following commands have been updated to support modeling calculated members and measures: • measure_dimension – The defaultMeasure property can be a calculated measure. – Added the calculatedMeasures property. • measure_folder – Added the calculatedMeasures property. • relational_hierarchy – Added the calculatedMembers property. • virtual_hierarchy – Added the calculatedMembers property. • virtual_measure_dimension – The defaultVirtualMeasure property can be a calculated measure. – Added the calculatedMeasures property.

© Copyright IBM Corp. 2013, 2018 1 You can see usage examples for creating calculated members and measures in “Create calculated members and measures” on page 38.

Support for slices This release of the Dynamic Cubes API adds support for slices. The following command has been updated to support modeling slices: cube • Added the slices property. You can see usage examples for modeling slices in “Filter data using an aggregate slicer” on page 37.

Support for relative time members This release of the Dynamic Cubes API adds support for relative time members. The following command has been added to support modeling relative time members: relative_time_member The following commands have been updated to support modeling relative time members: • relational_hierarchy – The levelType property can take the following additional values: - time_holidays - time_quarters - time_seasons - time_semesters - time_trimesters • virtual_hierarchy – Added the calculatedMembers property. • virtual_measure_dimension – Added the following properties: - generateNextPeriodsMembers - generatePriorPeriodsMembers - includeRelativeTimeSubtree - relativeTimeMembers You can see usage examples for modeling relative time members in “Use relative time functionality” on page 38.

Support for named sets This release of the Dynamic Cubes API adds support for named sets. The following commands have been added to support modeling named sets: • named_set • named_set_folder The following commands have been updated to support modeling named sets: • cube – The following properties were added: - namedSetFolders - namedSets • virtual_cube

2 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide – The following properties were added: - namedSetFolders - namedSets You can see usage examples for modeling named sets in “Create named sets” on page 40.

Support for parameter maps This release of the Dynamic Cubes API adds support for parameter maps. The following commands have been added to support modeling parameter maps: • parameter_map • realtional_parameter_map The following commands have been updated to support modeling parameter maps: • model – Added the parameterMaps property. • query_item – The parent object can be a relational parameter map. • relational_filter – The parent object can be a relational parameter map. You can see usage examples for modeling parameter maps in “Create parameter maps” on page 41.

Support for virtual measure folders This release of the Dynamic Cubes API adds support for virtual measure folders. The following command has been added to support modeling virtual measure folders: virtual_measure_folder The following commands have been updated to support virtual measure folders: • virtual_measure – The parent object can be a virtual measure folder. • virtual_measure_dimension – Added the folders property.

Support for new expression types This release of the Dynamic Cubes API adds support for new expression types. The following expression types are now available: • A member unique name. • An id property of a model object. For more information, see “Expressions” on page 82.

New features in version 10.2.1 interim fix 3 New features have been added to the IBM Cognos Dynamic Cubes API and are described here. These features have also been rolled up into version 10.2.1 fix pack 3.

What's new? 3 Support for virtual cubes This release of the Dynamic Cubes API adds support for virtual cubes. The following commands have been added to support modeling virtual cubes: • virtual_cube • virtual_dimension • virtual_hierarchy • virtual_level • virtual_measure • virtual_measure_dimension • virtual_source You can see usage examples for virtual cube modeling in Chapter 4, “Virtual cube modeling using the Cognos Dynamic Cubes API,” on page 25.

4 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 2. Overview of the Cognos Dynamic Cubes API

The IBM Cognos Dynamic Cubes API automates the functions available in the IBM Cognos Cube Designer. The API uses the representational state transfer (REST) web services architecture. Use the Cognos Dynamic Cubes API to send HTTP requests to the IBM Cognos Analytics server to work with dynamic cubes, including creation, modification, deployment, and startup. The HTTP response from the server contains data about any actions that are run, along with any error or warning messages that are generated by the request. Data sent to and retrieved from the server is in the JavaScript Object Notation (JSON) format. Chapter 3, “Sample Cognos Dynamic Cubes model creation,” on page 9 describes the steps in the creation of a simple model using the StartToFinish.java sample program as an example. The commands that are used and the input and output JSON objects are described. This topic shows you how the results of operations are used to do subsequent operations. Chapter 7, “Cognos Dynamic Cubes command reference,” on page 43 documents the commands available in the Cognos Dynamic Cubes API.

Cognos Dynamic Cubes HTTP request structure The IBM Cognos Dynamic Cubes HTTP request can be generated by the web libraries available with most programming languages. The parts of the HTTP request are described here.

HTTP method The IBM Cognos Dynamic Cubes API HTTP request uses the 4 common HTTP methods: GET Used to retrieve the properties of an object. POST Used to create an object or execute a command. PUT Used to update the properties of an object. DELETE Used to delete an object. Important: Only GET or POST can be specified as the HTTP method. To use PUT or DELETE, specify POST as the method and use the X-HTTP-Method-Override request header with a value of PUT or DELETE.

HTTP path The HTTP path is based on the dispatcher URL of the Cognos Analytics server and has one of the two forms: • /FmCommand//FmCommand// where • is the External dispatcher URI of the Cognos Analytics server as specified in IBM Cognos Connection. • is the Cognos Dynamic Cubes command. • is an object id that is required for some commands.

© Copyright IBM Corp. 2013, 2018 5 Request headers Some commands require that you include request headers. If you are sending data in the entity-body, you must include a Content-Type: application/ header. Other headers are required on occasion and they are mentioned as appropriate.

Entity-body Many commands require that you submit data in the entity-body. This data is packaged as a JSON object. The data that is required is described in the documentation for the individual commands. You should consider the following when creating the JSON object: • The names in the name-value pairs are case-sensitive. • The name-value pairs can be entered in any order. • Localized text and expressions have special structures. See the linked topics for details.

Cognos Dynamic Cubes HTTP response structure The IBM Cognos Dynamic Cubes HTTP response is described here.

Response code The response code from a Cognos Dynamic Cubes request is always 200 or 201. A different response code may be returned if the request path is malformed or the Cognos Dynamic Cubes API is not available. All information, including errors or warnings, is included in the entity-body of the response.

Response headers The response headers contain the standard information about the server, cookies, and so on. There is also a Content-Type: application/json;charset=utf-8 header.

Entity-body The entity-body consists of a JSON object that contains the response to a request, including any error or warning messages. If the request is to create an object, then the response consists of an identifier that can be used to refer to the object in subsequent requests, such as requests that create child objects or updating the properties of the object. A sample response is shown here.

{ "id": "a36907c1f796426a96b6749d0651c0cd" }

Important: These identifiers do not persist and should be assumed only to be valid for the period after a model is created or opened, and before the model is closed. A request to retrieve the properties of a data source returns a JSON object such as the following.

{ "schema": "gosales", "queryProcessing": "databaseOnly", "queryType": "relational", "functionSetId": "V_SQLServer", "catalog": "GOSALES", "rollupProcessing": "unspecified", "name": "great_outdoors_sales", "cmDataSource": "great_outdoors_sales", "cube": "",

6 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide "interface": "SS" }

The data that is returned is described in the documentation for the individual commands. A request returns an empty JSON object if the command ran and no response is needed. If errors are encountered when you attempt to run a request, the response contains an array that is called errors that contains any error messages, such as the following.

{ "errors": [ "Unable to find model object for ID: 62613913c45e47be80de79340effde9" ] }

If there any warnings that are generated by the request, they are contained in a warnings array.

Cognos Dynamic Cubes sample programs There are two sample programs, which are written in the Java™ programming language, that you can use to explore the IBM Cognos Dynamic Cubes API. The sample programs are in the \sdk\fmdsdk\java folder. The sample programs are described here: StartToFinish.java This sample program creates a simple model that is based on the great_outdoors_sales sample data source, and creates, deploys, registers, and starts a cube that is based on the model. PseudoTranslate.java This sample program demonstrates model modifications. It finds an English name of a cube and creates a pseudo-translated name by adding lead-in and lead-out characters. This sample program requires two command line arguments, which are the file paths and names of the input and output model files. The file paths are relative to the location of the sample program. To use the sample programs, you must • Ensure the IBM Cognos Analytics server supports anonymous access. • Replace the string BI_SERVER_URL in each Java program with the External dispatcher URI of the server. • Add \webapps\p2pd\WEB-INF\lib\JSON4J.jar to the class path, along with the standard Java libraries.

Command overview Each command in the IBM Cognos Dynamic Cubes API performs a specific action, such as create a relational dimension, or update the properties of a measure. Creating a model involves running a series of linked commands that create the model, along with its child objects, such as dimensions and measures. Objects in Cognos Dynamic Cubes have parent-child relationships with other objects. To create two objects with a parent-child relationship, do the following steps. 1. Create the parent object. The output JSON object contains an identifier for the object, as shown here.

{ "id": "1f95121f943b44ff8eabb25c392ab7b1" }

Overview of the Cognos Dynamic Cubes API 7 2. Create the child object. In the input JSON object, include a parent name-value pair with this identifier, along with any other required properties as shown here.

{ "parent": "1f95121f943b44ff8eabb25c392ab7b1", other properties... }

If you get the properties of a parent object, the properties include arrays of child items so you can determine, from the properties of the parent object, which child objects it has. These properties are read- only. You create a parent-child relationship when you create the child object as previously demonstrated.

8 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 3. Sample Cognos Dynamic Cubes model creation

The StartToFinish.java sample program is an example of creating a simple model, and then creating, deploying, registering, and starting a cube, using the IBM Cognos Dynamic Cubes API. Each step in the model creation process is briefly explained, and the input and output JSON objects are displayed. The identifiers that are created by the Cognos Dynamic Cubes API are shown as variables (such as ) since the values differ every time the sample program is run. Unless otherwise specified, the HTTP POST method is used for the Cognos Dynamic Cubes API calls described in this sample program.

Creating a model The first step when you are creating a model is to create a model object. Then, the child objects of the model are also created and the relationships between the components are defined.

Creating a model - Project The model_new command creates a new model called Project. The identifier that is contained in the response is used in subsequent commands to refer to the model. Input JSON data

{ "name": "Project" "locale": "en", "namespace": "Model", }

Output JSON data

{ "id": "" }

Creating a data source for the model A data source is created that is used by the model. This data source is based on the GO Sales sample database.

Creating a data source - great_outdoors_sales The datasource command creates a data source for the model. The identifier that is contained in the response is used in subsequent commands to refer to the data source. Input JSON data

{ "parent": "", "schema": "gosales", "queryType": "relational", "functionSetId": "V_SQLServer", "interface": "SS",

© Copyright IBM Corp. 2013, 2018 9 "catalog": "GOSALES", "name": "great_outdoors_sales", "cmDataSource": "great_outdoors_sales" }

Output JSON data

{ "id": "" }

Creating a relational dimension A relational dimension is created for the model.

Creating a relational dimension - Products The relational_dimension command creates a relational dimension for the model called Products. The identifier contained in the response is used in subsequent commands to refer to the relational dimension. Input JSON data

{ "parent": "", "name": [ { "locale": "en", "text": "Products" } ] }

Output JSON data

{ "id": "" }

Creating a level for the relational dimension A level called Line is created for the relational dimension. In addition, attributes Product Line Code and Product Line En are created for the level.

Creating a level - Line The level command creates a level called Line. The identifier contained in the response is used in subsequent commands to refer to the level. Input JSON data

{ "parent": "", "name": [ {

10 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide "locale": "en", "text": "Line" } ] }

Output JSON data

{ "id": "" }

Creating an attribute - Product Line Code The query_item command creates an attribute called Product Line Code for the Line level. The identifier contained in the response is used in subsequent commands to refer to the attribute. Input JSON data

{ "parent": "", "usage": "identifier", "datatype": "int32", "isLevelKey": "true", "scale": "0", "parent": "", "name": [ { "locale": "en", "text": "Product Line Code" } ], "precision": "10" }

Output JSON data

{ "id": "" }

Creating an attribute - Product Line En The query_item command creates an attribute called Product Line En for the Line level. The identifier contained in the response is used in subsequent commands to refer to the attribute. Input JSON data

{ "parent": "", "size": "30", "usage": "identifier", "datatype": "nVarChar", "name": [ { "locale": "en", "text": "Product Line En" } ]

Sample Cognos Dynamic Cubes model creation 11 }

Output JSON data

{ "id": "" }

Creating the member caption role for Product Line En The query_item_role command creates the member caption role for the Product Line En attribute. Input JSON data

{ "parent": "", "name": [ { "locale": "en", "text": "_memberCaption" } ] }

Output JSON data

{ "id": "" }

Creating a second level for the relational dimension A second level called Line is created for the relational dimension. In addition, attributes Product Type Code and Product Type En are created for the level.

Creating a level - Type The level command creates a level called Type. The identifier contained in the response is used in subsequent commands to refer to the level. Input JSON data

{ "parent": "", "name": [ { "locale": "en", "text": "Type" } ] }

Output JSON data

{ "id": ""

12 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide }

Creating an attribute - Product Type Code The query_item command creates an attribute called Product Type Code for the Type level. The identifier contained in the response is used in subsequent commands to refer to the attribute. Input JSON data

{ "parent": "", "usage": "identifier", "datatype": "int32", "isLevelKey": "true", "scale": "0", "name": [ { "locale": "en", "text": "Product Type Code" } ], "precision": "10" }

Output JSON data

{ "id": "" }

Creating an attribute - Product Type En The query_item command creates an attribute called Product Type En for the Type level. The identifier contained in the response is used in subsequent commands to refer to the attribute. Input JSON data

{ "parent": "", "size": "40", "usage": "identifier", "datatype": "nVarChar", "name": [ { "locale": "en", "text": "Product Type En" } ] }

Output JSON data

{ "id": "" }

Sample Cognos Dynamic Cubes model creation 13 Creating the member caption role for Product Type En The query_item_role command creates the member caption role for the Product Type En attribute. Input JSON data

{ "parent": "", "name": [ { "locale": "en", "text": "_memberCaption" } ] }

Output JSON data

{ "id": "" }

Creating a relational hierarchy for the model A relational hierarchy is added to the model.

Creating a relational hierarchy The relational_hierarchy command creates a relational hierarchy that contains the Line and Type levels. Input JSON data

{ "parent": "", "defaultHierarchy": "true", "rootCaption": "All", "isParentChild": "false", "multiRoot": "false", "name": [ { "locale": "en", "text": "ByType" } ], "rootMember": "All", "levels": ["", ""] }

Output JSON data

{ "id": "" }

14 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Creating physical tables and joins Three physical tables, PRODUCT_LINE, PRODUCT_TYPE, and PRODUCT are created. In addition, joins are established between the PRODUCT_TYPE and PRODUCT_LINE tables, and between the PRODUCT_TYPE and PRODUCT tables.

Creating a physical table - PRODUCT_LINE The physical_table command creates a physical table called PRODUCT_LINE. The identifier contained in the response is used in subsequent commands to refer to the physical table. Input JSON data

{ "parent": "", "datasource": "", "name": "PRODUCT_LINE" }

Output JSON data

{ "id": "" }

Creating a physical table - PRODUCT_TYPE The physical_table command creates a physical table called PRODUCT_TYPE. The identifier contained in the response is used in subsequent commands to refer to the physical table. Input JSON data

{ "parent": "", "datasource": "", "name": "PRODUCT_TYPE" }

Output JSON data

{ "id": "" }

Creating a physical table - PRODUCT The physical_table command creates a physical table called PRODUCT. The identifier contained in the response is used in subsequent commands to refer to the physical table. Input JSON data

{ "parent": "", "datasource": "", "name": "PRODUCT"

Sample Cognos Dynamic Cubes model creation 15 }

Output JSON data

{ "id": "" }

Creating a physical join - PRODUCT_TYPE to PRODUCT_LINE The physical_join command creates a physical join between the PRODUCT_TYPE and PRODUCT_LINE tables. The identifier contained in the response is used in subsequent commands to refer to the physical join. Input JSON data

{ "parent": "", "leftMaxCardinality": "one", "rightTable": "", "leftMinCardinality": "one", "rightMaxCardinality": "many", "leftTable": "", "rightMinCardinality": "one", "name": "FK_PRODUCT_TYPE_PRODUCT_LINE" }

Output JSON data

{ "id": "" }

The physical_association command creates a physical association. Input JSON data

{ "parent": "", "rightColumn": "PRODUCT_LINE_CODE", "operator": "equals", "leftColumn": "PRODUCT_LINE_CODE" }

Output JSON data

{ "id": "" }

Creating a physical join - PRODUCT_TYPE to PRODUCT The physical_join command creates a physical join between the PRODUCT_TYPE and PRODUCT tables. The identifier contained in the response is used in subsequent commands to refer to the physical join.

16 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Input JSON data

{ "parent": "", "leftMaxCardinality": "one", "rightTable": "", "leftMinCardinality": "one", "rightMaxCardinality": "many", "leftTable": "", "rightMinCardinality": "one", "name": "FK_PRODUCT_PRODUCT_TYPE" }

Output JSON data

{ "id": "" }

The physical_association command creates a physical association. Input JSON data

{ "parent": "", "rightColumn": "PRODUCT_TYPE_CODE", "operator": "equals", "leftColumn": "PRODUCT_TYPE_CODE" }

Output JSON data

{ "id": "" }

Creating mappings for the level attributes Mappings are created for the four level attributes: Product Line Code, Product Line En, Product Type Code, and Product Type En.

Creating a query item mapping - PRODUCT_LINE_CODE The query_item_mapping command creates a query item mapping. Input JSON data

{ "parent": "", "columnName": "PRODUCT_LINE_CODE", "queryItem": "", "table": "" }

Sample Cognos Dynamic Cubes model creation 17 Output JSON data

{ "id": "" }

Creating a query item mapping - PRODUCT_LINE_EN The query_item_mapping command creates a query item mapping. Input JSON data

{ "parent": "", "columnName": "PRODUCT_LINE_EN", "queryItem": "", "table": "" }

Output JSON data

{ "id": "" }

Creating a query item mapping - PRODUCT_TYPE_CODE The query_item_mapping command creates a query item mapping. Input JSON data

{ "parent": "", "columnName": "PRODUCT_TYPE_CODE", "queryItem": "", "table": "" }

Output JSON data

{ "id": "" }

Creating a query item mapping - PRODUCT_TYPE_EN The query_item_mapping command creates a query item mapping. Input JSON data

{ "parent": "", "columnName": "PRODUCT_TYPE_EN", "queryItem": "", "table": "" }

18 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Output JSON data

{ "id": "" }

Creating a cube for the model A cube is created for the model.

Creating a cube - ProductSales The cube command creates a cube called ProductSales. The identifier contained in the response is used in subsequent commands to refer to the cube. Input JSON data

{ "parent": "", "name": [ { "locale": "en", "text": "ProductSales" } ] }

Output JSON data

{ "id": "" }

Creating a measure dimension for the cube A measure dimension is created for the cube.

Creating a measure dimension - Measures The measure_dimension command creates a measure dimension called Measures in the cube. The identifier contained in the response is used in subsequent commands to refer to the measure dimension. Input JSON data

{ "parent": "", "name": [ { "locale": "en", "text": "Measures" } ] }

Sample Cognos Dynamic Cubes model creation 19 Output JSON data

{ "id": "" }

Creating a measure A measure, Quantity, is created and made the default measure for the measure dimension. In addition, a mapping, QUANTITY, is created for the measure.

Creating a measure - Quantity The measure command creates a measure called Quantity. The identifier contained in the response is used in subsequent commands to refer to the measure. Input JSON data

{ "parent": "", "usage": "fact", "regularAggregate": "sum", "datatype": "int32", "scale": "0", "name": [ { "locale": "en", "text": "Quantity" } ], "precision": "10" }

Output JSON data

{ "id": "" }

Setting the Quantity measure as the default measure The measure_dimension command is used to set the Quantity measure as the default measure for the Measures measure dimension. The HTTP request header X-HTTP-Method-Override: PUT is used for this action and the HTTP path for the request is

http://:/p2pd/servlet/dispatch/FmCommand /measure_dimension/

Input JSON data

{ "defaultMeasure": "" }

20 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Output JSON data

{

}

Creating a physical table - ORDER_DETAILS The physical_table command creates a physical table called ORDER_DETAILS. The identifier contained in the response is used in subsequent commands to refer to the physical table. Input JSON data

{ "parent": "", "datasource": "", "name": "ORDER_DETAILS" }

Output JSON data

{ "id": "" }

Creating a query item mapping - QUANTITY The query_item_mapping command creates a query item mapping. Input JSON data

{ "parent": "", "columnName": "QUANTITY", "queryItem": "", "table": "" }

Output JSON data

{ "id": "" }

Creating a relationship between the relational dimension and the measure dimension A relationship is created between the relational dimension and the measure dimension.

Creating a relationship - Products to Measures The relationship command creates a relationship between the Products relational dimension and the Measures measure dimension.

Sample Cognos Dynamic Cubes model creation 21 Input JSON data

{ "parent": "", "leftMaxCardinality": "one", "leftMinCardinality": "one", "rightMaxCardinality": "many", "expression": [ { "columnName": "PRODUCT_NUMBER", "objectRef": "", "tableName": "PRODUCT", "dataSourceRef": "" }, "=", { "columnName": "PRODUCT_NUMBER", "objectRef": "", "tableName": "ORDER_DETAILS", "dataSourceRef": "" } ], "rightMinCardinality": "one", "rightObjectRef": "", "name": "Products-Measures", "leftObjectRef": "" }

Output JSON data

{ "id": "" }

Saving the model to the local file system The model_save_stream command saves the Project model to the local file system. This step is optional and when the model is saved it can be opened in IBM Cognos Cube Designer. To save the model, use the following request headers: • Content-Type: text/plain • Cache-Control: no-cache • Connection: Keep-Alive The HTTP path for the request is

http://:/p2pd/servlet/dispatch/FmCommand /model_save_stream/

Publishing, registering, and starting the cube The cube is made available to the IBM Cognos Analytics server and is started.

Publishing the ProductSales cube The cube_deploy command publishes the ProductSales cube to the content store.

22 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Input JSON data

{ "cube": "", "packageName": "FMDSDKdemo", "refreshDataSources": "true", "contentManagerModelPath": "~\/folder[@name='My Folders']" }

Output JSON data

{

}

Registering the ProductSales cube The cube_register command registers the ProductSales cube with the IBM Cognos Analytics server. Input JSON data

{ "cube": "" }

Output JSON data

{

}

Starting the ProductSales cube The cube_start command starts the ProductSales cube. Input JSON data

{ "cube": "" }

Output JSON data

{

}

Sample Cognos Dynamic Cubes model creation 23 24 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 4. Virtual cube modeling using the Cognos Dynamic Cubes API

You can model virtual cubes using the IBM Cognos Dynamic Cubes API. You can create virtual cubes, and add virtual objects to a virtual cube. The following topics illustrate the creation of a virtual cube in an existing model. Each step in the virtual cube modeling process is briefly explained, and the input and output JSON objects are displayed. The identifiers that are created by the Cognos Dynamic Cubes API are shown as variables, such as . Unless otherwise specified, the HTTP POST method is used for the Cognos Dynamic Cubes API calls described in this sample program.

Creating a virtual cube You create a virtual cube in a model that has been opened in the IBM Cognos Dynamic Cubes API. After you create a virtual cube, you then associate source cubes to the virtual cube.

Creating a virtual cube - VirtualCube The virtual_cube command creates a virtual cube called VirtualCube. The identifier contained in the response is used in subsequent commands to refer to the virtual cube. Input JSON data

{ "parent":"", "mergeOperator":"sum" "name":"VirtualCube", }

Output JSON data

{ "id":"" }

Adding source cubes The parent model contains source cubes named Sales and Forecast, with ids of and , respectively. The virtual_source command associates the source cubes to the virtual cube. The identifier contained in the response is used in subsequent commands to refer to the source cube. Input JSON data

{ "parent":"" "sourceObject":"", }

© Copyright IBM Corp. 2013, 2018 25 Output JSON data

{ "id":"" }

Input JSON data

{ "parent":"" "sourceObject":"", }

Output JSON data

{ "id":"" }

If one or more of the source cubes is deployed as a data source in the content store, use the sourceName and sourcePath properties to identify the cube, instead of the sourceObject property.

Creating a virtual measure dimension You create a virtual measure dimension in an existing virtual cube. After creating the virtual measure dimension, you associate source measure dimensions with the virtual measure dimension.

Creating a virtual measure dimension - Measures The virtual_measure_dimension command creates a virtual measure dimension called Measures. The identifier contained in the response is used in subsequent commands to refer to the virtual measure dimension. Input JSON data

{ "parent":"", "name":"Measures" }

Output JSON data

{ "id":"" }

Adding source measure dimensions The parent model contains source measure dimensions with ids of (in the Sales cube) and (in the Forecast cube). The virtual_source command associates the source measure dimensions to the virtual cube. The parent cubes of the source measure dimensions are identified by their virtual source ids. The identifier contained in the response is used in subsequent commands to refer to the source measure dimension.

26 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Input JSON data

{ "parent":"", "name":"SalesMDSource" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

Input JSON data

{ "parent":"", "name":"Product Forecast Fact MDSource" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

Creating a virtual measure You create a virtual measure in an existing virtual measure dimension. After creating the virtual measure, you associate source measures with the virtual measure.

Creating a virtual measure - Quantity The virtual_measure command creates a virtual measure called Quantity. The identifier contained in the response is used in subsequent commands to refer to the virtual measure dimension. Input JSON data

{ "parent":"", "dataFormat":"", "name":"Quantity", "mergeOperator":"sum" "visible":"true", }

Output JSON data

{ "id":""

Virtual cube modeling using the Cognos Dynamic Cubes API 27 }

Adding a source dimension The parent model contains a source measure with ids of in the SalesMDSource source measure dimension. The virtual_source command associates the source measure to the virtual cube. The parent measure dimension of the source measure is identified by its virtual source id. The identifier contained in the response is used in subsequent commands to refer to the source measure dimension. Input JSON data

{ "parent":"", "name":"Quantity" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

Setting the Quantity virtual measure as the default virtual measure The virtual_measure_dimension command is used to set the Quantity virtual measure as the default virtual measure for the Measures virtual measure dimension. The HTTP request header X-HTTP-Method-Override: PUT is used for this action and the HTTP path for the request is

http://:/p2pd/servlet/dispatch/FmCommand

/virtual_measure_dimension/

Input JSON data

{ "defaultVirtualMeasure": "" }

Output JSON data

{

}

28 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Creating a virtual dimension You create a virtual dimension in an existing virtual cube. After creating the virtual dimension, you associate source dimensions with the virtual dimension.

Creating a virtual dimension - Time The virtual_dimension command creates a virtual dimension called Time. The identifier contained in the response is used in subsequent commands to refer to the virtual dimension. Input JSON data

{ "parent":"", "dimensionStyle":"time", "name":"Time" }

Output JSON data

{ "id":"" }

Adding source dimensions The parent model contains source dimensions with ids of (in the Sales cube) and (in the Forecast cube). The virtual_source command associates the source dimensions to the virtual cube. The parent cubes of the source dimensions are identified by their virtual source ids. The identifier contained in the response is used in subsequent commands to refer to the source dimension. Input JSON data

{ "parent":"", "name":"Time" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

Input JSON data

{ "parent":"", "name":"Time_ to month" "sourceObject":"", "sourceParent":"", }

Virtual cube modeling using the Cognos Dynamic Cubes API 29 Output JSON data

{ "id":"" }

Creating a virtual hierarchy You create a virtual hierarchy in an existing virtual dimension. After creating the virtual dimension, you associate source hierarchies with the virtual hierarchy.

Creating a virtual hierarchy - Time The virtual_hierarchy command creates a virtual hierarchy called Time. The identifier contained in the response is used in subsequent commands to refer to the virtual hierarchy. Input JSON data

{ "parent":"", "name":"Time" }

Output JSON data

{ "id":"" }

Adding source hierarchies The parent model contains source hierarchies with ids of (in the Time source dimension) and (in the Time_ to month source dimension). The virtual_source command associates the source hierarchies to the virtual hierarchy. The parent dimensions of the source hierarchies are identified by their virtual source ids. The identifier contained in the response is used in subsequent commands to refer to the source hierarchy. Input JSON data

{ "parent":"", "name":"Time" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

30 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Input JSON data

{ "parent":"", "name":"Time1" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

Creating a virtual level You create a virtual level in an existing virtual hierarchy. After creating the virtual level, you associate source levels with the virtual level.

Creating a virtual level - (All) The virtual_level command creates a virtual level called (All). The identifier contained in the response is used in subsequent commands to refer to the virtual level. Input JSON data

{ "parent":"", "name":"(All)" }

Output JSON data

{ "id":"" }

Adding source levels The parent model contains source levels with ids of (in the Time hierarchy) and (in the Time1 hierarchy). The virtual_source command associates the source levels to the virtual cube. The parent hierarchies of the source levels are identified by their virtual source ids. The identifier contained in the response is used in subsequent commands to refer to the source level. Input JSON data

{ "parent":"", "name":"(All)" "sourceObject":"", "sourceParent":"", }

Virtual cube modeling using the Cognos Dynamic Cubes API 31 Output JSON data

{ "id":"" }

Input JSON data

{ "parent":"", "name":"(All)1" "sourceObject":"", "sourceParent":"", }

Output JSON data

{ "id":"" }

32 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 5. Aggregate modeling using the Cognos Dynamic Cubes API

You can model aggregates using the IBM Cognos Dynamic Cubes API. You can create aggregates, and add aggregate objects to an aggregate. The following topics illustrate the creation of an aggregate in an existing model. Each step in the aggregate modeling process is briefly explained, and the input and output JSON objects are displayed. The identifiers that are created by the Cognos Dynamic Cubes API are shown as variables, such as . Unless otherwise specified, the HTTP POST method is used for the Cognos Dynamic Cubes API calls described here.

Creating an aggregate You create an aggregate in a model that has been opened in the IBM Cognos Dynamic Cubes API. After you create an aggregate, you can add aggregate measures, dimensions, and other objects to it.

Creating an aggregate - newAggregate The aggregate command creates an aggregate called newAggregate from the source cube with an id of in the model. This command is equivalent to the New User Defined In-Memory Aggregate command in IBM Cognos Cube Designer. The identifier contained in the response is used in subsequent commands to refer to the aggregate. Input JSON data

{ "style":"inMemory", "parent":"", "name":"newAggregate" }

Output JSON data

{ "id":"" }

Creating an aggregate measure You create an aggregate measure in an existing aggregate.

Creating an aggregate measure The aggregate_measure command creates an aggregate measure from the relational measure with the id of in the source cube. The identifier contained in the response is used in subsequent commands to refer to the aggregate measure. Input JSON data

{ "parent":"", "measure":""

© Copyright IBM Corp. 2013, 2018 33 }

Output JSON data

{ "id":"" }

Creating an aggregate dimension You create an aggregate dimension in an existing aggregate.

Creating a virtual dimension - Time The aggregate_dimension command creates an aggregate dimension from the relational dimension with the id of in the source cube. The identifier contained in the response is used in subsequent commands to refer to the aggregate dimension. Input JSON data

{ "dimension":"", "parent":"" }

Output JSON data

{ "id":"" }

Creating an aggregate hierarchy You create an aggregate hierarchy in an existing aggregate dimension.

Creating an aggregate hierarchy The aggregate_hierarchy command creates an aggregate hierarchy from the aggregate dimension previously created and the relational hierarchy with the id of in the source cube. The identifier contained in the response is used in subsequent commands to refer to the aggregate hierarchy. Input JSON data

{ "hierarchy":"", "parent":"" }

Output JSON data

{ "id":"" }

34 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Creating an aggregate level You create an aggregate level in an existing aggregate hierarchy.

Creating an aggregate level The aggregate_level command creates a aggregate level from the aggregate hierarchy previously created and the relational level with the id of in the source cube. The identifier contained in the response is used in subsequent commands to refer to the aggregate level. Input JSON data

{ "level":"", "parent":"" }

Output JSON data

{ "id":"" }

Aggregate modeling using the Cognos Dynamic Cubes API 35 36 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 6. Performing additional tasks using the Cognos Dynamic Cubes API

You can use the IBM Cognos Dynamic Cubes API to perform a number of tasks related to modeling dynamic cubes. You can perform the following tasks: • Filter data using an aggregate slicer. • Create calculated members and measures • Using relative time functionality • Create named sets • Create parameter maps The following topics provide instructions on how to perform these tasks using the Cognos Dynamic Cubes API.

Filter data using an aggregate slicer You create an aggregate slicer in an in-database aggregate by using the slices property of the cube command. To create an aggregate slicer, you create an aggregate and use the slices property to specify an array of slices. Each slice is expressed as a member unique name that contains a caption, the path to the slice in the Members folder in IBM Cognos Cube Designer, and the id of the corresponding level. For example, with a cube that has an id of that contains a Time level named Year with an id of , you can create an aggregate slicer using the years 2010 and 2011 by creating an in- database aggregate, using the cube command, with the following JSON data. Input JSON data

{ "parent":"", "style":"aggregate", "aggregateOrdinal":"1", "name":"aggregateSlice", "slices":[ { "caption":"2010", "path":"[All].[2010]", "member":"" }, { "caption":"2011", "path":"[All].[2011]", "member":"" } ] }

© Copyright IBM Corp. 2013, 2018 37 Create calculated members and measures You use the calculated_member command to create calculated members and measures.

Creating a calculated member You create a calculated member with an expression that is based on the contents of the Members folder beneath a model object. For instance, if you have a hierarchy that has an id of that contains a level with the id of , you can use the calculated_member command with the following input to create a calculated member that concatenates the Americas and Asia Pacific regions Input JSON data

{ "parent":"", "name":"testExpression", "expression":[ { "path":"[All].[710]", "caption":"Americas", "member":"" }, "||", { "path":"[All].[740]", "caption":"Asia Pacific", "member":"" } ] }

Creating a calculated measure You create a calculated measure with an expression that is based on an existing measure. For instance, if you have a measure dimension with an id of that contains a measure with the id of , you can use the calculated_member command with the following input to create a calculated measure that is equal to 1.5 times the values of the input measure. Input JSON data

{ "parent":"", "expression":[ { "id":"" }, "* 1.5" ] }

Use relative time functionality You create predefined and custom relative time members in hierarchies for time-based dimensions with the relational_hierarchy and relative_time_member commands.

Auto-generating relative time members You control the auto-generation of prior period and next period relative time members by setting the generatePriorPeriodsMembers and generateNextPeriodsMembers properties of the

38 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide relational_hierarchy command. For more information, see the topics on relative time members in the IBM Cognos Dynamic Cubes Developer Guide.

Creating custom relative time members You use the relative_time_member command to create custom time members. The following examples of JSON input are based on a time-based hierarchy with an id of , and Month and Quarter levels with ids of and , respectively. For more information on the use of the properties shown, see the topics on relative time members in the IBM Cognos Dynamic Cubes Developer Guide. Custom single-period definition

{ "parent":"", "name":"testSinglePeriod", "contextPeriod":"", "contextPeriodOffset":"-2", "style":"simple", "targetPeriod":"", "targetPeriodOffset":"1" }

Custom period-to-date definition

{ "parent":"", "name":"testPeriodToDate", "contextPeriod":"", "contextPeriodOffset":"-2", "style":"periodToDate", "targetPeriod":"", "targetPeriodOffset":"1", "toDatePeriod":"" }

Custom life-to-date definition

{ "parent":"", "name":"testLifeToDate", "isLifeToDatePeriod":"true", "style":"periodToDate", "targetPeriod":"", "targetPeriodOffset":"1", "toDatePeriod":"" }

Custom n-period running total definition

{ "parent":"", "name":"testRollingTotal", "numberOfPeriods":"10", "style":"rollingTotal", "targetPeriod":"" }

Performing additional tasks using the Cognos Dynamic Cubes API 39 Create named sets You use the named_set and named_set_foldercommands to create and update named sets and folders.

Creating a named set You create a named set with an expression that is based on the contents of the Members folder beneath a model object. For instance, a cube with an id of contains a level with the id of . The named_set command is used with the following input to create a named set that contains data for the year 2012. Input JSON data

{ "parent":"", "name":"ns1", "expression":[ { "path":"[All].[2012]", "caption":"2012", "member":"" } ] }

Output JSON data

{ "id":"" }

Creating a named set folder You create a named set folder under a cube. For instance, a cube has an id of . The named_set_folder command is used with the following input to create a named set folder in the cube. Input JSON data

{ "parent":"", "name":"nsFolder1" }

Output JSON data

{ "id":"" }

Creating another named set You use the named_set command to create a second named set by adding 1.5 to the named set with an id of and contained in the named set folder with an id of . Input JSON data

{ "parent":"", "name":"ns2", "expression":[

40 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide { "id":"" }, " + 2"] }

Output JSON data

{ "id":"" }

Create parameter maps You use the parameter_map and relational_parameter_map commands to create and update parameter maps and relational parameter maps.

Creating a parameter map You create a parameter map by specifying a model id along with an array of key-value pairs and a default value. In this example you create a parameter map in a model with an id of with 2 key-value pairs and a default value. Input JSON data

{ "parent":"", "name":"TestParameterMap", "entries":[ { "key":"a", "value":"1" }, { "key":"b", "value":"2" } ], "defaultValue":"ABC" }

Creating a relational parameter map You create a relational parameter map by specifying a model id along with a default value. In this example you create a parameter map in a model with an id of with a default value. Input JSON data

{ "parent":"", "name":"testRelationalParameterMap", "defaultValue":"ABCD" }

After creating a relational parameter map, you can associate query items and filters with it. In this example, you create a query item (using the query_item command) associated with the relational parameter map with an id of .

Performing additional tasks using the Cognos Dynamic Cubes API 41 Input JSON data

{ "parent":"", "name":"testQueryItem" }

42 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Chapter 7. Cognos Dynamic Cubes command reference

There are two types of commands used in the IBM Cognos Dynamic Cube API to create and manipulate dynamic cubes, control commands and model commands. Control commands These commands control model and cube lifecycle functions and miscellaneous tasks. These commands use the HTTP POST method. Model commands These commands are used on specific Cognos Dynamic Cubes objects, such as models, cubes, dimensions, and measures. These commands can be used to do the following actions: • Create an object with the HTTP POST method. • Retrieve the properties of an object with the HTTP GET method. • Update the properties of an object with the HTTP PUT method. • Delete an object with the HTTP DELETE method.

Control commands Control commands control model and cube lifecycle functions and also run miscellaneous tasks. All control commands use the HTTP POST method. Some control commands require an on the HTTP path. The documentation for each control command describes the function of the command, and also describes the (if required) and the input and output JSON objects. authenticate Sets or clears CAM passport information for the model. id of the model. Input JSON object passport Specifies the CAM passport that is to be set for the session. The CAM passport is the id property of the CAMPassport that is part of the biBusHeader after a user authenticates using the IBM Cognos Software Development Kit logon method. See the IBM Cognos Software Development Kit Developer Guide for more information on authenticating with the IBM Cognos Analytics server. If an input JSON object is not specified, the CAM passport is cleared for the session. Output JSON object Empty. cube_deploy Publishes a cube to Content Manager. Not applicable. Input JSON object cube Specifies the id of the cube to be published.

© Copyright IBM Corp. 2013, 2018 43 contentManagerModelPath Specifies the path to publish to in Content Manager. packageName Specifies the package name to be created or updated. refreshDataSources Specifies whether data sources are to be refreshed. Can be either true or false. Output JSON object Empty. cube_register Registers a cube with the IBM Cognos Analytics server. Not applicable. Input JSON object cube Specifies the id of the cube to register. Output JSON object Empty. cube_start Starts a cube. Not applicable. Input JSON object cube Specifies the id of the cube to start. Output JSON object Empty. model_close Closes a model. Not applicable. Input JSON object model Specifies the id of the model that is to be closed. Output JSON object Empty. model_new Creates a model either in memory or in a specified location. Not applicable. Input JSON object filePath If specified, store the model files in this location. The location is relative to the IBM Cognos Analytics server. Otherwise, the model is stored in memory.

44 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide name Specifies the name of the project. namespace Specifies the namespace of the project. locale Specifies the default locale of the project. Output JSON object id An identifier for the model. This identifier can be used to refer to the model in subsequent commands. model_open Opens a model from a file location or from a Content Manager path. Not applicable. Input JSON object filePath If specified, open the model files from this location. The location is relative to the IBM Cognos Analytics server. contentManagerModelPath If specified, open the model files from this Content Manager location. Either filePath or contentManagerModelPath can be specified, but not both. Output JSON object id An identifier for the model. This identifier can be used to refer to the model in subsequent commands. model_open_stream Opens a model from a stream that is passed in the HTTP request. Not applicable. Input stream Specifies the input stream that consists of the model to open. Output JSON object Empty. model_save Saves an open model. Not applicable. Input JSON object model Specifies the id of the model to be saved. Output JSON object Empty.

Cognos Dynamic Cubes command reference 45 model_save_as Saves a model in a new location. Not applicable. Input JSON object model Specifies the id of the model that is to be saved. filePath Specifies the location to store the model files. The location is relative to the IBM Cognos Analytics server. Output JSON object Empty. model_save_stream Saves a model in the output stream of the HTTP response. The HTTP request must include a Content-Type: text/plain request header. id of the model. Input Not applicable. Output The model that is being saved. search Retrieves the id of an object that is based on a search path in a model. id of the model to be searched. Input JSON object path Specifies the path to an object, such as [Model].[Products]. These paths can be found in the model file (.fmd). Output JSON object id The id property of the object found. type The type of the object found. For example, relational_dimension.

Model commands Model commands are used on specific IBM Cognos Dynamic Cubes objects, such as models, cubes, dimensions, and measures. These commands can be used to create and delete objects, as well as to retrieve and modify object properties. Detailed documentation for objects and object properties is available in the IBM Cognos Dynamic Cubes User Guide and in the model schema reference in the IBM Cognos Software Development Kit Framework Manager Developer Guide and is not repeated here. The HTTP request and response objects vary depending on which of the four HTTP methods are being used.

46 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide HTTP POST method Model commands use the HTTP POST method to create objects. Not applicable. Input JSON object parent Specifies the id of the parent object of the object that is being created. other parameters Extra parameters are specified depending on the type of object that is being created. These parameters are described in the documentation for each model command. Output JSON object id An identifier for the object. This identifier can be used to refer to the object in subsequent commands.

HTTP GET method Model commands use the HTTP GET method to retrieve the properties of an object. Specifies the id of the object whose properties are being retrieved. Input JSON object Not applicable. Output JSON object Contains property names and values for the object. These properties vary depending on the type of object and are described in the documentation for each model command.

HTTP PUT method Model commands use the HTTP PUT method to update one or more of the properties of an object. Specifies the id of the object whose properties are being updated. Input JSON object Contains property names and values that are being updated for the object. The properties that can be updated vary depending on the type of object and are described in the documentation for each model command. Output JSON object Empty.

HTTP DELETE method Model commands use the HTTP DELETE method to delete an object. Specifies the id of the object to delete. Input JSON object Not applicable. Output JSON object Empty. The documentation for each model command describes which properties are applicable for the POST, GET, and PUT methods.

Cognos Dynamic Cubes command reference 47 aggregate The aggregate command creates and deletes aggregates, and also updates and retrieves the properties of an aggregate. The following table lists the properties of an aggregate, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 1: Aggregate properties for input and output methods Name Description HTTP methods parent id of the parent cube. POST dimensions Array of id values of child aggregate GET dimensions. measures Array of id values of child aggregate GET measures. name Name. POST GET PUT

style Aggregate style. Can be inDatabase or inMemory. POST GET Important: Only inMemory is currently supported. To create an in-database aggregate, create a cube with the aggregate style. aggregate_dimension The aggregate_dimension command creates and deletes aggregate dimensions, and also updates and retrieves the properties of an aggregate dimension. The following table lists the properties of an aggregate dimension, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 2: Aggregate dimension properties for input and output methods Name Description HTTP methods parent id of the parent aggregate. POST aggregateHierarchies Array of id values of child aggregate GET hierarchies. dimension id of the relational dimension used to create this aggregate dimension. POST GET aggregate_hierarchy The aggregate_hierarchy command creates and deletes aggregate hierarchies, and also updates and retrieves the properties of an aggregate hierarchy. The following table lists the properties of an aggregate hierarchy, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

48 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 3: Aggregate hierarchy properties for input and output methods Name Description HTTP methods parent id of the parent aggregate dimension. POST aggregateLevels Array of id values of child aggregate levels. GET hierarchy id of the relational hierarchy used to create this aggregate hierarchy. POST GET aggregate_level The aggregate_level command creates and deletes aggregate levels, and also updates and retrieves the properties of an aggregate level. The following table lists the properties of an aggregate level, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 4: Aggregate level properties for input and output methods Name Description HTTP methods parent id of the parent aggregate hierarchy. POST hierarchy guid of the relational hierarchy used to GET create this aggregate level. level id of the relational level used to create this aggregate level. POST GET aggregate_measure The aggregate_measure command creates and deletes aggregate measures, and also updates and retrieves the properties of a aggregate measure. The following table lists the properties of an aggregate measure, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 5: Aggregate measure properties for input and output methods Name Description HTTP methods parent id of the parent aggregate. POST measure id of the measure used to create this aggregate measure. POST GET calculated_member The calculated_member command creates and deletes calculated members and measures , and also updates and retrieves the properties of a calculated member or measure. The following table lists the properties of a calculated member describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Cognos Dynamic Cubes command reference 49 Table 6: Calculated member properties for input and output methods Name Description HTTP methods parent id of the parent relational hierarchy. POST comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

expression Expression that defines the calculated member or measure. POST GET cube The cube command creates and deletes cubes, and also updates and retrieves the properties of a cube. The following table lists the properties of a cube, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 7: Cube properties for input and output methods Name Description HTTP methods parent id of the parent model or namespace. POST accessRules Array of id values of child security filters. GET aggregateOrdinal Ordinal, only applicable for an aggregate. POST GET PUT

comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

50 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 7: Cube properties for input and output methods (continued) Name Description HTTP methods dimensions Array of id values of child relational GET dimensions. inDatabaseAggregates Array of id values of child in-database GET aggregates. inMemoryAggregates Array of id values of child in-memory GET aggregates. measureDimension id of the child measure dimension. GET name Name. Localized text. POST GET PUT

namedSets Array of id values of child named sets. GET namedSetFolders Array of id values of child named set folders. GET relationships Array of id values of child relationships. GET removeNonExistentTuples Remove non-existent tuples. Can be either true (default) or false. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

slices Array of member unique names of child slices. For more information, see Filter data POST GET using an aggregate slicer. PUT

style Cube style. Can be regular, aggregate, or virtual. POST GET Using the aggregate style creates an in- database aggregate. To create an in-memory aggregate, create an aggregate. datasource The datasource command creates and deletes data sources, and also updates and retrieves the properties of a data source. The following table lists the properties of a data source, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 8: Data source properties for input and output methods Name Description HTTP methods parent id of the parent model. POST

Cognos Dynamic Cubes command reference 51 Table 8: Data source properties for input and output methods (continued) Name Description HTTP methods catalog Catalog name. Required when you are importing metadata from a Content Manager POST GET data source. PUT

cmDataSource Content Manager data source name. Required when you are importing metadata POST GET from a Content Manager data source. PUT

cube Cube name. Required when you are importing metadata from an IBM InfoSphere® POST GET Warehouse Cubing Services cube PUT

functionSetId Set of functions available in this data source. POST GET PUT

interface Interface. POST GET PUT

queryProcessing Query processing, such as limitedLocal or databaseOnly. POST GET PUT

queryType Query type, such as relational or multidimensional. POST GET PUT

name Name. POST GET PUT

rollupProcessing Rollup processing, such as unspecified, local, database, or extended. POST GET PUT

schema Schema name. Required when you are importing metadata from a Content Manager POST GET data source. PUT

52 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide folder The folder command creates and deletes folders, and also updates and retrieves the properties of a folder. The following table lists the properties of a folder, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 9: Folder properties for input and output methods Name Description HTTP methods parent id of the parent model or folder. POST comment Comment. POST GET PUT

cubes Array of id values of child cubes. GET description Description. Localized text. POST GET PUT

dimensions Array of id values of child relational GET dimensions. folders Array of id values of child relational folders. GET name Name. Localized text. POST GET PUT

namespaces Array of id values of child namespaces. GET querySubjects Array of id values of child query subjects. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

virtualCubes Array of id values of child virtual cubes. GET level The level command creates and deletes levels, and also updates and retrieves the properties of a level. The following table lists the properties of a level, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 10: Level properties for input and output methods Name Description HTTP methods parent id of the parent relational dimension or POST relational hierarchy.

Cognos Dynamic Cubes command reference 53 Table 10: Level properties for input and output methods (continued) Name Description HTTP methods comment Comment. POST GET PUT

currentPeriod Current period. POST GET PUT

description Description. Localized text. POST GET PUT

isUnique Indicates that level members can be uniquely identified by business keys. Can be POST GET true or false. PUT

levelKeys Array of id values of child query items that GET are level keys. levelType Level type. POST GET PUT

name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT measure The measure command creates and deletes measures, and also updates and retrieves the properties of a measure. The following table lists the properties of a measure, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 11: Measure properties for input and output methods Name Description HTTP methods parent id of the parent measure dimension or POST measure folder. comment Comment. POST GET PUT

54 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 11: Measure properties for input and output methods (continued) Name Description HTTP methods currency The ISO currency code. POST GET PUT datatype Data type. See the model schema reference in the IBM Cognos Software Development Kit POST GET Framework Manager Developer Guide for PUT allowable values. description Description. Localized text. POST GET PUT format Data format. POST GET PUT isHidden Inverse of visible. Can be true or false. POST GET PUT isUnsortable Indicates that data values for this object can be sorted or compared. Can be true or POST GET false. PUT name Name. Localized text. POST GET PUT precision Precision. POST GET PUT promptType Prompt type. See the model schema reference in the IBM Cognos Software POST GET Development Kit Framework Manager PUT Developer Guide for allowable values. regularAggregate Regular aggregate. See the model schema reference in the IBM Cognos Software POST GET Development Kit Framework Manager PUT Developer Guide for allowable values. roles Array of id values of child query item roles. GET scale Scale. POST GET PUT

Cognos Dynamic Cubes command reference 55 Table 11: Measure properties for input and output methods (continued) Name Description HTTP methods screenTip Screen tip. Localized text. POST GET PUT

size Maximum size of a value in bytes. POST GET PUT

usage Usage type. See the model schema reference in the IBM Cognos Software Development Kit POST GET Framework Manager Developer Guide for PUT allowable values. measure_dimension The measure_dimension command creates and deletes measure dimensions, and also updates and retrieves the properties of a measure dimension. The following table lists the properties of a measure dimension, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 12: Measure dimension properties for input and output methods Name Description HTTP methods parent id of the parent model. POST calculatedMeasures Array of id values of child calculated GET measures. comment Comment. POST GET PUT

defaultMeasure id of the default measure or calculated measure. The measure or calculated GET PUT measure must exist.

description Description. Localized text. POST GET PUT

filters Array of id values of child relational filters. GET folders Array of id values of child measure folders. GET measures Array of id values of child measures. GET name Name. Localized text. POST GET PUT

56 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 12: Measure dimension properties for input and output methods (continued) Name Description HTTP methods screenTip Screen tip. Localized text. POST GET PUT measure_folder The measure_folder command creates and deletes measure folders, and also updates and retrieves the properties of a measure folder. The following table lists the properties of a measure folder, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 13: Measure folder properties for input and output methods Name Description HTTP methods parent id of the parent measure dimension or POST measure folder. calculatedMeasures Array of id values of child calculated GET measures. comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

folders Array of id values of child measure folders. GET measures Array of id values of child measures. GET name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT model The model command deletes models, and also updates and retrieves the properties of a model. To create a new model, use the model_new command. The following table lists the properties of a model, describes each of them, and specifies whether each property is applicable in an HTTP PUT method (as an input), or in an HTTP GET method (as an output).

Cognos Dynamic Cubes command reference 57 Table 14: Model properties for input and output methods Name Description HTTP methods comment Comment. GET PUT

cubes Array of id values of child cubes. GET datasources Array of id values of child data sources. GET defaultLocale Default locale. GET description Description. Localized text. GET PUT

dimensions Array of id values of child relational GET dimensions. folders Array of id values of child folders. GET locales Array of locales. GET name Name. Localized text. GET PUT

namespaces Array of id values of child namespaces. GET parameterMaps Array of id values of child parameter maps. GET projectName Name of the project. GET querySubjects Array of id values of child relational query GET subjects. screenTip Screen tip. Localized text. POST GET PUT

virtualCubes Array of id values of child virtual cubes. GET named_set The named_set command creates and deletes named sets, and also updates and retrieves the properties of a named set. The following table lists the properties of a named set, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 15: Named set properties for input and output methods Name Description HTTP methods parent id of the parent cube or named set folder. POST comment Comment. POST GET PUT

58 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 15: Named set properties for input and output methods (continued) Name Description HTTP methods description Description. Localized text. POST GET PUT

expression Expression that defines the named set. POST GET

name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT named_set_folder The named_set_folder command creates and deletes named set folders, and also updates and retrieves the properties of a named set folder. The following table lists the properties of a named set folder, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 16: Named set folder properties for input and output methods Name Description HTTP methods parent id of the parent cube or named set folder. POST namedSets Array of id values of child named sets. GET namedSetFolders Array of id values of child named set folders. POST GET PUT

comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

name Name. Localized text. POST GET PUT

Cognos Dynamic Cubes command reference 59 Table 16: Named set folder properties for input and output methods (continued) Name Description HTTP methods screenTip Screen tip. Localized text. POST GET PUT namespace The namespace command creates and deletes namespaces, and also updates and retrieves the properties of a namespace. The following table lists the properties of a namespace, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 17: Namespace properties for input and output methods Name Description HTTP methods parent id of the parent model, namespace, or POST folder. comment Comment. POST GET PUT

cubes Array of id values of child cubes. GET description Description. Localized text. POST GET PUT

dimensions Array of id values of child relational GET dimensions. folders Array of id values of child folders. GET name Name. Localized text. POST GET PUT

namespaces Array of id values of child namespaces. GET querySubjects Array of id values of child relational query GET subjects. screenTip Screen tip. Localized text. POST GET PUT

virtualCubes Array of id values of child virtual cubes. GET

60 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide parameter_map The parameter_map command creates and deletes parameter maps, and also updates and retrieves the properties of a parameter map. The following table lists the properties of a parameter map, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 18: Parameter map properties for input and output methods Name Description HTTP methods parent id of the parent model. POST entries Array of key-value pairs. POST GET PUT

defaultValue Default value. POST GET PUT

name Name. POST GET PUT physical_association The physical_association command creates and deletes physical associations, and also to update and retrieve the properties of a physical association. The following table lists the properties of a physical association, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 19: Physical association properties for input and output methods Name Description HTTP methods parent id of the parent physical join. POST leftColumn Name of the left column. POST GET

operator Operator that is used to join left and right columns. Can be one of none, equals, POST GET notEquals, lessThan, greaterThan, PUT lessThanOrEquals, or greaterThanOrEquals. rightColumn Name of the right column. POST GET

Cognos Dynamic Cubes command reference 61 physical_join The physical_join command creates and deletes physical joins, and also updates and retrieves the properties of a physical join. The following table lists the properties of a physical join, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 20: Physical join properties for input and output methods Name Description HTTP methods parent id of the parent relational dimension or POST relational query subject. associations Array of id values of child physical GET associations. leftMaxCardinality Maximum cardinality of the left-side physical table. Can be one or many. POST GET PUT

leftMinCardinality Minimum cardinality of the left-side physical table. Can be one or many. POST GET PUT

leftTable id of the left-side physical table. POST GET

name Name. POST GET PUT

rightMaxCardinality Maximum cardinality of the right-side physical table. Can be one or many. POST GET PUT

rightMinCardinality Minimum cardinality of the right-side physical table. Can be one or many. POST GET PUT

rightTable id of the right-side physical table. POST GET physical_table The physical_table method creates and deletes physical tables, and also updates and retrieves the properties of a physical table. The following table lists the properties of a physical table, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

62 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 21: Physical table properties for input and output methods Name Description HTTP methods parent id of the parent relational dimension or POST relational query subject. datasource id of the data source that contains the physical table. POST GET PUT

name Name. POST GET PUT query_item The query_item command creates and deletes query items, and also updates and retrieves the properties of a query item. The following table lists the properties of a query item, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 22: Query item properties for input and output methods Name Description HTTP methods parent id of the parent level, relational query POST subject, or relational parameter map. currency The ISO currency code. POST GET PUT

datatype Data type. See the model schema reference in the IBM Cognos Software Development Kit POST GET Framework Manager Developer Guide for PUT allowable values.

format Data format. POST GET PUT

isHidden Inverse of visible. Can be true or false POST GET PUT

isLevelKey Indicates that this query item is a level key. Can be true or false POST GET PUT

isUnsortable Indicates that data values for this object can be sorted or compared. Can be true or POST GET false. PUT

Cognos Dynamic Cubes command reference 63 Table 22: Query item properties for input and output methods (continued) Name Description HTTP methods precision Precision. POST GET PUT

promptType Prompt type. See the model schema reference in the IBM Cognos Software POST GET Development Kit Framework Manager PUT Developer Guide for allowable values.

regularAggregate Regular aggregate. See the model schema reference in the IBM Cognos Software POST GET Development Kit Framework Manager PUT Developer Guide for allowable values.

roles Array of id values of child query item roles. GET scale Scale. POST GET PUT

size Maximum size of a value in bytes. POST GET PUT

usage Usage type. See the model schema reference in the IBM Cognos Software Development Kit POST GET Framework Manager Developer Guide for PUT allowable values. query_item_mapping The query_item_mapping command creates and deletes query item mappings, and also updates and retrieves the properties of a query item mapping. The following table lists the properties of a query item mapping, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 23: Query item mapping properties for input and output methods Name Description HTTP methods parent id of the parent relational dimension or POST relational query subject. columnName Column name. POST GET

queryItem id of the query item. POST GET

64 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 23: Query item mapping properties for input and output methods (continued) Name Description HTTP methods sqlObject id of the SQL object. POST GET

table id of the physical table. POST GET query_item_role The query_item_role command creates and deletes query item roles, and also updates and retrieves the properties of a query item role. The following table lists the properties of a query item role, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 24: Query item role properties for input and output methods Name Description HTTP methods parent id of the parent query item or measure. POST isIntristic If set to true, indicates that the attribute GET with this role is not displayed in the studios but is available by using the roleValue function. If more than one role is specified, the intrinsic attribute is ANDed for all roles. The default value is false. name Name. Localized text. POST GET PUT relational_dimension The relational_dimension command creates and deletes relational dimensions, and also to update and retrieve the properties of a relational dimension. The following table lists the properties of a relational dimension, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 25: Relational dimension properties for input and output methods Name Description HTTP methods parent id of the parent model, cube, or folder. POST comment Comment. POST GET PUT

createRelationship Specifies whether a simple relationship with no expression is created between the POST GET dimension and the measure dimension of the parent cube, if any. Can be true or false.

Cognos Dynamic Cubes command reference 65 Table 25: Relational dimension properties for input and output methods (continued) Name Description HTTP methods defaultHierarchy id of the default hierarchy. GET description Description. Localized text. POST GET PUT

dimensionStyle Dimension type. Can be regular, measure, GET or time. filters Array of id values of child relational filters. GET levels Array of id values of child levels. GET multilingualSupport Multilingual support. Can be disabled, byRow, or byColumn. POST GET PUT

name Name. Localized text. POST GET PUT

relationalHierarchies Array of id values of child relational GET hierarchies. screenTip Screen tip. Localized text. POST GET PUT relational_filter The relational_filter command creates and deletes relational filters, and also updates and retrieves the properties of a relational filter. The following table lists the properties of a relational filter, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 26: Relational filter properties for input and output methods Name Description HTTP methods parent id of the parent relational dimension, POST relational measure, or relational parameter map. expression Expression that defines the filter value. POST GET PUT

generateKeyFilter Generate a measure dimension filter. Can be true or false. POST GET PUT

66 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 26: Relational filter properties for input and output methods (continued) Name Description HTTP methods name Name. POST GET PUT relational_hierarchy The relational_hierarchy command creates and deletes relational hierarchies, and also to update and retrieve the properties of a relational hierarchy. The following table lists the properties of a relational hierarchy, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 27: Relational hierarchy properties for input and output methods Name Description HTTP methods parent id of the parent relational dimension. POST accessRules Array of id values of child security filters. GET balanced Balanced hierarchy. Can be true or false. POST GET PUT

calculatedMembers Array of id values of child calculated GET members. captionForMembers Caption of padding members. Can be empty or parent. POST GET PUT

comment Comment. POST GET PUT

defaultHierarchy Specifies that this hierarchy is the default hierarchy. Can be true or false. POST GET PUT

description Description. Localized text. POST GET PUT

generateNextPeriodsMembers Specifies whether next-period time members should be auto-generated. Can POST GET be true or false. PUT

Cognos Dynamic Cubes command reference 67 Table 27: Relational hierarchy properties for input and output methods (continued) Name Description HTTP methods generatePriorPeriodsMembers Specifies whether prior-period time members should be auto-generated. Can POST GET be true or false. PUT

hasRelativeTimeMembers Add relative time members. Can be true or false. POST GET PUT

includeRelativeTimeSubtree Specifies whether the relative time members sub-tree should be displayed in POST GET IBM Cognos Cube Designer. Can be true PUT or false.

isParentChild Parent-Child. Can be true or false. POST GET

levels Array of id values of child levels. POST GET PUT

multiRoot Multiple root members. Can be true or false. POST GET PUT

name Name. Localized text. POST GET PUT

ragged Ragged hierarchy. Can be true or false. POST GET PUT

relativeTimeMembers Array of id values of child relative time members. POST GET PUT

rootCaption Root caption. Localized text POST GET PUT

rootMember Specifies the external name of the root member for a hierarchy as captured from POST GET the data source. This property is only PUT applicable to OLAP sources.

68 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 27: Relational hierarchy properties for input and output methods (continued) Name Description HTTP methods screenTip Screen tip. Localized text. POST GET PUT relational_parameter_map The relational_parameter_map command creates and deletes relational parameter maps, and also updates and retrieves the properties of a relational parameter map. The following table lists the properties of a relational parameter map, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 28: Relational parameter map properties for input and output methods Name Description HTTP methods parent id of the parent model. POST name Name. POST GET PUT

filters Array of id values of child relational filters. GET queryItems Array of id values of child query items. GET defaultValue Default value. POST GET PUT relational_query_subject The relational_query_subject command is used to create and delete relational query subjects, and also to update and retrieve the properties of a relational query subject. For more information about relational query subjects, see the topics on query subjects in the IBM Cognos Framework Manager User Guide. The following table lists the properties of a relational query subject, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 29: Relational query subject properties for input and output methods Name Description HTTP methods parent id of the parent model, namespace, or POST folder. comment Comment. POST GET PUT

Cognos Dynamic Cubes command reference 69 Table 29: Relational query subject properties for input and output methods (continued) Name Description HTTP methods description Description. Localized text. POST GET PUT

joins Array of id values of child physical joins. GET name Name. Localized text. POST GET PUT

queryItemMappings Array of id values of child query item GET mappings. queryItems Array of id values of child query items. GET screenTip Screen tip. Localized text. POST GET PUT

tables Array of id values of child physical tables. GET relationship The relationship command creates and deletes relationships, and also updates and retrieves the properties of a relationship. The following table lists the properties of a relationship, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 30: Relationship properties for input and output methods Name Description HTTP methods parent id of the parent cube. POST expression Expression joining left-side and right-side objects. POST GET PUT

leftObjectRef id of the left-side object. POST GET PUT

leftMaxCardinality Maximum cardinality of the left-side object. Can be one or many. POST GET PUT

leftMinCardinality Minimum cardinality of the left-side object. Can be one or many. POST GET PUT

70 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 30: Relationship properties for input and output methods (continued) Name Description HTTP methods name Name. POST GET PUT

rightObjectRef id of the right-side object. POST GET PUT

rightMaxCardinality Maximum cardinality of the right-side object. Can be one or many. POST GET PUT

rightMinCardinality Minimum cardinality of the right-side object. Can be one or many. POST GET PUT relative_time_member The relative_time_member command creates and deletes cubes, and also updates and retrieves the properties of a relative time member. The following table lists the properties of a relative time member, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 31: Relative time member properties for input and output methods Name Description HTTP methods parent id of the parent hierarchy. POST comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

name Name. Localized text. POST GET PUT

contextPeriod id of the level containing the context period. POST GET PUT

Cognos Dynamic Cubes command reference 71 Table 31: Relative time member properties for input and output methods (continued) Name Description HTTP methods contextPeriodOffset Offset from the context period. POST GET PUT

isLifeToDatePeriod Specifies a life-to-date definition. Can be either true or false (default). POST GET PUT

numberOfPeriods Specifies the number of time periods POST GET PUT

targetPeriod id of the level containing the target period. POST GET PUT

targetPeriodOffset Offset from the target period. POST GET PUT

toDatePeriod id of the level containing the to-date period. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

style Relative time member style. Can be simple, periodToDate, or rollingTotal. POST GET security_filter The security_filter command creates and deletes security filters, and also updates and retrieves the properties of a security filter. The following table lists the properties of a security filter, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 32: Security filter properties for input and output methods Name Description HTTP methods parent id of the parent relational hierarchy, cube, or POST security view.

72 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 32: Security filter properties for input and output methods (continued) Name Description HTTP methods expression Expression of the access rule. POST GET PUT

isAllAccess All access. Can be true or false. POST GET

memberAccess Scope. Can be grantAll, grantMembers, grantMembersAndDescendants, POST GET grantMembersAndAncestors, PUT grantMembersDescendantsAndAncesto rs, or denyMembersAndDescendants name Name. POST GET PUT

objectReference The id of the object that is being filtered. POST GET

permission Permission type. Can be grant or deny. POST GET security_view The security_view command creates and deletes security views, and also updates and retrieves the properties of a security view. The following table lists the properties of a security view, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 33: Security view properties for input and output methods Name Description HTTP methods parent id of the parent cube. POST filters Array of ids of child security filters. POST GET PUT

name Name. POST GET PUT

Cognos Dynamic Cubes command reference 73 sql_object The sql_object command creates and deletes SQL objects, and also to update and retrieve the properties of a SQL object. For more information about SQL objects, see the topic on data source query subjects in the IBM Cognos Framework Manager User Guide. The following table lists the properties of a SQL object, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 34: SQL object properties for input and output methods Name Description HTTP methods parent id of the parent relational query subject. POST datasource id of the data source against which the SQL object is run. POST GET

name Name. POST GET

sqlStatement The SQL statement as a string. POST GET virtual_cube The virtual_cube command creates and deletes virtual cubes, and also updates and retrieves the properties of a virtual cube. The following table lists the properties of a virtual cube, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 35: Virtual cube properties for input and output methods Name Description HTTP methods parent id of the parent model or namespace. POST comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

name Name. Localized text. POST GET PUT

namedSets Array of id values of child named sets. GET namedSetFolders Array of id values of child named set folders. GET

74 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 35: Virtual cube properties for input and output methods (continued) Name Description HTTP methods screenTip Screen tip. Localized text. POST GET PUT

sourceObjects Array of id values of virtual source objects. GET

virtualMeasureDimension id of the child virtual measure dimension. GET virtualDimensions Array of id values of child virtual dimensions. GET virtual_dimension The virtual_dimension command creates and deletes virtual dimensions, and also updates and retrieves the properties of a virtual dimension. The following table lists the properties of a virtual dimension, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 36: Virtual dimension properties for input and output methods Name Description HTTP methods parent id of the parent virtual cube. POST comment Comment. POST GET PUT

defaultVirtualHierarchy id of the default virtual hierarchy. POST GET

description Description. Localized text. POST GET PUT

dimensionStyle Dimension type. Can be regular or time. POST GET

name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

sourceObjects Array of id values of virtual source objects. GET

Cognos Dynamic Cubes command reference 75 Table 36: Virtual dimension properties for input and output methods (continued) Name Description HTTP methods virtualHierarchies Array of id values of child virtual hierarchies. GET virtual_hierarchy The virtual_hierarchy command creates and deletes virtual hierarchies, and also updates and retrieves the properties of a virtual hierarchy. The following table lists the properties of a virtual hierarchy, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 37: Virtual hierarchy properties for input and output methods Name Description HTTP methods parent id of the parent virtual dimension. POST addRelativeTimeMembers Add relative time members. Can be true or false. POST GET PUT

calculatedMembers Array of id values of child calculated GET members. comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

name Name. Localized text. POST GET PUT

parentChild Parent-Child. Can be true or false. POST GET

screenTip Screen tip. Localized text. POST GET PUT

sourceObjects Array of id values of virtual source objects. GET

virtualLevels Array of id values of child virtual levels. GET

76 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide virtual_level The virtual_level command creates and deletes virtual levels, and also updates and retrieves the properties of a virtual level. The following table lists the properties of a virtual level, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 38: Virtual level properties for input and output methods Name Description HTTP methods parent id of the parent virtual dimension or virtual POST hierarchy. comment Comment. POST GET PUT

description Description. Localized text. POST GET PUT

name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

sourceObjects Array of id values of virtual source objects. GET virtual_measure The virtual_measure command creates and deletes virtual measures, and also updates and retrieves the properties of a virtual measure. The following table lists the properties of a virtual measure, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 39: Virtual measure properties for input and output methods Name Description HTTP methods parent id of the parent virtual measure dimension POST or virtual measure folder. comment Comment. POST GET PUT

Cognos Dynamic Cubes command reference 77 Table 39: Virtual measure properties for input and output methods (continued) Name Description HTTP methods dataFormat Data format. POST GET PUT

description Description. Localized text. POST GET PUT

mergeOperator Merge operator. POST GET PUT

name Name. Localized text. POST GET PUT

precedence Precedence. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

sourceObjects Array of id values of virtual source objects. GET

visible Visible. POST GET PUT virtual_measure_dimension The virtual_measure_dimension command creates and deletes virtual measure dimensions, and also updates and retrieves the properties of a virtual measure dimension. The following table lists the properties of a virtual measure dimension, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 40: Virtual measure dimension properties for input and output methods Name Description HTTP methods parent id of the parent virtual cube. POST calculatedMeasures Array of id values of child calculated GET measures.

78 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 40: Virtual measure dimension properties for input and output methods (continued) Name Description HTTP methods comment Comment. POST GET PUT

defaultVirtualMeasure id of the default virtual measure or calculated measure. The virtual measure or GET PUT calculated measure must exist.

description Description. Localized text. POST GET PUT

folders Array of id values of child virtual measure folders. POST GET PUT

name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT

sourceObjects Array of id values of virtual source objects. GET

virtualMeasures Array of id values of child virtual measures. GET virtual_measure_folder The virtual_measure_folder command creates and deletes virtual measure folders, and also updates and retrieves the properties of a virtual measure folder. The following table lists the properties of a virtual measure folder, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output).

Table 41: Virtual measure folder properties for input and output methods Name Description HTTP methods parent id of the parent virtual measure dimension POST or virtual measure folder. comment Comment. POST GET PUT

Cognos Dynamic Cubes command reference 79 Table 41: Virtual measure folder properties for input and output methods (continued) Name Description HTTP methods description Description. Localized text. POST GET PUT

folders Array of id values of child virtual measure folders. POST GET PUT

measures Array of id values of child virtual measures. GET name Name. Localized text. POST GET PUT

screenTip Screen tip. Localized text. POST GET PUT virtual_source The virtual_source command creates and deletes virtual sources, and also updates and retrieves the properties of a virtual source. Virtual sources are used to associate source objects to virtual objects. The following tables lists the properties of a virtual source, describes each of them, and specifies whether each property is applicable in an HTTP POST or PUT method (as an input), or in an HTTP GET method (as an output). The properties differ depending on whether the virtual object is a virtual cube or a different virtual object.

Table 42: Virtual source properties (for a virtual cube) for input and output methods Name Description HTTP methods parent id of the virtual cube that uses this virtual POST source. name Name. This is an optional property. If it is omitted, sourceName is used. Localized POST GET text. PUT

sourceName Name of the source cube. Required for objects retrieved from the content store. POST GET

sourceObject id of the source cube. Required for objects retrieved from within the model. POST GET

sourcePath Path of the source cube. Required for objects retrieved from the content store. POST GET

80 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Table 43: Virtual source properties (for a virtual object other than a virtual cube) for input and output methods Name Description HTTP methods parent id of the virtual object that uses this virtual POST source. name Name. This is an optional property. If it is omitted, sourceName is used. Localized text. POST GET PUT

sourceName Name of the source object. GET

sourceObject id of the source object. POST GET

sourceParent id of the parent object of sourceObject. POST GET

Localized text Some model attributes, such as names, tooltips, and descriptions, support localized text. You can enter the same data in multiple languages and the version that is displayed by the IBM Cognos Analytics server is determined by the locale of the user. Attributes that support localized text are expressed as an array of localized text elements as shown in the following example.

"name": [ { "text": "Sample", "locale": "en" }, { "text": "Exemple", "locale": "fr" } ],

Each text string is paired with a locale code. You can omit the array if you are adding data for a single locale only.

"name": { "text": "Sample", "locale": "en" },

If you are using the default locale, you can add the text.

"name": "Sample",

When you retrieve the attributes of an object, localized data is always output as an array that contains text and locale elements.

Cognos Dynamic Cubes command reference 81 Expressions Expressions are used by some model commands to define a filter or a calculation. An expressions is an array of one or more expression parts. Each expression part can be one of the following objects: • A column reference. • A member unique name. • A string, such as "=" or "||". • An id of a model object, such as {"id":"133fd4f9bf904747ba9d3f89b50e4d4b"}. • The XML representation of an expression object, as documented in the model schema reference in the IBM Cognos Software Development Kit Framework Manager Developer Guide. An example is "[Model].[Time].[levels].[Year].[Current Year]<\/refobj> > 2000<\/expression>"

Column reference A column reference consists of the following 4 name-value pairs. columnName Name of the column in the data source. dataSourceRef id of the data source. objectRef id of the referred object. tableName Name of the table in the data source. For an example of this type of expression, see “Creating a relationship between the relational dimension and the measure dimension” on page 21

Member unique name A member unique name consists of the following 3 name-value pairs. caption A caption for the member unique name. path The path to the object in the Members folder in IBM Cognos Cube Designer. member The id of the model object referred to. For an example of this type of expression, see “Create calculated members and measures” on page 38

82 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Notices

This information was developed for products and services offered worldwide. This material may be available from IBM in other languages. However, you may be required to own a copy of the product or product version in that language in order to access it. 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. This document may describe products, services, or features that are not included in the Program or license entitlement that you have purchased. 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. 19-21, Nihonbashi-Hakozakicho, Chuo-ku Tokyo 103-8510, 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. 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

© Copyright IBM Corp. 2013, 2018 83 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. Depending upon the configurations deployed, this Software Offering may use session and persistent cookies that collect each user's • name • user name • password for purposes of • session management • authentication • enhanced user usability • single sign-on configuration • usage tracking or functional purposes other than session management, authentication, enhanced user usability and single sign-on configuration These cookies cannot be disabled. If the configurations deployed for this Software Offering provide you as customer the ability to collect personally identifiable information from end users via cookies and other technologies, you should seek your own legal advice about any laws applicable to such data collection, including any requirements for notice and consent. For more information about the use of various technologies, including cookies, for these purposes, see IBM's Privacy Policy at https://www.ibm.com/privacy/us/en/.

84 Notices Trademarks

IBM, the IBM logo and ibm.com 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: • Java and all Java-based trademarks and logos are trademarks or registered trademarks of Oracle and/or its affiliates.

Notices 85 86 IBM Cognos Software Development Kit Version 11.0.0 : Dynamic Cubes Developer Guide Index

A commands (continued) security_view 73 aggregate command 48 sql_object 74 aggregate_dimension command 48 virtual_cube 74 aggregate_hierarchy command 48 virtual_dimension 75 aggregate_level command 49 virtual_hierarchy 76 aggregate_measure command 49 virtual_level 77 audience of document vii virtual_measure 77 authenticate command 43 virtual_measure_dimension 78 virtual_measure_folder 79 virtual_source 80 C cube command 50 calculated_member command 49 cube_deploy command 43 commands cube_register command 44 aggregate 48 cube_start command 44 aggregate_dimension 48 aggregate_hierarchy 48 D aggregate_level 49 aggregate_measure 49 datasource command 51 authenticate 43 description of product vii calculated_member 49 cube 50 cube_deploy 43 F cube_register 44 folder command 53 cube_start 44 datasource 51 folder 53 L level 53 level command 53 measure 54 measure_dimension 56, 57 model 57 M model_close 44 model_new 44 measure command 54 model_open 45 measure_dimension command 56, 57 model_open_stream 45 model command 57 model_save 45 model_close command 44 model_save_as 46 model_new command 44 model_save_stream 46 model_open command 45 named_set 58 model_open_stream command 45 named_set_folder 59 model_save command 45 namespace 60 model_save_as command 46 parameter_map 61 model_save_stream command 46 physical_association 61 physical_join 62 N physical_table 62 query_item 63 named_set command 58 query_item_mapping 64 named_set_folder command 59 query_item_role 65 namespace command 60 relational_dimension 65 relational_filter 66 relational_hierarchy 67 P relational_parameter_map 69 parameter_map command 61 relational_query_subject 69 physical_association command 61 relationship 70 physical_join command 62 relative_time_member 71 physical_table command 62 search 46 purpose of document vii security_filter 72

87 Q query_item command 63 query_item_mapping command 64 query_item_role command 65

R relational_dimension command 65 relational_filter command 66 relational_hierarchy command 67 relational_parameter_map command 69 relational_query_subject command 69 relationship command 70 relative_time_member command 71

S search command 46 security_filter command 72 security_view command 73 ssql_object command 74

V virtual_cube command 74 virtual_dimension command 75 virtual_hierarchy command 76 virtual_level command 77 virtual_measure command 77 virtual_measure_dimension command 78 virtual_measure_folder command 79 virtual_source command 80

88

IBM®