Setting up Automated E-mail Remainder for Work Orders yet to be Reviewed in Maximo

Work Order E-mail received by the Technician

E-mail plays an important role in notifying the Work Order assigned to Technicians. In Maximo, A Work order can be assigned to Technicians in many ways. ie. It can be assigned via workflow or workgroup or direct assignment & etc. Generally, When work is allocated to a technician, we will configure e-mail notification for that individual work order. Over a period of time, this will become a cumbersome process for the maintenance guy because Maximo may end up sending more emails to him and the technician may not able to track his work order quickly and effectively from his mailbox.

To avoid this situation, We have decided to send a single consolidated e-mail for all of his work orders yet to be reviewed in his mail body in a well-formatted manner on a daily basis. This is achieved using an escalation that will run on Person Object on a scheduled interval of time that will send all work orders yet to be Reviewed.

Step 1: Create Person Group as “TECH-EML” to restrict the number of persons to whom we need to send an e-mail.

Step 2: Create a Communication Template “WOLIST” that applies to the “PERSON” object and let the communication template be empty as we will dynamically populate the Work List using automation Script.

Step 3: Create a Role “TECHMAIL” as shown below

Step 4: Associate this Newly created Role with the communication template and change the status of communication template as “ACTIVE”

Step 5: Create an Action Launch Point Script “EAM360_SNDWOMAIL” on Person Object as Shown below to fetch all work order in WAPPR status that is assigned to him and dynamically draw a work order list in Communication Template Message body

if mbo is not None:
status = mbo.getString("STATUS");
if status == 'ACTIVE':
woset= mbo.getMboSet("GR_WOWAPPR");
wombo = woset.getMbo(0);
if wombo is not None:
whereclause = "TEMPLATEID ='WOLIST' "
ctMboSet = mbo.getMboSet("$commtemp","COMMTEMPLATE",whereclause);
ctMbo = ctMboSet.getMbo(0);
if ctMbo is not None:
val = StringBuilder()
val.append(" Hi "+ mbo.getString("DISPLAYNAME") + ", " + "<br>")
val.append(" " + "<br>")
val.append(" Please find below list of workorders yet to be Reviewed " + "<br>")
val.append(" " + "<br>")
val.append("<table border=1 style=width:1200px>" #+ "<col width=10>" + "<col width=100>" + "<col width=10>" + "<col width=10>" + "<col width=100>" + "<col width=100>" + "<col width=100>" + "<col width=10>"
+ "<thead>"
+ "<tr>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Work #" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Description" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Location" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Asset #" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Priority" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Status" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Work Type" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Duration" + "</font>" + "</th>"
+ "<th bgcolor=#5D7B9D>" + "<font color=#ffffff>" + "Site" + "</font>" + "</th>"
+ "</tr>"
+ "</thead>")
wormbo = woset.moveFirst();
while wormbo is not None:
val.append(" <tr>"
+ "<td>" + wormbo.getString("WONUM") + "</td>"
+ "<td>" + wormbo.getString("DESCRIPTION") + "</td>"
+ "<td>" + wormbo.getString("LOCATION") + "</td>"
+ "<td>" + wormbo.getString("ASSETNUM") + "</td>"
+ "<td>" + wormbo.getString("WOPRIORITY") + "</td>"
+ "<td>" + wormbo.getString("STATUS") + "</td>"
+ "<td>" + wormbo.getString("WORKTYPE") + "</td>"
+ "<td>" + wormbo.getString("ESTDUR") + "</td>"
+ "<td>" + "BEDFORD" + "</td>"
+ "</tr>")
wormbo = woset.moveNext();
val.append( "</table>")
val.append(" " + "<br>")
val.append(" " + "<br>")
val.append("Thanks & Regards, "+ "<br>")
val.append("Maximo Team " + "<br>")
val.append(" " + "<br>")
val.append("Note: This is Auto Generated E-mail. Please do not reply.... " + "<br>")

ctMbo.setValue("MESSAGE", val.toString());
ctMbo.sendMessage(mbo,mbo);
ctMboSet.save();

Step 6: Create an Escalation and associate this action script. Configure the Escalation Run time Schedule and activate it.

Finally, E-mail Received by the Technician is shown below:

Benefits:
The advantage of this approach is that users need to keep track of individual mail thread or No need to open mail attachment for the worklist Report.

Note: To Modify the Work List to be sent in the mail content, Change the relationship between the person and work order according to your business requirement

— Maximo Technical Consultant at EAM360