IBM Support

How to speed up your inventory count with Maximo Mobile Inventory

Technical Blog Post


How to speed up your inventory count with Maximo Mobile Inventory


Maximo Mobile Inventory Manager is the application that provides remote access to Maximo EAM Inventory management process. This mobile application provides capabilities for field users to perform several offline tasks such as receipts of purchase orders (POs), as well physical counts, transfers, issues and returns of items in storerooms. To keep consistency and integrity of the information in the Maximo database, everytime the field user sends the information saved on his handheld to Maximo server, all the validation rules defined in the corresponding Maximo Business Objects and in their fields are executed during the processing of that information. In case of Maximo some validation rule is violated, the engine responsible for the synchronism send the "rejected" record back to the handheld user who can take the appropriate actions for the reject record. For instance, suppose the field user entered an invalid item number to perform a physical count.
To reduce the number of rejected records, the application contains several offline validations that gives immediate feedback to the user about the just entered information. For example, in case the user decides to enter an invalid value in the item number field for a new physical count, the application will prompt a dialog with three options for the user to choose (see picture below). The first option (Accept Value) accepts the value as it is. The second option, (Cancel & Clear) closes the dialog and remove the entered value from the text field, giving the user the option to re-enter the value. The last option shows a list of values that are potential values for that field, giving to the user the option to select the value.
The question at this point is: How the information is validated and the message is triggered?  The configuration  that defines thiis behavior is the following (extracted from maximo_root\mobiletools\maximo\metadafiles\mobileinv.xml):
<textbox  id="newcountdetails_1"  dataattribute="ITEMNUM" lookup="iteminvbalcntlookup" enablebarcode="true" inputmode="required" descattribute="ITEM_DESCRIPTION"  validateevent="checkitembin" domain="INVBAL_NOEXP" domainattribute="ITEMNUM"/> 
The code in bold means: the value of this field should match with any of the values of the column ITEMNUM in the table INVBAL_NOEXP (this table is a mobile view for the INVBALANCES table of Maximo that contains all the items that are neither  lotted nor are in a expired lot). With all that said, the conclusion we have at this point is: You need to download to the handheld all the items you want to perform physical counts. This is might or might not be a problem. If we have a couple hundred items then we do not have a issue. If we have a couple thousand items, it might become an issue depending on the handheld hardware, the quantity of handhelds you want to download all those items. Notice that one does not download item information only to perform data validation. It can also be used to auto-fill other fields or present additional information on the screen such as item's description. The conclusion is that we need to download the items information is most of the cases.
On another hand, it is a very common practice in storerooms to associate barcode tags to items. Each barcode tag uses to have as its information the item number. All Maximo Mobile applications have barcode related features like read the information and perform more advanced actions like filter a list of records or even create a new record in case the scanned value does not exist. We can then take advantage of the barcode information that, in this example, contains a valid item number and use that information to fill the item number without download all the items to the handheld, saving time in the data refreshes and storage resources on the handheld. The only inconvenience we have is the dialog being shown everytime you scan a value that we know it is valid in Maximo but the mobile application cannot validate. The way to remove this inconvenience is very simple. We just need to remove the domain and domainattribute from the field definition:
<textbox  id="newcountdetails_1"  dataattribute="ITEMNUM" lookup="iteminvbalcntlookup" enablebarcode="true" inputmode="required" descattribute="ITEM_DESCRIPTION"  validateevent="checkitembin" domain="INVBAL_NOEXP" domainattribute="ITEMNUM"/> 
The result is: 
<textbox  id="newcountdetails_1"  dataattribute="ITEMNUM" lookup="iteminvbalcntlookup" enablebarcode="true" inputmode="required" descattribute="ITEM_DESCRIPTION"  validateevent="checkitembin" />  
Once the change above is done we just need to perform the regular import of the xml and package the application (more information in this post) and install the new mobileinv.jar. There is no need to restart Maximo. You just need to put the new jar in place! You can know take advantage of the barcode support of Maximo Mobile to perform your physical counts without the need to download all the items of your storerooms to the handheld and without receive the validation message all the time. You just scan the value, enter the quantity, save the count and count the next item. Very simple, isn't? 
In this example we used the physical count feature to contextualize the change we are proposing. You can apply this to other fields in any of the Maximo Mobile application when the following is true:
  1. I do not need to see complementary information related to that field (e.g.: a description) 
  2. I have confidence the value I am entering is accurate and exists in Maximo Server 
I hope this post gives some insights of how simple it is to 'slack' a validation when it is possible.

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