Monday 8 March 2021

Maximo Date Manipulation Using Automation Scripts

In this topic, we are going to see how to manipulate Maximo dates using Automation scripts. The different kinds of manipulation are

  1. Adding Number to the date
  2. Subtracting Number to the date
  3. Changing the format of the date
  4. Difference between two dates in days 

In the below examples we are going to use Python scripts in Maximo

  1. Object Launch Point is used
  2. Asset object
  3. The “INSTALLDATE” attribute is modified

  Java Calendar class is used for Date Manipulation.


1.     Adding Number to the date

Current date from MXServer is got and adding number (10) to that date.

print("**************Start of C_TEST ********************")
from java.util import Date
from java.util import Calendar
from psdi.server import MXServer

currentDate = MXServer.getMXServer().getDate()
cal = Calendar.getInstance()
cal.setTime(currentDate)

cal.add(Calendar.DATE, 10) 

print ("After Additional to Current Date ---> ",cal.getTime()) 

mbo.setValue("INSTALLDATE",cal.getTime()) 
print("**************End of C_TEST ********************")


2. Subtracting Number to the date

Current date from MXServer is got  and subtracting number (10) to that date.

print("**************Start of C_TEST ********************")
from java.util import Date
from java.util import Calendar
from psdi.server import MXServer

currentDate = MXServer.getMXServer().getDate()
cal = Calendar.getInstance()
cal.setTime(currentDate)

cal.add(Calendar.DATE, -10)

print ("After Additional to Current Date --->",cal.getTime())
mbo.setValue("INSTALLDATE",cal.getTime())
print("**************End of C_TEST ********************")

3. Change the Date Format

To convert the date format, SimpleDateFormat Class is used.

print("**************Start of C_TEST ********************")

from java.util import Date
from java.text import SimpleDateFormat 

installdate = mbo.getDate("INSTALLDATE")
sdf = SimpleDateFormat("yyyyMMdd")
installdate_v1 = sdf.format(installdate)

print("installdate_v1 String-------> ",str(installdate_v1)) 

print("**************End of C_TEST ********************")

Output:

**************Start of C_TEST ********************

installdate_v1 String-------> 20200226

**************End of C_TEST ********************

4. Find the difference between Dates in Days-Method 1

print("**************Start of C_TEST ********************")

from java.util import Date
from psdi.server import MXServer
from java.util import Calendar 

currentDate = MXServer.getMXServer().getDate()

print ("Current Date ",currentDate)
print ("Current Date milliseconds ",currentDate.getTime())

installationDate = mbo.getDate("INSTALLDATE")

print ("Installation Date ",installationDate)
print ("Installation Date milliseconds ",installationDate.getTime())

difference_1 = ((currentDate.getTime()- installationDate.getTime())/86400000)

print ("Difference between dates in seconds---> ",difference_1)
print("**************End of C_TEST ********************")

Output:

**************Start of C_TEST ********************

Current Date Mon Mar 08 11:23:59 IST 2021

Current Date milliseconds 1615182839222L

Installation Date Fri Feb 26 00:00:00 IST 2021

Installation Date milliseconds 1614277800000L

Difference between dates in seconds---> 10L

**************End of C_TEST ********************


5. Find the difference between Dates in Days-Method 2

print("**************Start of C_TEST ********************")

from java.util import Date
from java.util import Calendar
from java.util.concurrent import TimeUnit
from java.text import SimpleDateFormat
from psdi.server import MXServer
from java.lang import Math

currentDate = MXServer.getMXServer().getDate()
print ("Current Date ",currentDate)

installationDate = mbo.getDate("INSTALLDATE")
print ("Installation Date ",installationDate) 

diffInMillies = Math.abs(currentDate.getTime() - installationDate.getTime())
diff = TimeUnit.DAYS.convert(diffInMillies, TimeUnit.MILLISECONDS)

print ("The date difference in Days---> ",diff) 
print("**************End of C_TEST ********************")

Output:

**************Start of C_TEST ********************

Current Date Mon Mar 08 11:41:04 IST 2021

Installation Date Fri Feb 26 00:00:00 IST 2021

The date difference in Days---> 10L

**************End of C_TEST ********************


1 comment: