Manipulating
string is probably the most frequent operation we need to do when transforming
data. Thus, I’d like to talk a bit about string concatenation in WebMethods.
The most basic way to add two strings is to use the pub.string.concat
service in the WmPublic package as shown below:
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)
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 Branch, Sequence, and Map nodes as
depicted in the sample below:
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:
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:
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.