Inter-cube Feeders

In my previous month’s article on “Managing the Art of Feeders”, we reviewed the concept of using Skipcheck and Feeder functionality in standard TM1 rules. In this month’s article, we will discuss further enhancing a developer’s capability around writing rules within TM1 and review the concept of inter-cube feeders. While much of the functionality and capability found within TM1 rules is necessary to provide the desired end user result set, that does not mean that a developer should simple assume that all functionality is created equal. Inter-cube feeders, while often necessary, can have a significant impact on overall performance which should be taken into consideration before inclusion in a rule. Read more

TM1 Cube SolutionsWhen you first begin to use TM1, especially if you came from the EP world as I did, you can quickly become enamored with how well TM1 can handle large cubes with ease. You can create multiple hierarchies within a cube and within those hierarchies TM1’s sparse consolidation algorithm aggregates values at light speed. You can reach out to virtually any data source with a Turbo Integrator (TI) process and create a dimension, create and populate a cube with data, or a myriad of other tasks only limited by the developer’s imagination. The challenge comes when you need to write rules governing more complex calculations or movement of data between cubes. No intuitive D-Links or BiF’s here. Everything must be coded, and getting the calculations to work properly requires mastering the art of feeders. Read more

One of the features of IBM SPSS Modeler 14.1 is that it can now directly integrate with your IBM Cognos BI environment to leverage the power of predictive analytics. If you are new to IBM SPSS then feel free to reference our previous newsletter article showcasing all the components of IBM SPSS. This month’s tech tip will detail how IBM SPS Modeler integration is accomplished.

Before we get started with the tech tip, let’s review SPSS Modeler architecture from a high level.

1. Use an IBM Cognos BI source node to read data directly from a Cognos 8/10 Framework Manager package. This allows analysts to dive into the data mining process using friendly IBM Cognos package items rather than use underlying database tables that they may or may not be intimately familiar with.

2. Once the data mining process is completed, export the results back to a database table and create a Framework Manager package to be published on the IBM Cognos server for additional analysis and reporting.

Importing from Cognos Packages

1. Launch IBM SPSS Modeler and create a new stream.

2. From the Sources node tab, drag and drop the IBM Cognos BI node into the stream. Right click on the node and choose Edit.

3. Click on Edit within the Connection box to enter the Cognos connection information. Click OK to establish the connection.

4. Enter the following:

  •  Cognos server URL: Enter the dispatcher URL.
  •  Mode: Choose Set Credentials to log in with Cognos username and password. Choose Use Anonymous Connection to log in as anonymous user (only if anonymous login is enabled on the Cognos side).
  •  Namespace: Enter the namespace used to authenticate the Cognos user.
  • User name/Password: Cognos log in credential.

5. Click on Edit within the Package box to select a Cognos package.

6. Once a package is chosen, the content will show on the left hand side of the dialog. Choose one or multiple items to bring them to the right side. All chosen items will be imported as columns to SPSS.

Exporting Cognos Packages

1. From the Export node tab, drag and drop the IBM Cognos BI Export node into the stream.

2. Right click on the node and choose Edit.

3. Click on Edit within the Connection box to enter the Cognos connection information. This is similar to what you have entered in the Cognos BI source node.

4. Once the connection is established, click on the Refresh button next to the Data Source to choose a data source where the information will be written.

5. Click on Edit next to the Folder box to choose a location where the package will be stored.

6. Enter a package name and choose to publish it now or create an action script to publish it later.

7. On the left side, choose ODBC connection to enter the ODBC connection info to the database.

8. Click on the drop down arrow next to the data source box to select or create the database connection. This connection must point to the same data source that you selected in the Cognos connection tab. If the connection has not already been created, the user needs to create it in ODBC Data Source Administrator on the Windows machine. If you are connecting through an SPSS server, the data connection needs to be created on the SPSS server.

9. Enter the table name and select how you would like the information to be added to the table. Edit additional information as needed.

10. Click Run to publish the package in Cognos server.

For any additional questions regarding SPSS Modeler and its implementation, please Contact Us.

 

 

 

 

 

 

 

With the introduction of Active Report, IBM Cognos 10 report designers now have the ability to quickly and effectively create dynamic, powerful, interactive, self-contained reports available offline and on the go, which are highly sought after by report consumers.

Active Report’s intuitive, drag and drop interface makes it incredibly easy to add interactivity and functionality to reports, including variable text items, tab controls, and data decks.

