Maximo Bug with Start Center Result Set and Custom Application

I created a query and then added a result set to the Start Center for our custom application.   In the Result Set portlet the query was chosen but no fields were displaying in the Available List or objects in the Object List.

The reason for the empty fields was ultimately due to a database length field issue on two objects: RESULTSETCOLS and RSCONFIGSELECT.  The APP attribute field length is 10 but our custom application name length was 11.

 

Increasing the attribute length for APP in RESULTSETCOLS and RSCONFIGSELECT followed by a database configuration corrected the problem which resulted in the Object List and Available Fields list displaying the appropriate information.

 

This was in Maximo 7.6.0.8 so the problem may already be corrected in a patch.

 

 

 

Enable Logging to Capture Report Data Set Queries in Maximo 7.6

You upload your awesome new report in Maximo, click the Preview button or run the report and…. you get no results.  Is the problem in the Maximo Where clause, the report query or …?  Naturally you turn to the Maximo Logging application, crank up the SQL and Report loggers to DEBUG then sit back and comb through all those juicy log statements that pinpoint exactly where the problem resides.  Sound familiar?  

Of course not!  You crank up all that logging and comb through a whole bunch of nothing.   

This article will detail one way to coax Maximo into giving up all the information you need to properly diagnose your report running in Maximo 7.6.  You may not need to perform all these steps; however, I was not able to see exactly what I needed until I performed the last step.  

The report I was developing was based on the ASSET application and was rather complicated.  Consequently I wanted a lot of information ouof Maximo.  You may not need or want all these loggers running to diagnose your report so feel free to adjust these steps to suit your specific requirements. Keep in mind that if you do not see what you want in the log execute all these steps and get it working.  Then you can pare it down to be more efficient. 

Set appropriate loggers to DEBUG using the Maximo Logging application. 

 

As I mentioned, the report I was working on was based on ASSET. I wanted to see both ASSET object queries and report queries.  Navigate to the Logging application Maximo and filter the Logger list to show sql. 

 

 

Change the log level to Debug anApply Settings so the changes take effect. 

If you execute the report now all you will see is some SQL statements as you navigate around the ASSET object filtering the records for your eventual report.  While potentially useful in providing a complete picture of the data being requested it is most likely not what we need to figure out why our report is not displaying any records.  In order to see Birt and report related log statements we need to adjust the log level of the report logger. 

Filter the Logging application by report and adjust the log level to DEBUG for the report logger as well as the birt and directprint loggers.  Do not forget to Apply Settings. 

 

Setting additional Report loggers to DEBUG. 

 

If you, like me, run your report you still will not see what you want in the log.   

In order to see the report parameters, where clauseactual DataSet query being used and a whole bunch of other report information I had to execute the following sql statement against my Maximo database. 

update maxlogger set loglevel = ‘DEBUG’ where logkey like ‘log4j.logger.maximo.report%; 

Be sure to commit the update if not using SQL Server.   

You will need to restart the Maximo application server after this update.  The logger update will not take effect until the Maximo application is restarted.   

Now if you run the report you will see the actual queries being executed from within Maximo.       

Save time by creating Command Aliases

Hello, everyone! Let’s skip the formal introduction about myself since it kind of fits the theme of the topic. Let’s talk about a hack to cut out extra steps when writing commands. To me it doesn’t matter whether the hack takes out a few or a lot of steps. Everyone can enjoy making and discovering new ways to work more efficiently. I promise an exact example of hack efficiency is coming up and it won’t affect the quality of the final product or goal.

Now let’s talk about the highlights of being lazy. I selected this topic because I felt this perspective was greatly imprinted on me after watching Bill Gates praise lazy people for being ingenious at finding faster and more efficient ways to resolve problems. (Side note – he is a living legend.) I am no master at being lazy, but there is an art to laziness that doesn’t have minor or outrageous consequences. This example of using aliases on Windows and Mac operating systems says it all.

Use of terminal commands are essential for Ionic development. You need them to install libraries, plugins, build folders, and even just moving in between files. By creating aliases you can define customized shortcuts that can save you considerable time. Let’s look at an example. This example is for Mac but there is a Windows tutorial at the end and the concept is completely identical.

To be specific, you need to be setting this inside a file in your configuration somewhere described in the videos. The line below will now make mxr the same as if you typed out all of cd ~desktop/work/a3jgroup/mxreserve. It’s a very easy step to turning the act of having to type out half a sentence into practically a word.

alias mxr = 'cd ~desktop/work/a3jgroup/mxreserve'

At the end of the day it’s just some extra typing but there is such usefulness when it comes to more complicated steps. There are a lot of unique commands specific to Cordova, Ionic and other cases where this will save you time looking up things that you don’t need to remember for real development. So let’s do some math to back this up and just nerd out a little.

This is a link for a quick typing test if you want to see your own score: https://www.livechatinc.com/typing-speed-test/#/. My score was 43 words a minute. I think it could be better if I take another test. However, that might be a complete waste of time to cover up a slightly self-conscious moment. I have about 60 shortcuts, each averaging about 3 words. It would be more than safe to say that I end up using a shortcut about 10 times on a work day, so:

Total seconds saved per command (TS) = (60/43) * (3-1) = 2.7906 seconds
Seconds saved from typing in a day (SPD) = 10 * TS = 27.9 seconds
Total work days in a year (WDPY) = 52 * 5 – 20 (Vacation and Holiday) = 240
Annual time savings = 240 * 27.9 = 6,696 seconds = 111.6 minutes per year.

There are 525,600 minutes in a year so it’s a small saving. However, it’s almost 2 hours that I get to skip out on remembering something way too specific and doesn’t require my creative side.

Anyway that is really all of it. The math could better account all the variables in a work year but I kept it simple. I’m really happy to have the chance to share with you all something that is in my eyes a hidden beauty in the development process.

Link to tutorial on creating aliases:

Windows:
https://www.youtube.com/watch?v=E_6Lklnakew&t=173s

Mac:
https://www.youtube.com/watch?v=j1IqO7m_am0

A3J – A Blog Life

One of our goals at A3J is to share, specifically information.  We’ve never found it very useful to keep the cards close to our chests, and we’ve always had a great admiration for those who aren’t afraid to put it all out there without regard to profit or fame.  The simple good will of getting information out that could help someone else is very uplifting.  With each blog article, we are paying it forward as a result of benefiting from other’s good will in the past.

We wrote our first blog piece in December of 2016, more than two years ago.  Hard to believe.  Like any new company with all of the players wearing too many hats, blog pieces were a scarcity, only happening sporadically and without planning.

Then one day we wrote the article that would go down in A3J lore as the lightbulb moment.  It was a little article on SSL and how to create a secure connection thereby protecting your Maximo environment.  It was an issue we had struggled with.  We knew many others who had as well.  So we wrote something on how we went about this task.  Needless to say it took off.

From then on we got serious about writing and recently we’ve created an internal initiative to make the writing more consistent.  As with any company filled with techies, the elation was vast, and their pens began to scrawl poetic words to rival Fitzgerald.  We jest.  Some came more willingly than others to the writing table, but everyone could appreciate putting out helpful content that made someone’s job somewhere a little easier.

So look for these blogs to post on the first Thursday of the month with the first one starting in April.  Many will be technically oriented but it’s all hands on deck and everyone will be writing an article.  Along with the technical articles, some will have a marketing focus or a professional services/management focus or brand new to EAM/Maximo deer in headlight focus.  Either way we hope they are helpful, insightful and maybe even occasionally entertaining.  In the meantime, check out all of our blog articles at www.a3jgroup.com/a3j-group-blog