Maximo Mobile Customisation: Update Work Order status list
Maximo Mobile is becoming more and more popular this year. Several clients are moving towards implementing this product. You can click on this link to learn more about the product.
In this article, I am going to run through the steps or ways to update the Work Order status list displayed in My Schedule page of the app.
IBM has done one great thing with this new mobility solution is that all the functionalities are built within one app, so users do not need to navigate between apps to capture different kinds of data. One functionality of the app is the Work execution page known as My Schedule in Maximo Mobile.
One of the common requirements which we have seen from clients is to filter status list as per their business process. Most client’s only wanting to give access to 2 or 3 statuses to technicians using mobile solution.
Here below are 3 ways to filter the status list in Maximo Mobile:
1. Update the query in Maximo Object structure
2. Add conditional expression in the synonym domain values
3. Update app.xml to enable custom status values
4. Write logic Maximo mobile product java script classes.
Update the query in Maximo Object structure
Status list in Maximo mobile is fetch from Maximo using MXAPISYNONYMDOMAIN object structure. Query defined in Maximo for this object structure brings all the values from synonym domain.
Steps to change the query:
1. Login to Maximo and navigate to object structure application.
2. Search and click on MXAPISYNONYMDOMAIN object structure.
3. From More actions menu, click on Query definition option. This opens a list of queries defined. Maximo Mobile uses MOBILEDOMAIN query.
4. Update the query clause to define client specific queries for Status domain.
Add conditional expression in the synonym domain values
Maximo has the feature to conditionally hide synonym domain values. This feature is widely used by customers to configure different work order status values for users.
Recommended by LinkedIn
The same logic will work for Maximo Mobile as well. When Maximo mobile tries to fetch status data using the MXAPISYNONYMDOMAIN object structure then Maximo triggers the conditional synonym domain and sends a filtered resultset to Maximo Mobile.
Update Maximo Mobile app.xml
IBM has built a customisation module for Maximo Mobile. It helps customers to build features and business process for their mobility solution implementation. You can read more about configuring and customising Maximo mobile here. Please follow the customisation guide to setup the development environment as a pre-req for this change.
Maximo Mobile just like Maximo Anywhere has a app.xml for each My Schedule. So, My Schedule page has its own app.xml under TECHMOBILE folder.
Steps to change app.xml to filter status values:
1. Open app.xml and search for allowCustomWOStatus state. States is one of the technical concept in Maximo Mobile customization. Update the state value to true as seen in the below screenshot:
2. Just below the allowCustomWOStatus state, you will find customAllowedStates state. The value of this state contains a list object with all the Maximo statuses. Each status in the list contains a list of allowed transition to list of statuses. If there are any custom status from client, then you need add that value to the status list and configure its transition status values. If I have to visualise this, then it would look like below list:
An example for adding a new custom status would look like this, with RESUME being a new status:
Note, please add the new status with exact same syntax as used by IBM. I removed some part of the XML for better readability of the statuses.
I will advise running some changes to understand this better.
Write logic Maximo mobile product java script classes
Maximo Mobile has java script classes which can be updated to write customer specific business logic. Schedulepagecontroller is one such class file which has the java script method called changeStatus. This method’s logic can be re-written to a complex status list filter.
IBM advises to write all the custom logic in the appcustomization class files and even though I haven’t been able to write the change status logic in this class, but I believe there is a way to write the status list filter. Reason behind IBM’s advice is to avoid unwanted complexity during Maximo Mobile upgrades. Customization IBM provided class files will require customers to maintain and merge their business logic during upgrades.
There could be more ways, unknown to me, to filter the status list in Maximo Mobile. It will be great to hear about those methods as well.
Finally, please do share any feedback to improve this article or future articles.
Maximo Solution Architect
2yVery well written!
Senior Asset management Consultant
2yGreat post Biplab