To illustrate the ease of use, this tutorial will walk you through the steps for creating a simple report containing a data deck in Active Report. Data decks allow report developers to add modern and visually appealing animations to reports. Using master-detail relationships, a variety of data containers can be inserted into a deck and updated to show only values selected in an Active Report control.  Read more

The Ironside Group invites you to reduce the burden on your IT and accelerate your time to value by hosting your IBM Cognos Business Analytics application on our cloud computing environment.

When an organization begins to embark upon a Business Analytics initiative, they face several challenges including budget, lack of experienced resources and negotiations between the line of business and an overburdened IT department. In an effort to bridge the gap between line of business and IT, reduce the total cost of ownership and accelerate the time to value, The Ironside Group now offers a scalable, secure and reliable enterprise class cloud computing environment. Read more

Often times developers will get a request to create several different variations of a single report. While this can be done with user prompting or even multiple versions of a report, another option would be to create tabs within a report which would allow for the user to easily switch between variations. In this month’s tech tip we’ll go over how to create this using drill-throughs, a string variable and a conditional block.

The first step is to identify what tabs you’ll want to display. Each one of the tabs will need to be set up individually. In our example (sample included) we’ll use the seven days of the week.

Read more

In September, IBM introduced Cognos version 10.1.1, the latest update to Cognos 10. Among the significant enhancements in the software is the ability to Dynamic Query Mode with relational databases.

Dynamic Query Mode (DQM) is an intelligent data caching mechanism which can dramatically improve the performance of OLAP style queries. With the prior version, DQM supported cubes built from TM1, Essbase and SAP BW. With version 10.1.1, IBM Cognos adds support for Microsoft SQL Server Analysis cubes, and the most common relational databases, specifically DB2, Netezza, SQL Server, Teradata and Oracle. Read more

Editor’s Note:  This blog was originally posted on September 27, 2011, we recently reviewed and updated on October 5, 2020.  Over past major releases, Cognos has provided a couple predefined JavaScript library to interactive with report objects especially prompt objects. We find that traditional web standard JavaScript is still very useful due to the effort of migrating to IBM specific JavaScript library and flexibility to develop code at report level. Going forward we would encourage you to consider using the new custom controls provided by IBM Cognos Analtyics family product for new JavaScript application development. The new custom controls support the full interactive mode, provide much better end user experiences and support HTML5 standard. Some commonly seeded functionalities such as dynamic column sorting, filters are now built-in via full interactive viewer, and JavaScript is no longer needed. Read more here.

Note: 

  • All information and examples are specifically designed for IBM Cognos Analytics Reporting tool based reports. It is assumed that the reader is familiar with Cognos Report Studio. 

  • For more information about JavaScript and the HTML language basics please go to http://www.w3schools.com and other available web based tutorials. 

  • Code development environment: IBM Cognos Analytics 11.1.x

5 – Reaching a Prompt Element

Obviously, in order to use JavaScript to modify or manipulate an element on a web page, you first need to reach or find the element you want to edit. As I mentioned in section 3 in the previous article, Cognos prompt pages and report pages are dynamically generated web pages. Prompts placed in Cognos reports are designed to take user inputs and submit requests to a web server. Like many other web pages a <Form> element is embedded on the page in order to accept user’s input. As you can imagine, all prompts elements are tied to this intake form. This allows us to easily access any prompt element once we find the form.

Here is the typical call you can use in JavaScript to find the “invisible” form in a Cognos report:

var fW = getFormWarpRequest(); 

Depending on the type of the prompt you are dealing with, you can get the prompt object using the following name convention:

Text Edit Box

fw._textEditBox<prompt name>

List Box

fw._oLstChoices<prompt name>

Drop Down List

fw._oLstChoices<prompt name>

Radio Button Group

fw._oLstChoices<prompt name>

Check Box Group

fw._oLstChoices<prompt name>

Date Edit Box

fw.txtDate<prompt name>

Let’s apply this logic to the sample report developed in the Part 1 of the previous article.

Steps:

  • Open the previously saved sample report “mylist” in Reporting Tool. If you haven’t created it yet or lost it check IBM Cognos and JavaScript- Part I, Section 3 to create it. 
  • Go to Prompt Pages -> Prompt Page 1. 
  • Click on drop down prompt P1. On the properties panel under Miscellaneous->Name, give this prompt object a name such as “mydropdown”.
  • Double click on the HTML item, added in the previous steps to create the report, next to report title. Change the JavaScript code to: 

