Tuesday 26 November 2019

Thursday 24 October 2019

Result set is showing Current Date when the actual value is null


After Upgrading Maximo from 7.1 to 7.6.1.1 we had an issue with Maximo Result set, Empty Date fields are filled up with the current Date.
Below is the fix applied to resolve it.

Find resultsetportlet.jsp file

#WebSphere_Root/webclient/components/resultsetportlet.jsp

Search for "type==MXFormat.DATE" and change the if clause to below,

if ((type==MXFormat.DATE || type==MXFormat.DATETIME ) && finalData !=null && finalData.trim().length()>0)
Now you can see that Empty Date fields showing blank in Result Set

Tuesday 13 August 2019

Populating Condition Codes By Just Clicking Condition Code Check Box in Maximo

Recently we had a requirement to add the condition Code on clicking the Condition Code Check box in Item application.

Below is the Code that was written in JavaScript,
Launch Point Type: Attribute Launch Point
Object: Item
Attribute Name: CONDITIONENABLED

importPackage(Packages.psdi.mbo);

var conditioncode  = mbo.getBoolean("CONDITIONENABLED");
var itemconditionSet = mbo.getMboSet("ITEMCONDITION");

if(conditioncode)
{
  for(i=0;i<3;i++)
  {
    var itemcondition = itemconditionSet.addAtEnd();
    if(i == 0)
    {
      itemcondition.setValue("CONDITIONCODE","A");
    }
    else if(i == 1)
    {
      itemcondition.setValue("CONDITIONCODE","B");
    }
    else if(i == 2)
    {
      itemcondition.setValue("CONDITIONCODE","C");
    }
  }
}



Friday 9 August 2019

Signature Option Name to be displayed in Security Groups

In Maximo there is lot if Use for Sig options for hiding, making field required and many other purpose. But giving grant access in Security Groups is one of the toughest job. We create the sig option but we have to grant access to the sig option based on the description that was given in the application designer.

So to make things easy, we can also display the sig option name and the description together in Security Groups.

To make the sig option name to be displayed, navigate to the application designer application. Open the Security Groups (SECURGROUP) application.


Export the applicationid into a xml file. Find for the id appls_sigmain_table_tablebody_1a and appls_sigo_table_tablebody_1a. Include the the below tags

 <tablecol dataattribute="optionname" id="1565072808615"/> and 
 <tablecol dataattribute="optionname" id="1565072598311"/>

The final XML should look something like this,

Wednesday 24 July 2019

Maximo Automation Script setting values while Initializing

There are times where we need to set the value when the object is invoked rather that setting the values during the save method. This can be achieved in Maximo automation scripts.

Step 1: Create an Object Launch Point with JavaScript.
Step 2: Make sure to check the Initialize? check box is checked. And all other check box are unchecked.
Step 3: Below is the sample code for setting the "Inspection Required" and "Adding Spare Parts" check box to always be checked when the item is created.

importPackage(Packages.psdi.mbo);
if(mbo.getString("ITEMSETID")=="ITEMSET1"){
    if(mbo.toBeAdded()==true){
        mbo.setValue("INSPECTIONREQUIRED", 1);
        mbo.setValue("SPAREPARTAUTOADD", 1);
    }
}

Wednesday 24 April 2019

Launch in Context in Maximo

In Maximo we came across a requirement, where we need to navigate from one maximo application to maximo  another application(without using the detail menu). For example, we need to navigate from asset to work order through click on button and navigation should occur based on the Asset current value. So when the control navigates from asset to Work order, all the work order should be displayed based on the asset. Below is the approach we have followed using Launch in Context. The example we have taken is navigation from Location to Work Order application based on the Current location.


1) Go to --> System Configuration --> Platform Configuration --> Launch in Context application and Create new launch entry.


Wednesday 3 April 2019

Integration Flow for Maximo Inbound Using Enterprise Service

Maximo integration framework has always intrigued me. There are different layers at which the MIF works in Maximo. So a college and me had done an experiment in Maximo inbound integration framework using enterprise service. We extended all the base Maximo integration class and added system.out messages to each of the extended methods.

Below is the flow of class that is called when data has been inbound. The experiment was done on Maximo 7.1 version.

Below is the color code for each of the applications.


Below is the flow of diagram from request XML up to Maximo business object validation.

Then response is followed from Maximo to the response XML.


Tuesday 2 April 2019

Comparing Dates in DB2 in Maximo

In escalation there are times when you need to perform action after 30 days or 60 days. Thats we need to set condition from sysdate plus 60 or 30 days.

Below is one such methodology to check the dates in escalation.

VARCHAR_FORMAT (enddate, 'YYYY-MM-DD') = VARCHAR_FORMAT(sysdate + 60 days, 'YYYY-MM-DD')

Table Type Presentation in Communication Template

There are instance where we would send mail through communication template. It is important to make sure that the information in the mail is more precise and conveys all details that are necessary. I feel that giving data in tabular format achieves the purpose. So lets see how to send data in tabular format in communication template in Maximo 7.6.

Click on Go To--> System Configuration --> Platform configuration --> Communication Templates.

Then click on the "View HTML Source " icon. As show in the screen shot below.


Enter the following HTML codes in the code snippet field.