Play around with Map control in Cognos Analytics

There’s been quite a bit of talk recently on the web about the new partnership with MapBox to deliver new map capabilities to Cognos Analytics (and there isn’t much talk about the discontinuation of support for ArcGIS in this new version). I decided to spend a bit more time to learn about the map functionality in this new Cognos version. The best way to get to know something is by doing it. So I cooked up some “real” requirements and tried to build a few dashboards.

The first one, I like to see whether a change in average temperature will affect the number of calls to fix break/leak issues related to water supply piping system, and whether a change in average rainfall will affect number of calls related to sewage/drainage systems. The data should be broken down to suburb and post-code level. Below is what I got:

For the second one, I like to compare the average planned vs actual labour hours spent on maintenance work, and the amount of time field workers spent to get to work location vs the amount of time spent on doing actual maintenance work. The purpose is to see whether there is a difference in remote areas and if it affects planned vs actual ratio. Below is what I got:

Overall, I am impressed with the ease of use, the responsiveness, and the level of interactivity of this new Map control in Dashboard. However, through this exercise, I found there are quite a number of limitations to this new map control:

  • This map control is only available in Dashboard. With Report, and Active Report, a different version of Mapbox control, and older map controls are available. However, they are both a lot less interactive and much more limited in functionality.
  • It only supports X/Y coordinates, thus, if your data is easting/northing, it needs to be converted to X/Y coordinates first.
  • For high-lighting map regions, Australian Postcode is supported and is the lowest level of detail. High-lighting suburbs is not supported, the lowest level of detail is council/city regions and the region names must match with the Mapbox pre-defined list. Thus, some level of data cleansing must be done if the region names in your data doesn't match exactly with the city/region name in this list.
  • It is possible to upload custom maps to MapBox to achieve more refined areas, however, there was an issue with MapBox changing the way to manage Layout ID. The issue is only corrected with newer versions of Cognos (from 11.1.x). Thus, this custom map function doesn’t work with older versions (including v11.0.11 which is bundled with Maximo)


Implement If-Then-Else Logic in WebMethods

Conditional Logic is the most important building block of any software development tool. WebMethods is not a programming language, but since we use it to build integration interface, which is also software, it means we are also programming with it. Writing a simple “If-Then-Else” condition in WebMethod is way too verbose to me though. The official tutorial on SoftwareAG teaches us to implement an if-then-else logic using the BranchSequence, and Map nodes as depicted in the sample below:


My failed attempt to get Maximo to work with Azure SQL database

Recently, I started playing with Azure by attempting to migrate a Maximo instance from my local VM to Azure platform. Although the attempt was a success. I didn’t realize SQL Server and Azure SQL are different databases (or more correctly, two different versions). There were a few issues during the process, but I figured out how to work around them and got Maximo running on Azure VM and Azure SQL. After sharing the result on LinkedIn, there were some comments that Maximo couldn’t be installed on Azure SQL and IBM doesn’t support it, so I spent a bit more time digging and thought I should share the details and some of my opinions on this matter.

First, let us be clear, Azure is a big cloud platform which offers many different services. I’m not a cloud expert, but from what I understand, we are talking about two main services:


Framework Manager crashes when creating Project

I tried to create a new Framework Manager project to build a package which I will join some big Maximo tables (Assets, Workorder etc.) with some general geo/demographical data I pulled from the Web. Framework Manager kept crashing with this annoying error. After some quick search on the web, I realized the issue with FM crashing is not uncommon, and there can be a thousand reasons for that. To be honest, from the perspective of a software developer, most of these are simple and stupid exceptions which should be caught or fixed easily by the Cognos R&D team. Good software should give the end-users useful error messages about what they did wrong. But anyway, this is not another post to complain, just a quick note on another crash scenario so you can avoid:


Display password stored in System Properties


I had to look at an existing interface in production which sends data to an external system. The interface is working well but we don’t have any documentation. I like to use POSTMAN to send some test requests to figure out how the API works. Unfortunately, the API password is kept in a System Properties and is masked and encrypted.


Mess around with Azure: Migrate Maximo to Cloud


Last week, while attending a call to discuss an integration interface between Maximo and an Azure SQL database, the other consultant mentioned a few Azure terms like “blob storage”; I realized I didn’t know anything about Azure despite the fact that the cloud platform has been adopted by the large number of the clients I work with. So today, I decided I should play around a bit with it by trying to migrate a Maximo instance from my local VM to Azure.

Before I go into the technical details, for those of you non-technical readers, I like to sum up the whole experience I had with this platform in one word: magical. That’s it, I went to the website, signed up for a trial account, followed some wizards or clicked on a few buttons or menus that I think were features I need, and boom, I got a running Maximo instance on the cloud in just a few hours. No training, no muss, no fuss, everything just works. Not much else to say. I’m in love now. I think will spend the next couple of weeks, months or even years to learn more about Microsoft stuff.

Convert Australian GDA94 Easting/Northing values to Latitude/Longitude in SQL Server

As I play around with the Cognos Analytics map controls, it appears to me it only understands Latitude/Longitude values, but the sample dataset I have is in UTM format. So, I have to find ways to convert Easting/Northing values to Lat/Long. Since I use SQL Server, attempting to create a column in "Geometry" data type from Easting/Northing value, then convert it to a "Geography" data type (Lat/Long) does not seem to work for me.

After some scrambling on the web, the below SQL Functions seem to work for me to convert Easting/Northing values (on the Australian GDA94, Zone 56 standard). The key to get it to work is setting the correct datum details in the constant section. A quick test of this function does seem to give me the correct Lat/Long coordinates of Sydney Habour Bridge:

A sample point from latlong.net