<script LANGUAGE=”JavaScript”> 

<!– 

// call Cognos built-in function to get the form element 

var fw = getFormWarpRequest(); 

//get the drop down element 

var dropdown=fw._oLstChoicesmydropdown; 

//next will loop through all the options of the drodown lis 

for (var i=0; i <dropdown.options.length; i++) 

if (i >1) //skip the first two default options Cognos generated 

alert (dropdown.options.text) ; //call alert function to display the text value of the option 

//–> 

</script> 

  • Move the HTML Item next to drop down prompt. Your report should look like below: 
  • Save the report. 
  • Run it from Reporting tool. You will see popup windows shown 5 times. Each one displays the text value of each option of the dropdown box. 

6 – Reaching a Report Data Element

An IBM Cognos report page is really just a web page that dynamically displays report content based on data query results. The most frequently used data containers are lists and crosstabs. How do I access a list/crosstab then? Is that even possible? Fortunately the answer is yes. In section 3 of the last article, we examined the report page structure. A list or crosstab on report page is just a table element, styled and formatted according to Cognos global style sheets.

Steps:

  • Open the previous saved sample report “mylist”  
  • Go to Report Pages -> Report Page 1  
  • Double click on the HTML Item, replace the JavaScript code with the following: 

<script language=”JavaScript” type=”text/javascript”> 

//<!– 

var tbls = document.getElementsByTagName(“TABLE”)    // first get all the table objects on the page 

var tblCnt = tbls.length;        // determine the number of tables 

for(var t=0; t<tblCnt; t++) //loop through each table object 

var tbl = tbls.item(t);            // define the current table 

if (tbl.className == “ls”) //this is our list table 

var cell= tbl.rows(0).cells(0); // reach the first cell of the first row of the list table 

alert( cell.firstChild.innerHTML); //display the first cell content/text 

//–> 

