Cognos Architecture
Cognos Architecture
Cognos Architecture
</HEAD>
Chapter 1: Welcome 5
Chapter 2: Modeling Guidelines 7
The Architect Model 7
Verify the Contents of the Model 9
Import Metadata 9
Import Everything into the Model 10
Define Cross-Database Joins 10
Define Additional Keys 11
Add Business Information 11
Design Effective Entities 12
Normalize Entities 13
Combine Tables into One Entity 14
Define Effective Relationships 15
Filter Data 19
Prepare the Model for Reporting and Querying 20
Add Security to the Model 20
User Classes and Their Privileges 20
The Role of Security Administrator 21
Set Up Administrative Access 21
Set Up User Access 22
Chapter 3: Create Models for Cognos Query 25
Cognos Query and Architect 25
Objects in Packages and Foundation Queries 25
Import Metadata 25
Add Business Information 26
Design Queries 26
Provide Calculated Information 27
Use Prompts to Filter Data 29
Categorize Data 30
Prepare the Model for Querying 31
Design Cognos Query Packages 32
Combine Information into One Query 32
Create Queries That Users Can Navigate Between 33
Create Summary Queries That Drill Down to Detailed Queries 34
Add Security to the Model 36
Publish Packages to Upfront 36
Chapter 4: Create Models for Impromptu 37
Impromptu and Architect 37
Objects in Packages and Catalogs 37
Import Metadata 37
Import Catalogs into Architect 38
Add Business Information 39
Define Relationships 39
Provide Calculated Information 41
Prepare the Model for Reporting 41
Add Security to the Model 41
Import Security Information from a Catalog 42
iv Architect (R)
Chapter 1: Welcome
Architect is a metadata management tool that provides a single point of administration for the
metadata that supports all your Cognos reporting and analytical products. You use Architect to
build a common set of business-oriented metadata so that your users can build queries, reports,
and cubes.
Architect is a custom component of the Impromptu Administrator and Cognos Query
installations. For information about installing each of these products, see the installation and
configuration guide for each product.
Questions or Comments?
For the fastest response to questions about using Architect, contact customer support.
For information about customer support locations and programs, see Cognos on the Web on the
Help menu or visit the Cognos Support Web site (http://support.cognos.com).
6 Architect ( R )
Chapter 2: Modeling Guidelines
To design and create an effective Architect model, there are general modeling guidelines that
you should follow. These guidelines apply to all types of Architect models, regardless of whether
they are designed for Cognos Query, Impromptu, or PowerPlay Transformer.
Business Layer
The business layer describes the business view of the corporate data as well as the information
that your report authors and query designers require. It consists of the business model (entities,
attributes, and relationships), which you can view as an entity-relationship diagram, business
rules (calculations, filters, and prompts), and display rules (styles, and enumeration values).
Architect generates objects in the business layer based on the objects in the data access layer.
You can modify the business layer to reflect your users’ reporting and querying requirements.
Package Layer
The package layer contains a default package that references every object in the business layer.
You also create and store custom packages in the package layer. Custom packages usually
reference specific portions of the business layer. Each package may be targeted for one or more
Cognos products (PowerPlay Transformer, Impromptu, and Cognos Query), and designed for
specific users.
The following chart shows the most common associations between model objects. Not
applicable indicates that the layer does not contain an object that corresponds to an object in
another layer.
8 Architect ( R )
Chapter 2: Modeling Guidelines
Verify Packages
Before you export the model to an Impromptu catalog or publish it to Upfront, verify packages.
Packages rely on the contents in each layer, and the design of each layer has an effect on the
run-time performance of queries and reports. Therefore, you should verify the contents of the
entire model, not just the package layer. If you verify only the package layer, the verification
process may indicate that the packages are acceptable. However, there may be an error in
another part of the model that may affect run-time performance.
Verify Security
After you import and set up user class privileges to portions of the model, verify security. You
can import user classes into an Architect model at any time during its development. However,
you will most likely set up access privileges after you create all the required packages. Then you
can test everyone’s access privileges before you deploy the model to the production
environment. At this stage of development, you should verify that the model does not contain
conflicting security settings, and that all user classes are defined properly.
After you deploy the model to your production environment, you should verify security again. If
the model contains security errors, users may not be able to run reports or queries, and access
privileges or restrictions to confidential information may fail.
Import Metadata
To create foundation queries for Cognos Query, dimension and level candidates for Transformer,
and catalogs for Impromptu, you must first import the required metadata sources into the
Architect model. If your users require information that resides in more than one metadata
source, you may need to import more than one source.
The imported metadata appears in the data access layer. Handle the contents of the data
access layer like an internal snapshot of the data source. If you modify an object in the data
access layer, you create an inconsistency between the object in the model and the
corresponding object in the data source. Inconsistencies may cause queries to fail at run time.
To properly design the data access layer, follow these guidelines:
• Do not modify the metadata properties of any object, such as the data type of a column.
However, you can add annotations that describe that object.
• Do not add, delete, or move columns between tables.
Instead, organize related objects in the business or package layers.
• Do not add, delete, or combine tables.
Instead, organize related objects in the business or package layers.
• Do not delete keys.
If you delete a key from a table, and a user requires information from that table in the
database, the query may not retrieve the correct information, or the query may not run at all.
• Do not delete joins in the data access layer.
Instead, modify or delete the corresponding relationships in the business layer. For more
information, see "Define Effective Relationships" (p. 15).
• Do not modify the cardinality of joins.
Instead, change the cardinality of the corresponding relationships in the business layer. For
more information, see "Include or Exclude NULL Values in a Report" (p. 15).
The only circumstances when you should modify the data access layer are when you must
• import additional metadata into the model
However, we recommend that you import everything into the model at the beginning of its
development.
• define SQL queries that will retrieve data explicitly through syntax developed by the modeler
For more information about defining SQL queries, see the Architect User Guide.
• define cross-database joins in order to use a single query to retrieve data that resides in
more than one data source
10 Architect ( R )
Chapter 2: Modeling Guidelines
We recommend that you individually define each required join. This approach ensures that each
join is accurately defined and is required in the model. You can automatically generate all
possible joins between tables, but you could produce unnecessary or invalid joins if unrelated
keys in the underlying data source have matching names. We recommend that you
automatically generate joins only if you are absolutely sure that the primary and corresponding
foreign keys in the data source have the same names. If you want to automatically generate
joins, try it in a test model first. If the results are satisfactory, you can repeat the process in the
production model.
If a user wants to retrieve information from two tables that reside in the same data source, but
the join does not exist, we recommend that you define these additional relationships in the
business layer. The information request represents a business requirement, and therefore
should be maintained in the business layer. The only joins you should maintain in the data
access layer are those you import from the data source, or those that indicate a logical
relationship between multiple data sources. For information about creating relationships, see
"Define Additional Relationships" (p. 15).
12 Architect ( R )
Chapter 2: Modeling Guidelines
Normalize Entities
Normalization is the process of organizing tables or entities so that data is not duplicated, and
data modification is more efficient. Normalization usually involves dividing larger tables or
entities into smaller ones so that each column or attribute within a table or entity is distinct and
describes the overall concept that the table or entity represents. Normalizing tables or entities
conforms to the rules of Third Normal Form.
We recommend that you create and maintain normalized entities in the business layer.
Normalization is especially important if you are creating an Architect model that is used by more
than one Cognos product. If the entities are normalized, all the products can effectively use the
model. For example, normalized entities facilitate the creation of dimension, measure, and level
candidates in PowerPlay Transformer, and users can query a distinct portion of data in Cognos
Query or Impromptu.
If a user wants denormalized information in their reports or queries, create denormalized
subjects in the package layer. For example, denormalized subjects enable a Cognos Query user
to retrieve all required information in one query.
The only way to normalize entities in the business layer is to use the Normalize Entity wizard. Do
not attempt to manually create new entities. Using the wizard ensures that the relationships
between the new entities are set up properly.
When you normalize entities, you are not required to include all the attributes from the
denormalized entity in the new entities. However, we recommend that you include them all. If
you accidentally exclude an attribute that represents a key, the relationship is not defined
properly, and queries will fail at run time. If users do not need access to an attribute, exclude the
corresponding subject attribute from the package.
If the data source already contains normalized tables, you do not need to normalize the entities
in the business layer. It is already done for you.
Normalize entities when
• the data source contains merged or denormalized tables because the database
administrator wanted to optimize space allocations or schema organization.
This type of data source may contain a combination of normalized and denormalized tables.
If so, modify only the denormalized entities in the business layer.
• the data source is used as a data warehouse and the tables are organized into a star
schema.
You should modify every entity in the business layer so that they represent a snowflake
schema. If you are normalizing entities to use in PowerPlay Transformer, create an entity for
each level within each dimension. However, you may not need to normalize entities if your
Transformer modeler is familiar with the structure of the data warehouse and knows exactly
which dimensions and levels to create. Contact your Transformer modeler and ask them
whether they want to receive denormalized or normalized metadata.
Example
You want to normalize an entity that acts as a dimension table in a star schema. The entity is
called ProductDimension and it contains three business concepts: product line, product type,
and product. The entity also has a one-to-many relationship with an entity called SalesFact.
Using the Normalize Hierarchical Entity wizard, you divide the ProductDimension entity into
three new entities and allocate the attributes to the appropriate entity.
Entity Attributes
Then you arrange the entities so that their order reflects the one-to-many relationships they
have with each other. The order is ProductLine (which has a 1..1 to 1..n relationship with
ProductType), ProductType (which has a 1..1 to 1..n relationship with Product), and Product
(which has a 1..1 to 1..n relationship with the SalesFact entity).
14 Architect ( R )
Chapter 2: Modeling Guidelines
Mandatory relationships indicate that for one instance in an entity, there is at least one
corresponding instance in the second entity. These relationships also restrict the type of
information that a query can retrieve. The query can retrieve information only if it conforms to the
cardinality notation. Matching records must exist in two related tables. If one table does not
contain a record that matches a record in the other table, the data source inserts a NULL value
as a placeholder. Mandatory relationships do not retrieve information that contain NULL values.
To avoid NULL values in the data source, some administrators enter a record that contains a
zero (0) value. Because the data source considers zero values to be valid data, mandatory
relationships retrieve them.
For example, to indicate that each branch has one or more salespeople, and each salesperson
works only at one branch, you create an association relationship between the SalesBranch and
SalesStaff entities. Then you set the cardinality as 1..1 to 1..n. The relationship indicates that for
one instance in SalesBranch, there is at least one or more instances in SalesStaff (one or more
required). For one instance in SalesStaff, there is only one instance in SalesBranch (one
required).
16 Architect ( R )
Chapter 2: Modeling Guidelines
Example
The SalesStaff table contains information about salespeople and managers. There is a self-join
(0..1 to 0..n) that relates each salesperson to a manager. The join is between the StaffId and
ManagerId columns.
When you build the business layer, the self-join becomes a recursive relationship. The
cardinality is automatically defined as mandatory (1..1 to 1..n), which excludes NULL values in
the resulting query. To resolve the recursive relationship, you create a Sales Managers subtype
entity. Then you delete the recursive relationship, and create a new relationship between the
entity and the subtype entity. Now there is a subtype relationship between the two entities which
indicates inheritance, and an association relationship which represents the recursive
relationship.
Example
There are two relationships between the SalesBranch entity and the SalesStaff entity. One
relationship (1..1 to 1..1) associates managers to a particular sales branch. The other
relationship (1..1 to 1..n) associates employees to a particular sales branch. Employees include
both salespeople and managers. Because your users must retrieve information about
salespeople as well as managers, you cannot simply remove one of the relationships.
To resolve ambiguity, you define a subtype entity to represent the managers of each sales
branch. Then you associate a filter with the subtype entity so that users retrieve information only
about managers when you include the corresponding subject in a package.
The other option is to keep the relationships in their original form and include only one query
path in a package. When users want to report on all employees, include the query path that
references the 1..1 to 1..n relationship. And when users want to report only on managers,
include the other query path.
Example
An OrderHeader entity contains information such as the date of the order, who the customer is,
who the salesperson is, and which branch placed the order. An OrderDetail entity contains
information such as the products that were ordered, the unit wholesale price, and the price the
customer paid. Because users typically retrieve information from both entities, there is a
reporting dependency between OrderHeader and OrderDetails. Your users retrieve information
using Cognos Query. Therefore, to give preference to the relationship at run time, you create a
containment relationship whereby the OrderDetails entity is contained by the OrderHeader
entity.
18 Architect ( R )
Chapter 2: Modeling Guidelines
Example
The Customer and Warehouse tables are both related to an Address lookup table. Customer
and Warehouse have different addresses. You do not want the query to pass through the
Address table and erroneously relate customer addresses with warehouse addresses. You want
the query to retrieve address information only for customers, or address information only for
warehouses.
• For PowerPlay Transformer or Cognos Query, change the relationship that associates an
entity to a lookup entity to a reference relationship. For example, create a reference
relationship between Address and Country and between Address and Warehouse.
For Cognos Query users, you may want to combine entities that have reference
relationships between them into one subject in the package layer. For more information, see
"Combine Information into One Query" (p. 32).
For Transformer users, you would typically create a package that contains a subject for each
entity.
• For Impromptu, reduce the table weights for the entities that represent lookup tables. For
more information, see the Architect User Guide.
Filter Data
There are a variety of approaches to designing an Architect model that provide users with
filtered data in a report or query. The process of filtering data is a type of security known as
row-level security, lets a user retrieve information based on specific data values. For example,
you can set up filters that restrict a user from accessing confidential data.
You can also set up filters that represent a distinct portion of data. For example, sales people in
Germany want to retrieve sales information only from their region, rather than sift through all the
data to find their regional data. You can define the filter in the Architect model so that the data is
automatically filtered when a user runs a report or query.
There are two main approaches to setting up filters in Architect. Each approach offers a different
level of control and granularity over row-level security. You can
• create a filter and associate it with an entity via a user class
• create a filter and associate it with an entity
20 Architect ( R )
Chapter 2: Modeling Guidelines
Architect also supports the union of user classes. A union occurs when a user belongs to more
than one user class. When a user accesses an Architect model, they are given a combination of
access privileges, based on all the user classes to which they belong.
22 Architect ( R )
Chapter 2: Modeling Guidelines
24 Architect ( R )
Chapter 3: Create Models for Cognos Query
To create an Architect model for Cognos Query designers and users, there are specific
modeling guidelines that you should follow. For information about general modeling guidelines,
see "Modeling Guidelines" (p. 7).
Subject attribute that has a prompt Column in a query and a drop-down box on
associated with it the Filter page, which contains a list of
available filter values.
Import Metadata
To create foundation queries for Cognos Query, you must first import the required metadata
sources into the Architect model. If your users require information that resides in more than one
metadata source, you may need to import more than one source.
If you import metadata from more than one source, we recommend that the sources be logically
related to one another so that you can define joins between them if required. You can then
create one package that contains all the related information. Resulting queries have query links
between them.
If the sources are not related to one another, create individual packages for each source so that
you do not mix unrelated information. Users cannot navigate between all their queries.
Cognos Query does not support stored procedure metadata. If you import a source that
contains stored procedures, decide whether to include them in the model. If the model is
intended only for Cognos Query, exclude them from the import process. However, if you want to
develop a model that can evolve and meet new requirements, you may want to import these
objects for future use.
For more information about general importing guidelines, see "Import Everything into the
Model" (p. 10).
Design Queries
When you add business information to an Architect model, you are designing and controlling the
overall structure, data retrieval mechanisms, and appearance of all queries. There are different
approaches to designing a query with different effects on the accessibility and reusability of
query components. You can
• customize the business layer in Architect
• create an SQL query in Architect
• customize the query in Cognos Query
26 Architect ( R )
Chapter 3: Create Models for Cognos Query
If you decide to create and maintain summary calculations in the Architect model, note that
Cognos Query supports only the following summary functions:
• Maximum for numeric and character data
• Minimum for numeric and character data
• Average for numeric data
• Total for numeric data
• Count for numeric, character, and date data
You must store the calculated attribute in the appropriate entity in the business layer. At run
time, the Auto component directs the Cognos Query server to associate the summary operation
with the entity that the calculated attribute resides in.
Cognos Query also supports calculations that contain more than one summary function. The
following is an example of a calculation that contains a Total and an Average summary function:
Total([OrderDetail.Quantity])/Avg([OrderDetail.Quantity])
However, Cognos Query currently does not support calculations that contain nested or
accumulative summary functions. The following is an example of a nested summary function:
Avg(Total([OrderDetail.Quantity]))
Example
The following query does not contain a summary column. Therefore, the query contains only
detailed information, which is not grouped.
28 Architect ( R )
Chapter 3: Create Models for Cognos Query
Here is the same query with a summary column that calculates Number of Orders. To create the
summary column, the following calculated attribute was created in the Architect model and
added to the OrderDetail entity:
Number of Orders = count([OrderDetail.OrderDetailCode])
Notice that the resulting query is grouped according to the information in OrderDetailCode, and
that the information in Number of Orders is associated with the information in OrderDetailCode.
Here is the same query again, but with row-level summary information that was defined in
Cognos Query. To create the row-level summary, a Count summary was applied to the
OrderDetailCode column (Summarize command on the Design page).
Notice that the query contains detailed information, and the number of orders is positioned at
the bottom of the OrderDetailCode column.
To create and maintain prompts in the Architect model, note these consider the following:
• Cognos Query supports value, model, and file prompts.
• To create a model prompt to use in Cognos Query, specify only the Usage Attribute
property.
Specifying the Display Attribute property is not required.
• Use only value set prompts in conjunction with enumeration values.
For more information, see "Categorize Data" (p. 30).
• Cognos Query does not support prompts that are referenced by filters.
• Cognos Query supports only prompts that are associated with an attribute.
If a package contains subject prompts, you will not be able to publish it to Upfront.
Example
To create a query that retrieves sales information for one salesperson, the query designer must
create a filter retrieves information that relates to a salesperson’s name. If the query designer
were to create the filter in Cognos Query, they would need to know the exact spelling of the
salesperson’s name.
Instead, you create a model prompt in Architect that uses the LastName attribute as the source
of filter values. Then you associate the prompt with the LastName attribute in the SalesStaff
entity so that you can publish the filter information with the attribute. When you publish this
information to Upfront, the resulting foundation query contains a list of last names that the query
designer can use to design filters.
When the query designer selects the LastName column and an operator, such as Equals, on the
Filter page, a Select From a List link appears. The link produces a list of each salesperson’s last
name.
Categorize Data
If users want their queries to contain categories or ranges of data that are more meaningful than
the raw data values in the database, create enumeration values and apply them to attributes in
the Architect model. An enumeration value is an alphanumeric text string that replaces a textual
or numeric value when a user runs a query.
30 Architect ( R )
Chapter 3: Create Models for Cognos Query
Example
Users want to retrieve address information about each sales branch. Country information is
stored in the SalesBranch table of the database in the form of a numeric code. For example, the
code for France is 1, Germany is 2, and so on. If users were to directly query the database, they
would get the country codes in their query. To make the country information more meaningful to
the user, you create an enumeration value in the Architect model that associates each numeric
code with a country name.
Then you associate the enumeration value with the CountryCode attribute in the SalesBranch
entity. As a result, when the user runs the query in Cognos Query, the country names that are
defined in the enumeration value automatically replace the numeric codes.
There are a variety of approaches to designing packages for Cognos Query, depending on what
users need:
• To retrieve all information in one query, create a package in Architect containing one subject
that references all the required entities and attributes.
• To retrieve a large amount of information that does not easily fit in one query, provide a
series of related queries that users can navigate between.
To accomplish this task, create a package in Architect containing a group of related
subjects, and define query paths between them.
• To retrieve summary information and drill down to the underlying details, create a package
in Architect that contains two subjects.
One subject contains the summary calculations, and the other subject contains the detail
attributes that the summaries are based on.
32 Architect ( R )
Chapter 3: Create Models for Cognos Query
Example
Inventory staff want to retrieve all the relevant information about products. In the database,
product information is stored in two tables, Product and ProductType. The Product table
contains most of the required information, such as product number, name, production cost, and
introduction date. The product type information resides in the ProductType table. In addition, the
Product table uses ProductType as a lookup table, and there is a one-to-many relationship
between them because each product type has one or more products.
To provide an efficient query that contains all the product information, create entities in the
business layer that represent each table. Then create a subject based on the Product entity, and
add the ProductType attribute from the ProductType entity.
When a user runs the query in Cognos Query, they retrieve all the product information in that
one query.
Example
Users want detailed information about each product that the company sells and the orders that
correspond to each product. You want to present this information in two queries. One query
retrieves all the order information, such as the order code, quantity, unit cost, unit price, and unit
sale price. The second query retrieves all the product details, such as number, name, type,
production cost, and date of introduction.
In Architect, you create a package that contains two subjects. One subject is based on a
Product entity, and the other subject is based on an OrderDetails entity. Because these entities
are related to one another in the business layer, a query path is automatically defined between
the subjects in the package.
When the user runs the Product query in Cognos Query, they retrieve all the detailed product
information. In addition, the query contains query links, which the user uses to navigate to the
related ordering information.
By clicking the query link in row 1, the information in the OrderDetail query is filtered by the
value in the ProductNumber column. ProductNumber is the key used to form a relationship
between the underlying Product and OrderDetail entities in the Architect model. As a result, the
query links in Cognos Query follow the same criteria when forming a filtered relationship
between two queries.
34 Architect ( R )
Chapter 3: Create Models for Cognos Query
Example
Sales managers want to research sales profits, production costs, and revenue information. They
also want to drill down to the underlying sales data on which these calculations are based. To
fulfill this requirement, you must create a detail query and a summary query that sales
managers can navigate between.
Most of the sales and order information is represented by an OrderHeader entity in the Architect
model. You add additional attributes to the OrderHeader entity that calculate gross profit, actual
revenue, planned revenue, and product cost. Then you create a package that contains two
subjects. The first subject is based on the OrderHeader entity and contains subject attributes
that reference the detailed information. The second subject is also based on the OrderHeader
entity. However, it contains subject items that reference the calculated attributes you created.
Both subjects also contain a reference to the key for the OrderHeader entity. Finally, you define
the query path between the two subjects based on the key.
When a sales manager runs the summary query, they are presented with all the calculated
sales information. To drill down to the underlying data, they can click the appropriate query link
in the OrderDetail column. The link takes them to the corresponding information in the detail
query.
36 Architect ( R )
Chapter 4: Create Models for Impromptu
To create an Architect model for Impromptu administrators, there are specific modeling
guidelines you must follow. For information about general modeling guidelines, see "Modeling
Guidelines" (p. 7).
Import Metadata
To create catalogs for Impromptu, you must first import the required metadata source into the
Architect model. For Impromptu, the metadata source may be an existing catalog, or it may be a
new metadata source, such as a relational database. If it is an existing catalog, a lot of the
modeling work may already be done. If it is a new metadata source, you must complete all the
modeling stages before you can export a usable Impromptu catalog.
Impromptu cannot retrieve information in a report that spans more than one database. However,
you can import more than one data source into an Architect model and create cross-database
queries in other Cognos query and reporting products. To create successful catalogs, you must
ensure that the packages you create for Impromptu contain metadata from only one data
source. For more information, see "Export Packages to Impromptu" (p. 43).
For information about general importing guidelines, see "Import Everything into the
Model" (p. 10).
38 Architect ( R )
Chapter 4: Create Models for Impromptu
Define Relationships
Architect and Impromptu have different naming conventions for joins and relationships. To add
relationships in Architect, you must understand both systems. For more information about joins
and relationships in Architect, see "Include or Exclude NULL Values in a Report" (p. 15).
Impromptu uses these types of joins:
• equi-joins
An equi-join retrieves all the rows from one table that have matching rows in another table.
The value in the first column of the equi-join is equal to the value in the second column of
the equi-join.
• non-equi-join
A non-equi-join retrieves all the rows from one table that meet the criteria in another table.
By default, Impromptu joins tables with a non-equi-join. For example, you can use the not
equal operator (<>) to list the active accounts that have not purchased a product.
• outer joins
A full outer join causes data to be retrieved from both tables even if there are no matching
rows between them. A right outer join causes all data to be retrieved from the right table,
even if there are no matching rows in the left table. A left outer join causes all data to be
retrieved from the left table, even if there are no matching rows in the right table. For
examples, see Mastering Impromptu.
The following chart shows how joins in Impromptu relate to joins and relationships in Architect.
Example
In Architect, you create a join between a Product table and a ProductType table. When you open
the property sheet for that join, you can see the cardinality and which columns you used to
create the association.
When you export a package that contains the corresponding subjects and query paths to an
Impromptu catalog, the join information is also exported. To see the join information in
Impromptu, open the Join dialog box (Join command in the Catalog menu). Notice that the join
information is very similar.
40 Architect ( R )
Chapter 4: Create Models for Impromptu
42 Architect ( R )
Chapter 4: Create Models for Impromptu
Example
You want to create an Impromptu report that contains a list of all products returned because the
customer was not satisfied. Product return information exists in three tables in the GO Sales
database: Product, ReturnReason, and ReturnedItem. To create a catalog from which the report
will run, you first create a package in Architect. Because you intend to use the catalog for many
different types of reports, you decide to include all the subjects that correspond to the GO Sales
database in the package. You also include a subject filter that forces the query to return only a
list of products returned for unsatisfactory reasons.
After you export the package to an Impromptu read-write catalog, the Impromptu administrator
can verify the contents of the catalog by looking at the available folders. Notice that all the
subjects in the package are represented as folders in the Impromptu catalog, and the filter is
available for the Impromptu administrator to apply to a report. The Impromptu administrator now
has all the required catalog metadata to design the required report.
44 Architect ( R )
Chapter 4: Create Models for Impromptu
When a user runs the report in Impromptu, they see a list of all the unsatisfactory products that
customers returned.
46 Architect ( R )
Chapter 5: Create Models for PowerPlay Transformer
To create an Architect model for Transformer modelers, there are specific modeling guidelines
that you should follow. For information about general modeling guidelines, see "Modeling
Guidelines" (p. 7).
48 Architect ( R )
Chapter 5: Create Models for PowerPlay Transformer
When you set the usage for an attribute in your Architect model, you provide information for
Transformer about the association role that the attribute will have in the Transformer model. You
can apply more than one usage to an attribute.
If you do not specify a usage for an attribute, Transformer establishes association roles based
on a predetermined set of rules. This may result in Transformer selecting attributes that do not
suit your needs.
If you set two attributes with the same usage, Transformer picks the first attribute for any role
association that has only one value. This does not apply to measures.
The relationship between the usage settings in Architect and their association roles in
Transformer are as follows.
Steps:
1. In the Architect Business Layer, open the property sheet for the attribute that is the
candidate measure.
2. Click the Usage tab, and select Performance Indicator.
3. Add the attribute to a Transformer package.
4. Open the package in Transformer. The Metadata Explorer shows the candidate measure,
which you can select to be a measure in Transformer.
50 Architect (R)
Chapter 5: Create Models for PowerPlay Transformer
Normalize Entities
If you create an Architect model by importing metadata from a star schema database, you can
easily identify the measures and the number of dimensions. However, you must establish the
number of levels in each dimension.
Since an entity is equivalent to a level in Transformer, a standard star schema would produce a
model that has many dimensions, each with one level.
The Normalize Hierarchical Entity Wizard in Architect allows you to take a star schema
dimension table and divide it into a hierarchy that Transformer can interpret as levels.
Normalizing an entity in the Architect business layer does not affect the physical structure of the
underlying database table.
You must normalize entities whenever you use a star schema in order to have any depth in the
resulting Transformer model.
Using the Normalize Hierarchical Entity Wizard enables Transformer to generate the most
efficient SQL queries possible to create dimensions, levels, and roll up measures.
While you normalize, keep the entities that contain the measures open in Architect’s Model
Explorer. That way, you can see which column contains the right information to connect the leaf
level in the dimension to the table containing the measures. This is especially important where
you have more than one fact table or are using relational sources.
For more information about normalizing entities, see the Architect User Guide.
Design Filters
Filter Your Architect Data Source in Transformer
You can create different types of filters with different subjects in your Architect model and in
Transformer. Each type has different implications for your Transformer data sources.
52 Architect (R)
Chapter 5: Create Models for PowerPlay Transformer
5. In the left pane of the expression editor, expand the Columns, Functions, and Value folders
as needed, select each parameter you want to use, and click the arrow to insert the
parameter into the calculation expression (right pane of the editor).
6. When the expression is complete, click OK.
54 Architect (R)
Index
A calculations (cont'd)
guidelines, 12, 27, 41
Access Manager Administration queries in Cognos Query, 27
setting security for Architect, 21 reports in Impromptu, 41
access privileges row-level summary, 28
Architect modelers, 21 simple, 27
report and query users, 22 storing in entities, 12
administrative access summary, 27
Architect models, 21 cardinality, 15, 49
aggregate calculations modifying in the business layer, 15
creating in Architect, 27 modifying in the data access layer, 9
creating in Cognos Query, 28 catalogs
alternate drill-down paths derived from packages, 37
creating, 51 importing, 38
Architect, 5 importing security, 42
configuring, 21 Cognos Query
database objects, 39 modeling guidelines, 25
using with Cognos Query, 25 column-level security
using with Impromptu, 37 setting, 22
using with Transformer, 47 user classes, 22
Architect modelers columns
security settings, 21 adding, 9
Architect models deleting, 9
adding security, 20 moving between tables, 9
administrating, 21 combining
delivering to users, 20 entities into one subject, 32
registering, 21 tables, 9, 14
Architect objects, 47 vertically partitioned tables, 14
attributes configuring
calculated, defining, 52 authentication sources, 21, 36
creating calculations, 12 contacting
defining, 49 Customer Support, 5
defining calculated, 52 containment relationships
deleting, 12 creating, 18
measures, 49 copyright, ii
usage, 48 cross-database joins automatically, 10
authentication sources Customer Support
configuring, 21, 36, 41, 53 contacting, 5
using, 21 customizing models
guidelines, 11
B
business information D
adding to models, 11, 26, 39, 48 data
business layer, 7 categorizing, 30
customizing, 11, 26, 39, 48 filtering, 19, 22, 29
deleting objects, 12, 13 restricting access, 19
security, 22 data access layer, 7
verifying, 9 creating SQL queries, 26
deleting objects, 9
C modifying objects, 9
security, 22
calculated verifying, 9
attributes, 52 data retrieval privileges
calculated attributes, defining, 52 users, 22
calculations data sources
aggregates, 27 Architect, 48
creating Architect, 27 defining connections, 21
creating in Architect, 27
56 Architect (R)
Index
T
tables
combining, 9
deleting, 9
modifying weight, 18, 19
vertically partitioned, 14
Transformer
data sources, 47
dimensions, 47
levels, 47
measures, 47
modeling guidelines, 47
U
Unified Modeling Language
cardinality in Architect, 15
Upfront
publishing models, 36
user access
Architect models, 22
user classes
associating filters, 19
creating, 21
importing, 21
security settings, 22
users
creating, 21
V
verification process, 9
58 Architect (R)