Disabling interactivity on a per control basis in Cognos 11

One of the main selling points of the 11.x release has been one of the more frustrating features. There are times where you may want a standard interactive report, but one of the controls should be absolutely static.

Fortunately there’s a (somewhat) easy way to disable the interactivity on any control you want. If you examine the HTML of a report, you’ll see something like this:

lots of lovely HTML to help keep you warm over the cold winter.

See that roid=”i160″? That’s the attribute that tells Cognos the DOM Object is interactive! Simply remove that and the user won’t be able to do anything with it.

Of course it’s easier said than done. There’s no way in Report Studio to tell Cognos NOT to generate a specific attribute. Instead we have to use JavaScript.

The JavaScript itself is fairly easy. We call the control passing the name of the object we want to deinteractivify, and it will find all elements that have the roid attribute. Removing them all in one painless snip.

It’s important to note that this will not work on the 11.1 JavaScript graphs, only on the server rendered one.

The control configuration is designed to accept a single object name, or an array of them. Use

{
    "controlNames": [
        "myList",
        "myGraph"
    ]
}

Report XML: removeInteractivityReport.txt (156 downloads)
JavaScript: removeInteractivity.js (169 downloads)

RFE Roundup – January 2019

As part of my monthly Request For Enhancement Roundup list, I present January 2019. This is the third month, please look at December’s list for more.

1. Cascade Prompts on filters on Dashboards like reports
Uncommitted Candidate with 24 votes.

A straightforward mechanism to creating cascading prompts would improve the usability of dashboards substantially. I feel like the prompting side needs an overhaul.

2. Share pins : to be able to create a pin library for certain target groups
Uncommitted Candidate with 9 votes.

My biggest concern with adhoc reports has always been the same, most users simply want to be given the data they need. This RFE would make a nice stopgap, it would allow a user to create a generic library of pins for the end users, thus giving the end users the data they need in an adhoc environment, without them having to work hard for it.

3. List and Crosstab Visualization Lagging Behind Power BI and Tableau
Submitted with 19 votes

This really speaks for itself. There are a lot of things Cognos struggles with in terms of lists and crosstabs. Embedding a microchart is possible, but it’s clunky and slow. Something built-in would be wonderful. It is possible to make a widget that pulls the data in and builds a modern datatable on the fly, but that wouldn’t work when exporting to PDF.

4. Adding images to reports and dashboards
Submitted with 10 votes

A simple uploader for images! Why can’t we do this? And while we’re at it, let’s do the same thing for JavaScript controls.

5. Make map visualization viewable in PDF format
Submitted with 11 votes

PDF support is pretty limited, but having a report ready visualization that doesn’t export cleanly is a big problem.

6. Allow user to add extra properties in vizualisation (Dashboard)
Submitted with 10 votes

I’ve been struggling a lot of with the dashboard visualizations. A colleague said something along the lines of “Dashboards are great if you’re willing to give up control”. I want to make my bed and eat it too!

An update about Think 2019. I will not be attending this year unfortunately, but my company is planning a major presence at Analytics University. The trend at Think has been to reduce focus on the business analytics sides of things drastically, so it’s just not as important to us as it once was.

Panic! Framework Manager crashed and I lost all my work!

Has this ever happened to you?
BmtActionsHelper on delete

It’s happened to me several times. There was also that one time I worked on a model for hours, and left it for the night. Can you guess which operating system decided to update and restart overnight without warning? It was like a punch to the gut when I realized I lost all that work.

Fortunately, there’s a really easy way to retrieve all that work.

First, don’t panic. In the model folder there are two vitally important files.
framework folder contents

The file session-log.xml is a record of every action you’ve taken while framework is open. Every object you move, every expression you write, every property you change, session-log is watching.

The next time you open Framework Manager, session-log.xml will be renamed session-log-backup.xml, overwriting the old one, and a new blank session-log.xml will be created. Copy that file! If it disappears because FM screws up renaming it, or if you have a brain fart and open the model twice, you’re stuck.

Now that we have a backup of all the work we’ve done, and forgot to save, we can start the reconstruction. Open the Project menu and select “Run Script”
run script

When you press the run button, Framework will perform every action in the list. It pauses on error, allowing you to check what’s going on before proceeding.
run script had an error

Once the script has run it’s course, you can accept the changes, or revert back to the way it was.
run script worked

And there we go. Hours of worked gone and back again.

One last note, it may be worth enabling the auto save from the Project->Options menu item. It makes the entire premise of this article superfluous.