</script> 

  • Move the HTML Item after the list. Your report should look like below:
    • Save the report. 
    • Run it from Reporting tool. You will see a popup window that displays the first column header text “Product line”: 

    In the next couple steps, we are going to really start to enhance the abilities of the tool and modify an element’s attributes on a click event.

    A HTML element may have many attributes:

    • Attributes provide additional information about an element.  
    • Attributes are always specified in the start tag.   
    • Attributes come in name/value pairs like: name=”myname”, value=”code1″   
    • Attribute values should always be enclosed in quotes. Double style quotes are the most common, but single style quotes are also allowed. 

    Below is a list of some attributes that are standard for most HTML elements:

    Event attributes vary for each element, here are some common ones:

    7 – Edit a Prompt Element

    In section 5, we learned how to reach a prompt element using JavaScript. Once you get an object you want to control, it simply becomes a task of modifying the attributes that you wish to alter.

    Let’s take a look at how JavaScript can remove the default style of the dropdown list prompt and add in a custom background color. When the user makes a selection from drop down list JavaScript will check which option the user selected. If Camping Equipment is selected a pop up alert will tell the user which years of data will be included in report.

    Steps:

    • Open the previous saved sample report “mylist”  
    • Go to Prompt Pages -> Prompt Page 1   
    • Double click on HTML Item and update the JavaScript to following: 

    <script LANGUAGE=”JavaScript”> 

    <!– 

    //call cognos built-in function to get the form 

    var fw = getFormWarpRequest(); 

    // reach the dropdown list 

    var dropdown=fw._oLstChoicesmydropdown; 

    //clear the class attribute of the dropdown list 

    dropdown.className=”; 

    dropdown.style.backgroundColor=”#CEECF5″; //set back ground color 

    dropdown.onchange=check; //onchange event call check function 

    function check( ) 

    var idx=dropdown.options.selectedIndex; //check which option is selected 

    if ( dropdown.options.value==”991″ ) //if camping equipment option is selected 

    alert (“Camping Data only includes Year 2009 to Current data”) ; 

    //–> 

    </script> 

    • Save the report. 
    • Run it from Reporting tool. You will notice that the background color of the drop down box is set to light blue, and a message will be popped up only when Camping Equipment selection is selected: 

    8 – Editing a IBM Cognos Report Data Element

    Report data elements such as lists, crosstabs, and charts are different elements on a report page (a web page). Usually they are not tied to a web form as they are results based on user requests. That being said, it may require additional user interface items to be added to the report so that user requests can be processed. In the next demo we will use JavaScript to dynamically show or hide list object data based on a user selection. Custom buttons are added to facilitate the show/hide requests.

    Steps:

    • Open previous saved sample report “mylist”  
    • Go to Report Pages -> Report Page 1.  
    • Drag a chart object from the Insertable Objects pane.  
    • Set the chart to use the same data query that the list uses.   
    • Drag the Revenue data item as Default Measure of the chart.  
    • Drag Product line data item into the Series area.  
    • Save and run the report. You should have both the list and chart shown on the report.
    • Drag a new HTML Item before the list table, and type in the following : 

       <input type=”button” value=”Show Data Table” onclick=”showhide()” id=”showbutton” style=”display: “> 

    <input type=”button” value=”Hide Data Table” onclick=”showhide()” id=”hidebutton” style=”display: none”> 

    • Double click on the other HTML Item added in the previous step and update the JavaScript to the following: 

    <script language=”JavaScript” type=”text/javascript”> 

    //<!– 

    var showbt=document.getElementById(“showbutton”); // get show button element 

    var hidebt=document.getElementById(“hidebutton”); //get hide button element 

    var tbls = document.getElementsByTagName(“TABLE”)    // get all the tables on the page 

    var mylist; 

    var tblCnt = tbls.length;        // determine the number of tables 

    for(var t=0; t<tblCnt; t++) 

    {                // check each table 

    var tbl = tbls.item(t);            // define the current table 

    if (tbl.className == “ls”) // this is the list table 

    mylist=tbls; 

    mylist.style.display=”none”; //set it to be hidden 

    //dynamically show or hide list table, chart 

    function showhide() 

    if ( mylist.style.display==”none”) //if list is currently hidden 

    mylist.style.display=””; //set list to be shown 

    showbt.style.display=”none”; // hide “Show” button 

    hidebt.style.display=””; //show “Hide” button 

    Else //else if list is currently shown 

    mylist.style.display=”none”; //set list to be hidden 

    showbt.style.display=””; // make “Show” button displayed 

    hidebt.style.display=”none”; // make “Hide” button to be hidden 

    //–> 

    </script> 

    Your report should resemble the image below:

    • Save and run the report again. By default the list data table is hidden.
       
    • Click on the Show Data Table button, the list table will immediately be displayed. One of the benefits of using JavaScript here is that the report doesn’t have to re-run to dynamically perform the show or hide object action. Both list and chart are generated at report initial run. JavaScript simply shows or hides the list and chart at runtime. 

    Summary

    Congratulations! Over the past few hours you have learned some fundamental JavaScript coding practices in Reporting tool. As you can see, it is not nearly as difficult as you may have feared. The business value of using JavaScript can plainly be seen in the above samples and is really limited to the user’s imagination. With a few lines of JavaScript code in Report, you can enhance the report’s user interface, usability, performance, dynamic interaction capabilities and many other options.

    While JavaScript is an extremely useful tool, it is not recommended that IBM Cognos developers use JavaScript too heavily. We recommend that you think carefully before you actually start to develop and embed JavaScript in your reports. The primary concern is around the maintenance, upgrade and future sustainability. IBM Cognos web page structures and APIs have been known to change over the course of product releases, and you may have to upgrade JavaScript code after Cognos upgrades. For advice and best practices please feel free to contact us.

    A Cognos report is only as good as its data. How that data is organized will affect performance, accuracy, and ease of authoring. There is no single solution — before you get can your data right, you need to know how it is going to be used.

    Know Your Requirements

    In an ideal world, databases would produce the data for any kind of report with equal speed and ease. Unfortunately, this is not the case. Business Intelligence queries, in particular, frequently push the envelope of what databases can be expected to deliver. In order to keep performance acceptable, design compromises need to be made. Usually, this means making certain types of queries faster at the cost of making all other queries slower. If the faster queries are the ones the users care about, then the compromise will be a success. Read more

    Since IBM Cognos 10 was released last winter, upgrading has become a very hot topic among the Cognos user community. Why upgrade? There are many reasons: new features and functionalities, easier to use, better performance and more. Cognos 10 will not only serve your business better but also deliver a revolutionary new experience as well as expand traditional business intelligence with planning, scenario modeling, real-time monitoring and predictive analytics in one place. Here are some eye-catching new features: Read more