Workflow Email Filter *

Workflow Email Filter *
December 22, 2019 Comments Off on Workflow Email Filter * Asset Management, Blogs, Business, Maximo, Solutions, Supply Chain Management, Work Management Amer Seifeddine

Workflow email filter is a SaaS friendly extension of the Maximo standard workflow email notifications allowing end-users to selectively receive emails that match their level of interest.

This article demonstrates how emails can be managed through filters matching the level of interest of intended audience. Since every organization has its unique requirements, the below suggested solution is intended for general use only. Please contact our professional services for demo, guaranteed solutions/support and extended solutions to workflow delegations and re-assignments.

Background:

The Maximo standard functionality enables end-users to select their preferred level of interest for workflow email notifications once new assignments are activated. End-users can select one of the below four possibilities:

  1. ALWAYS: where assigned users will always receive email notifications.
  2. PROCESS: where assigned users will receive email notifications through workflow processes.
  3. CONDITIONAL: where assigned users will receive email notifications for the first assignment only.
  4. NEVER: where assigned users will never receive email notifications.

Issue:

The standard workflow email notification functionality does not provide end-users with an option to filter (or receive all) email notifications based on the level of email importance and end-users preference. Often, customers complain about receiving too many workflow email notifications that are distracting them from other important emails in their inbox. However, certain email notifications for document review and approval are crucial and would require end-user’s attention.

Solution Design:

Adding too many roles, groups and communication templates in Maximo workflow with detailed logical nodes are not ideal and would introduce unnecessary complexity that can be avoided.

Adding a filter to the email (or communication template) and another filter for end-user’s level of interest will allow Maximo to send the right message to the right party at the right time.

The suggested solution is SaaS friendly (works on IBM Cloud, does not require additional efforts for upgrade and does not require package re-deployment). Also, this solution is mutually exclusive with the standard Maximo workflow notification:

  1. Turn off Maximo Email Notification: Set user’s email notification to NEVER.
  2. Turn On Workflow Email Filter: Enable Workflow Email Filter.

 

Maximo Email Filter

 

Maximo Workflow Email Filter and Category - Maximo Workflow Email notification filter

Technical Details:

Follow these steps to enable the Workflow Email Filter extension:

  • Database Configuration: Configure the following attributes and domain:
Object Attribute Name Database Type Domain ID
PERSON ENABLEEMAILFILTER  YORN  
  EMAILFILTER INTEGER EMAILFILTER
COMMTEMPLATE EMAILFILTER INTEGER EMAILFILTER

 

Domain ID Domain Type Value Description
EMAILFILTER NUMERIC 25 Highest Importance
50 Medium Importance
75 Low Importance
100 No Filter (All)
  • XML Changes: Use the application designer to add the following controls as shown on the above screenshot:
    • Person Application: Add the help grid, enable email filter checkbox and email filter combobox control.
    • Communication Template Application: Add the email filter combobox control.
  • Automation Script: Create an automation script with an attribute launch point for WFASSIGNMENT.WFASSIGNSTATUS attribute, paste the below code then activate your script!
#####################################################################
#### Source: Seifware.com ###########################################
###  For Maximo end-users only: License: Restricted (GPL V3 ) #######
############# https://www.gnu.org/licenses/gpl-3.0.en.html ##########
############# Keep this header section when source code is copied####
###  For Solution providers: ########################################
#Restricted (Please contact us for more information).################
#####################################################################

from java.lang import String
from psdi.mbo import MboRemote

maxStatus=mbo.getTranslator().toInternalString("WFASGNSTATUS", mbo.getString("ASSIGNSTATUS"))
prevMaxStatus=mbo.getTranslator().toInternalString("WFASGNSTATUS", mbo.getMboValue("ASSIGNSTATUS").getPreviousValue().asString())

person=mbo.getMboSet("ASSIGNEE").getMbo(0)
javaStr=String.forName("java.lang.String")
mboRemote=MboRemote.forName("psdi.mbo.MboRemote")

if "ACTIVE"==maxStatus and "ACTIVE"!=prevMaxStatus and not (person is None) and mbo.getBoolean("EMAILNOTIFICATION"):
	personFilter=person.getInt("emailfilter")
	if personFilter is None:
		personFilter=100
	wfStandardMailElection=mbo.getTranslator().toInternalString("WFMAILELECTION", person.getString("WFMAILELECTION"))
	comTemplate=mbo.getMboSet("COMMTEMPLATE").getMbo(0)
	comTemplateFilter=comTemplate.getInt("emailfilter")
	if comTemplateFilter is None:
		comTemplateFilter=100
	if "NEVER"==wfStandardMailElection and person.getBoolean("enableemailfilter"):
		if personFilter>=comTemplateFilter:
			invokesubsValues=mbo.getClass().getDeclaredMethod("substituteValues",javaStr,mboRemote)
			invokesubsValues.setAccessible(True)
			invokesubsValues.invoke(mbo,"DESCRIPTION",mbo.getWFInstance().getControlledMbo())
			mbo.sendNotification(person)

* Licensing may apply


Our approach is to keep things simple and keep you informed of all available options. Contact us for more details!

Tags
About The Author