Thursday, September 12, 2013

How do I get help from IBM on Clarity or TM1?

A common question we receive is, "How can I get help from IBM on Clarity or TM1?...and what do they cover?".  Companies current on their support contracts with IBM are entitled to support from them. The support is limited to making sure the base product works as expected. It does not include any custom development, templates or reports. IBM will be able to make sure you can connect to Clarity from Clarity Studio, but they will not help you build that new Balance Sheet or Profit and Loss report.

If there are challenges though, it's nice get their help. They are smart folks trying to help people. From the IBM home page, under the 'Support and downloads' menu, there is a menu item for 'PMRs and service requests'. This is the codeword for support. Going to this area, you will be able to enter a support ticket and get their help. You can also track status of any open support tickets here too.

Here is a link to the Service requests home page.



Updating Clarity Software For Free


Did you know that you are entitled to all Clarity software updates from IBM, as long as you are current on your maintenance contract?  Bug fixes and enhancements are released periodically as incremental updates. Many fixes improve stability and small annoying challenges for which folks commonly implement workarounds. At the time of this writing, the current version of Clarity is 7.2.1FP2. If you are on something older, you may be able to improve performance, stability and features by updating your server software.

Here is a link to the download site for the Clarity 7.2.1FP2 software. 

Most of the time internal Information Technology groups can perform the update without assistance by following the instructions provided. For folks wanting some support or assistance, Clear Insight (http://www.clearinsight.ca) is available to help. 



Filtering by Measures in TM1

Overview
When building applications on Cognos TM1, there is often a need to filter something by data in another cube for a user. In regular database applications, this would some form of a JOIN clause (INNER, LEFT OUTER, RIGHT OUTER). TM1 does not have those constructs, but not to worry. This can be done just as easily. This could be used when building a subset, or when querying a cube or dimension. In this example, I will start with a basic MDX subset definition and add pieces to it until it will serve as the MDX for building a sorted subset, filtered by data in a separate cube.

For this example, let's assume the following setup
*  We have a cube called c.Account.Balance with four dimensions (d.Account, d.Measure, d.Time, d.Year). *  This cube holds financial accounting information for a small company
*  d.Account containts an income statement chart of accounts
*  d.Measure has only one element called Amount
*  d.Time has 12 elements. One for each month Jan...Dec.
*  d.Year has 3 elements. One for each fiscal year of interest, Y2013, Y2014, Y2015
* We want a list of all accounts with a January, Y2014 balance greater than $1000

Step 1 - Build a simple dimension subset of all members

{ TM1SUBSETALL( [d.Account] ) }

Step 2 - Restrict the subset to only leaf members. These are also known as N-level or bottom level members.

{ TM1FILTERBYLEVEL( { TM1SUBSETALL( [d.Account] ) } ,0) }

Step 3 - Use the MDX FILTER function to restrict...or join... the dataset. Note how we do NOT need to specify anything for the d.Account member. TM1 is smart enough to know we are building a set of accounts from a cube filter.

{ FILTER( 
  { TM1FILTERBYLEVEL( { TM1SUBSETALL( [d.Account] ) } ,0) }
 ,[c.Account.Balance].( [d.Measure].[Amount], [d.Time].[Jan], [d.Year].[Y2014]) > 1000)

Step 4 - Add sorting with the MDX ORDER function. 

{ORDER(
 { FILTER(
    { TM1FILTERBYLEVEL( { TM1SUBSETALL( [d.Account] ) } ,0) }
  ,[c.Account.Balance].( [d.Measure].[Amount], [d.Time].[Jan], [d.Year].[Y2014]) > 1000)
 , [d.Account] ASC ) }

Done!

Now we have build an MDX statement to give us a list of accounts with a January Y2014 balance greater than $1000, sorted by the Account name.

Thursday, November 22, 2012

I get it! Twitter is a Database Index! ...until I find a better analogy

Do You Use Twitter? What Is It? What Is It For?

I've recently started using Twitter (@bobgillvan) to try and learn what all the fuss is about. Until recently, all I've known about twitter is that all my TV shows have weird hashtags in the corner and that has something to do with Twitter. When I started asking friends, "Do you use Twitter? What is it for?" I got a variety of answers...

    "I use it to stay in touch with other moms"
    "I use it to promote my business"
    "I use it to get news"

This didn't really help me. I still wasn't sure what all the fuss was about. I use Facebook regularly and I like the features it has... but Twitter was still confusing.

Twitter As A Stream of Conversations

Someone said to me, "Twitter is all about a stream of conversations". This helped. I started thinking of a large convention hall. I visualized 1000 people at some kind of convention all in the same room. I started thinking about what that would look like and how people would be acting. We've all been in situations with large groups of people, so I was able to just recall my own experiences in large gatherings. If there was a presentation, most, folks would be quiet and listening to one speaker. Without a presentation, it's just a bunch of people in a room. Conversations come up very naturally, for a variety of reasons. There is usually some kind of shared interest that brought these people to the same room in the first place.

Let's explore an example ...a Snowboard Show. It's a trade show where everyone related to skiing and snowboarding would come to get some deals on new gear or lift passes, and generally see what's new. If I walked around, I would pass by and overhear many conversations. People talking about different products, what they want to have for lunch, where they parked, where they want to go next, what they thought of the last presentation, etc. At any point, if I hear something interesting, I'll probably stop and listen for a while. This may sound like a simple point, but I think it's important. As people join a conversation, they tend to join as a listener first. Maybe the conversation is between a salesperson and potential buyer. The buyer is asking questions and the salesperson is trying to answer them. I don't really have a question, but I'm interested to hear the exchange. There is a natural limit to the number of people who can listen to the conversation. As people are further away, they can't hear anyone speaking. Furthermore, as more people talk, its hard to hear each person. It just sounds like noise.

At this point, I started feeling closer to understanding what all the fuss is about. Twitter is like a big room where we can engage in new conversations in a natural way... listening first, then slowly becoming more, or less, engaged depending on what we choose. So, it's really just a stream of conversations that we can all participate in, right? Well, not really.

Twitter As A Database Index

When chatting about my findings (in person) with a friend, they told me I was still missing something important. I didn't capture the network aspect of it. Twitter is not just a bunch of conversations, there are links or connections to make it easier. Now that I was confused again, I asked more questions to try and understand what he meant. I don't need to listen to all the conversations on Twitter. I would lose my job and have to sift through mountains of garbage to find a small piece of useful information. Google already uses the same principle to give great search results. Google is based on the PageRank algorithm. Simply put, if many websites point to www.blah.com for XYZ, then www.blah.com is the best resource if someone searches for XYZ. They've made it smarter because now they know what other people have choosen, given a previous search. Over time, the combination will give the 'best' result for a given search.

That's when it dawned on me that Twitter is a database index. Twitter let's my network choose the best items for my review. It's like a natural search filter. I don't see everything in my Twitter feed, just the stuff that has made it into my network. Google indexes websites using references. Twitter indexes conversations using references. For now, I'll try this analogy to see if it works. Does anyone else have an analogy that might help me understand Twitter? Now that I'm using it, my purpose of finding a good analogy is not for my own education. I want to be able to concisely explain Twitter when someone asks me, "Do you use it? What is it? What is it for?"