Search This Blog

Friday, November 3, 2017

Write an escalation in Maximo and migrate it

Plan for migration before creating the escalation.


Go to MM and create a change package and include BPM group , approve and activate.

Make sure its capturing the records by using Selection action and event tracking records.

Lets talk about escalations now, hope your mm package is active and listening to changes.

Escalation is an action or a group of actions on the escalation points which can be triggered on predefined conditions.

You use Escalation condition to filter records out of the table.

image

Write a name and object it applies to (WO) and a condition to do filter records.

status in (select value from synonymdomain where domainid = 'WOSTATUS' and maxvalue not  IN ('COMP','CLOSE') ) and pmnum is not null

This is first level of filtering.

Now we can have multiple escalation points,different conditions basically on those records filtered above.

If you have a field which of of type date and you want to make different alerts according to the time interval, elapsed time interval is of a lot of use.

image

Your date attribute X                                                                  -7                          days


So elapsed time interval negative means in future. So this will fire 7 days before the date attribute. lets say your date attribute X has value( 9 June) and system date of Maximo server is 2nd june, this condition is satisfied and it will evaluate the escalation point condition. You can also give escalation point condition as an add on filter at this level.

If elapsed time interval is positive its in past, so if it would have been +7 days, so it will fire if X is 2nd June and sys date is 9th june.


First thing you need to create is roles, which are attached to communication templates and those are attached to the Notifications sub tab of the escalations application.


image

Roles can be of multiple types:

Custom

Custom class where you extend the

CustomRoleAdapter and implement the CustomRoleInterface

Sample Code

////////////////////

package xx.common.role;

import java.rmi.RemoteException;

import psdi.common.role.CustomRoleAdapter;
import psdi.common.role.CustomRoleInterface;
import psdi.common.role.MaxRole;
import psdi.mbo.MboRemote;
import psdi.mbo.MboSetRemote;
import psdi.server.MXServer;
import psdi.util.MXApplicationException;
import psdi.util.MXException;

public class xx extends CustomRoleAdapter implements CustomRoleInterface

{


public MboRemote evaluateCustomRole(MaxRole roleMbo, MboRemote currentMbo)
               throws MXException, RemoteException
           {

// play with currentMbo – the object specified on the Role creation panel in application

}


}



A Set of Data related to the record

If you want to get value of any related object via a relationship you can use this role.

image

You can get the gui for fetching the relationship and the required field, just click the arrow.



Email Address

Direct Email address punch

Person

Person id value(e.g maxadmin)

Person Group

Persongroup value (e.g admin)

A set of data related to login user

Any data from the logged in user.


Ok once roles are ready, check if they are getting tracked in the MM package.

Now create the communication templates and punch in roles.

Please note you can use the variables from the main object like :wonum in our case

make sure to check

image


Subject can be

Work Order :wonum is not approved

I think relationships also work, try it out.


Now our communication templates ready, punch them in the notification tab of the escalation.

Please note different escalations will have different notifications and different actions.


If you want to check if the escalation running make sure the master condition is attained, if not use sql developer and update records to bring some records in that condition.


If you want to debug your custom role, make sure you put the breakpoint on the evaluateCustomRole method and check the repeat option in the escalation point to true. That way you will be able to hit the breakpoint multiple times and test your custom role class.

*If you dont know how to debug, try putting system out in role class and check systemout logs.


I think that is it for the escalations part, you can also check the cron history for your escalation in the history tab of your escalation crontab.

If you want to see who all received emails, you can go to workorder log tab and check the communication log tab ,it will mention which all communication was triggered out of the work order.

Wednesday, November 1, 2017

How to migrate your configuration changes in Maximo via Change package ?

 

To move your changes to another environment, you can create and activate a change package in Maximo.

Just select the right migration group, which will capture your changes and it will be tracked once active.

Approve and activate the package and start doing your changes in the Maximo system.

After the first change make sure whatever you are doing is being captured by going to the –>View event tracking option in the Migration manager.

If all is well, you are good to go, keep changing and once done, create the package and distribute it to the target. There is another concept of migration collection in 7.6 but this works more or less for me.

Enjoy !