IBM Cognos has a special name for a Framework Manager model that can absorb changes without affecting the reports already written and published to the Cognos Connection web portal. They are called “Durable Models” and by following a few best practices you can create (or update) FM models that empower your reporting authors to spend their time on creating new analysis, rather than retrofitting and regression testing. The trick is to take advantage of the Design Language feature of Framework Manager and enable a project-level property called “Use Design Local for Reference”. In my experience this feature is very underutilized, it should be leveraged for any new model you create and has been available since the release of Cognos 10 but I seldom see it used.
Take for example this common scenario: your report authors have been using a field “CUSTOMER_DESC” named directly after the database column for months and have already built reports referencing that Data Item. You then receive a request to update all reports to use the more business-friendly term “Billed Customer Description”. Without a Design Language enabled you would have to check for Report Dependencies in FM, then manually update the effected reports. Conversely, with proper use of the Design Language feature, you can update this column in the FM and have the change flow seamlessly to the reporting layer.
To use this feature you must select a language as the design language at the time you create your new Framework Manager project. This should be a language that you will not need in the future, as it will function as the abstraction layer for the rest of the model and won’t be available to be used for internationalization purposes. For example you can choose English/New Zealand or English/Zimbabwe as most BI applications will not provide separate localization strings for these esoteric dialects.
Step 1) Choose a Design Language at time of FM project creation. The example below shows the selection of the English (New Zealand) language.
NOTE: You can only choose the Design Language when you initially create the project in Framework Manager. In order to change your Design Language after the fact you will need to create a new project, choose the Design Language, and import your model into the newly created project.
Step 2) Set your project language(s) in the Project > Languages > Define Languages menu in Framework Manager to open the language selection dialog.
Step 3) Click any of the available languages on left and use the green arrow to move English (and any other languages you intend to use) to the Project languages on right. Set your active language to your primary language, most likely English. Your Design Language should be different than your Active language as shown in the below screenshot where English is the Active language, but English (Zimbabwe) is the Design Language.
Step 4) Set “Use Design Local for Reference ID” to True on the properties of the Project item in the Project Viewer. Make sure the Project level item is selected in the Project Viewer. For example, ‘New Durable Model’ in the screenshot shown below:
Keep in mind:
- FM modelers must still be aware of business terminology. Changing column headers on a widely used report may cause user confusion, so communicate changes well in advance and be open to creating “legacy” reports or Report Views to preserve terms that users are comfortable with.
- Once you set the Design Language name for an object you cannot change it, so choose meaningful names based on database structures since the business friendly names will be presented from the base language.
- This is a method for re-naming objects only, not re-structuring your Fact and Dimension tables.
- Further reading:
Let Axian come to the rescue and help define your BI strategy, develop a roadmap, work with your business community to identify the next project, and provide clarity and direction to a daunting task. For more details about Axian, Inc. and the Business Intelligence practice click here to view our portfolio or email us directly to setup a meeting.