IBM Support

Configuring and using the new Maximo Anywhere undo functionality.

Technical Blog Post


Configuring and using the new Maximo Anywhere undo functionality.


Here's another one for today regarding Maximo Anywhere and the new Undo functionality.  In Maximo Anywhere 7.6.2 the Anywhere undo functionality was added to the core release,  this removes the ability for a end user to undo changes with incorrect data until an Administrator has approved the undo action.  This functionality was added for companies who's business processes require that administrators review and provide permission to undo any changes that are being sent to Maximo. 


One of the main reasons I'm writing this blog is due to situations where this feature has been enabled by accident and users in the field are not able to remove their changes and process their work.  It also came up as a discussion on how it worked on a call I was presenting on earlier today.  I will run through the configuration and how to use the feature and how to revert if this is enabled for you and you do not wish to use it. 


Configuring Maximo Anywhere UNDO. 


Configuration is generally a simple properties change, but there have been cases where the Undo describedByProperty is not defined in the app.xml so we will go over checking and changing that as well. 


1.  In your located in the ibm\Anywhere\MaximoAnywhere\apps\WorkExecution folder search for the section below.


##enable of platform undo functionality custom.undo.process.enabled


Change this property to true so it looks like this then save the file. 




2.  In your app.xml located in the ibm\Anywhere\MaximoAnywhere\apps\WorkExecution\artifact search for the following section. 


<attribute describedByProperty="spi_wm:anywhereundo" id="workOrder_anywhereundo" index="true" name="anywhereundo"/> 


If this exists close the file,  if it does not exist in the app.xml search for the following section and add it as seen below. 


<!--Work Order resource-->
<resource class="" defaultOrderBy="wonum asc" describedBy="…; hasManagedQuery="true" id="workOrder" name="workOrder" pageSize="20" providedBy="/oslc/sp/WorkManagement">
<attributes id="workOrder_attributes">
<!-- limits the scope of attributes used from full Work Order RDF -->
<attribute describedByProperty="spi_wm:anywhereundo" id="workOrder_anywhereundo" index="true" name="anywhereundo"/> 

<attribute describedByProperty="dcterms:identifier" id="workOrder_identifier_dctermsidentifier" index="true" name="identifier"/>


3.  Rebuild and redeploy your application,  then launch the app on the device,  direct update should push out the change.  


At this point everything should be configured to use this functionality. 


Using the Maximo Anywhere Undo Functionality


To use this functionality we want to create an error on the device,  I've done this by entering an invalid work type. When I try to send this transaction back to Maximo we will see the following error. 



Now when you click Undo Changes the following prompt will show up,  normally when you click OK here your changes will be removed from the record,  you can then re-enter the correct data and send the Work Order to Maximo. 



However with the undo functionality enabled,  instead of the data being removed you will receive the following error message insisting that you contact the administrator to give you permission to undo the changes. 




At this point you are probably wondering what your administrator does to allow you to undo these changes. These error messages do not end up in a Mobile Error Management application like Maximo Mobile or Message Re-processing like other integration errors inbound to the Maximo System.  The record is actually unlocked through the core Work Order application on the work order record.  Once your administrator logs in to Maximo, they can pull up the Work Order, in this case #1114 and in the More Actions menu you will see the following option of Enable Anywhere Undo.




Once your administrator clicks this option,  it will switch over to "Disable Anywhere Undo".  When in this status the user can then hit the Undo Changes option again on the device to remove the bad data.  The Administrator can toggle the flag on the Work Order if they wish to re-lock the record. 


Disabling Anywhere Undo


If this was enabled for you and not functionality you desire disabling Anywhere Undo is simple,  you just need to go back in to the Anywhere\MaximoAnywhere\apps\WorkExecution\ file and flag the custom.undo.process.enabled back to false.  Once done build and deploy the applications and update your devices.  The "Anywhere Enable Undo"  option in the More Actions will still display, however toggling it will have no affect on the ability to undo changes in the mobile application.


I hope this is new to some of you and helpful,  any questions, comments, concerns please post below.  If there is a specific topic you would like me to cover please also comment below and I will do my best to cover the topic.


[{"Business Unit":{"code":"BU005","label":"IoT"}, "Product":{"code":"SSLKT6","label":"Maximo Asset Management"},"Component":"","Platform":[{"code":"PF025","label":"Platform Independent"}],"Version":"","Edition":""}]