MxMobile Update January 2023 Release

As an IBM Maximo mobile solution provider, A3J Group consistently improves the functionality and features of MxMobile. Enriching the experience of MxMobile users is not only our passion, but necessary. Our users enjoy the freedom of Maximo mobility and are happy to report bugs and request interface features, and our team actively delivers on those requests. You can download MxMobile apps from the Apple App or Google Play store.

A3J Group is happy to announce the latest MxMobile news below. This release is available as of Monday, January 23, 2023.

January Release Updates 

MxWork:

  • Ability to upload and remove files from Inspections
  • Conditionally hide fields on Inspections
  • Support for entering continuous meter readings on Inspections
  • New calendar date / time picker
  • General bug fixes and performance improvements

MxAsset

  • New calendar date / time picker
  • General bug fixes and performance improvements

MxAsk:

  • New calendar date / time picker
  • General bug fixes and performance improvements

What do you need to do? 

  • Updates are available to current clients automatically by updating your apps via the appropriate app store.
  • If you would like to request a new feature or report a bug, please follow our new support ticket guidelines submitting a video and a support form describing the request.
  • If you would like to opt out of receiving these communications in the future, please reply STOP to this email.

We hope you enjoy the new updates of A3J Group’s MxMobile suite of IBM Maximo mobile apps. If you have any suggestions, feature requests or need to report a bug, please contact support@a3jgroup.com. If you would like to be notified via email when A3J Group posts a new blog sign up in the form below.

MxMobile Update June 2022 Release

A3J Group is #AlwaysInnovating in order to bring state-of-the-art enhancements to the IBM Maximo community. Our 20+ years of experience in Maximo allows us to deliver end users the proper support and solutions needed to maximize efficiency. We strive to remain thought leaders in the community and we face common issues and challenges head-on. Our suite of mobile apps for IBM Maximo, MxMobile, gives users access to IBM Maximo in the palm of their hand. Our apps allow Maximo users the ability to create and edit work orders, generate meter readings, manage inventory and more.

As an IBM Maximo mobile solution provider, A3J Group consistently improves the functionality and features of MxMobile. Enriching the experience of MxMobile users is not only our passion, but necessary. Our users enjoy the freedom of Maximo mobility and are happy to report bugs and request interface features, and our team actively delivers on those requests. You can download MxMobile apps from the Apple App or Google Play store.

 

Here are the improvements that the A3J Group developers have made to MxMobile as of Monday, June 13, 2022:

A3J Group is happy to announce a new app has been released to the apps stores. The new app is our first iteration of the all in one app called MxMobile. This release will include the following apps:

  • MxWork
  • MxAsset
  • MxCount
  • MxReceive

 

We have added some additional features included in this release of MxMobile. They are the following:

  • Have more control of what offline data is pulled down prior to going out into the field.
    • Support for more offline functions included
  • Work Management, Asset Management, Receiving, Inventory counting included in this release
    • Other apps will be added in future releases, including more enhanced security controls
  • Start Center shows available app and result sets, allowing you to jump right into a given list of records.
  • Users can hyperlink between applications
    • For example, pull up a work order in MxWork and hyperlink over to the associated asset record in MxAsset

 

What do you need to do for this update?

  • If the MxMobile applications on your devices are set to auto update no action is needed.
  • If the MxMobile applications on your devices are set to update manually you can find the updates in the App Store or Play Store to download.

We hope that you enjoy the new updates of A3J Group’s MxMobile suite of IBM Maximo mobile apps. If you have any suggestions, feature requests or need to report a bug, please contact support@a3jgroup.com. If you would like to be notified via email when A3J Group posts a new blog sign up in the form below.

Product Launch: Ninja Fix – Duplicate Service Request Identifier

So you have an A-team that is super proactive about reporting issues and creating service requests, right? Great! However, this often can lead to scenarios where multiple users submit service requests about the same issue.

The Ninja Fix Duplicate Service Request Identifier combats that issue. This product adds a table to the Service Request application in Maximo. The table will show potential duplicate work order records created from SRs for the same asset and/or location. Only service requests that are open and not canceled, closed or completed will be displayed.

If the new SR is a duplicate, the user that created the SR can choose to link the duplicate SR to the work.

Scenario:

A call comes in from a user complaining that a room is too cold. The representative that takes the call creates a service request record, creates a work order for work to be performed and routes the work order to a technician. While the technician is on route to the location another call comes in from a different user for the same location. An entry will appear in the Potential Duplicate Work Orders table alerting the user that there may already be a work order dispatched to fix the problem at the location. This development can eliminate duplicate work and help your team stay focused.

If you find this solution valuable to your facility, you are able to purchase and download the installer which will automatically configure your Maximo Environment to include this helpful feature. Click here to purchase.

MxMobile Update April 2022 Release

A3J Group is #AlwaysInnovating in order to bring state-of-the-art enhancements to the IBM Maximo community. Our 20+ years of experience in Maximo allows us to deliver end users the proper support and solutions needed to maximize efficiency. We strive to remain thought leaders in the community and we face common issues and challenges head-on. Our suite of mobile apps for IBM Maximo, MxMobile, gives users access to IBM Maximo from their mobile device. Our apps allow Maximo users the ability to create and edit work orders, generate meter readings, manage inventory and more.

As an IBM Maximo mobile solution provider, A3J Group consistently improves the functionality and features of MxMobile. Enriching the experience of MxMobile users is not only our passion, but necessary. Our users enjoy the freedom of Maximo mobility and are happy to report bugs and request interface features, and our team actively delivers on those requests. You can download MxMobile apps from the Apple App or Google Play store and enjoy a 30-day trial.

Here are the improvements that the A3J Group developers have made to MxMobile as of Monday, April 4, 2022:

 MxReceive:

  • Print labels online or offline via a Bluetooth connected printer! Stay tuned for a video demonstration from the team…

MxWork:

  • Show data from the multiple assets, locations and CIs table on the work order.
  • Better handling of session token expiration.
  • Additional data type of duration has been added.
    • Users can now enter hours as 2.5 or 2:30

MxAsset:

  • Barcode scanning capability has been enhanced to support Bluetooth scanning devices
  • Bug Fixed – When entering a meter reading value of 0 it was not working properly. This has been fixed.
  • Additional API Key support added

MxCount:

  • Barcode scanning capability enhanced to support Bluetooth scanning devices

What do you need to do for this update?

  • If the MxMobile applications on your devices are set to auto update no action is needed.
  • If the MxMobile applications on your devices are set to update manually you can find the updates in the App Store or Play Store to download.

We hope that you enjoy the new updates of A3J Group’s MxMobile suite of IBM Maximo mobile apps. If you have any suggestions, feature requests or need to report a bug, please contact support@a3jgroup.com. If you would like to be notified via email when A3J Group posts a new blog sign up in the form below.

MxMobile Update March 2022 Release

A3J Group is #AlwaysInnovating in order to bring state-of-the-art enhancements to the IBM Maximo community. Our 20+ years of experience in Maximo allows us to deliver end users the proper support and solutions needed to maximize efficiency. We strive to remain thought leaders in the community and we face common issues and challenges head-on. Our suite of mobile apps for IBM Maximo, MxMobile, gives users access to IBM Maximo from their mobile device. Our apps allow Maximo users the ability to create and edit work orders, generate meter readings, manage inventory and more.

As an IBM Maximo mobile solution provider, A3J Group consistently improves the functionality and features of MxMobile. Enriching the experience of MxMobile users is not only our passion, but necessary. Our users enjoy the freedom of Maximo mobility and are happy to report bugs and request interface features, and our team actively delivers on those requests. You can download MxMobile apps from the Apple App or Google Play store and enjoy a 30-day trial.

Here are the improvements that the A3J Group developers have made to MxMobile as of March 7, 2022:

MxWork:

  • Added logic that will auto-route to the login page with a toast message if the LTPA or CSRF error messages occur. Previously, some users would get force logged out of the app due to a session timeout in IBM Maximo, but the mobile app would not notify the user indicating this was the cause for the force logout. Now, users will be informed how to remedy their IBM Maximo session to resolve the issue.
  • Created a “Costs” tab within the details page of a work order with basic planned and actual information
    • Page is configurable
  • Improved the labor submission feature such that fields are configurable, not hard coded. When entering labor time, user can now input a start and end time, rather than a single number of hours worked. This improves labor time accuracy for work orders.
  • Bug fix for labor time submissions: In previous version(s), if a user input labor time then pressed the “Enter” button on their keyboard to submit the record, the labor time record would be submitted twice. This issue is resolved.
  • Priority code bug fix: in previous version(s), if a priority code look-up is categorized as value “0” in the Work Order Priority field then the priority code would not register. This has been resolved in the new update.

MxCount:

  • Upgraded to latest version of Ionic Framework
  • Bug fix for Offline mode: If a user generates a list of items to operate MxCount in Offline mode then uses the barcode scanner feature to query an item lookup, the initial list would be superseded by the item that was scanned in. In that instance, the list of items that was generated for offline use would no longer be accessible. With this update, users are now able to create their offline list, and query their offline list using the barcode scan feature without losing access to their generated list for offline mode.

 

We hope that you enjoy the new updates of A3J Group’s MxMobile suite of IBM Maximo mobile apps. If you have any suggestions, feature requests or need to report a bug, please contact support@a3jgroup.com. If you would like to be notified via email when A3J Group posts a new blog sign up in the form below.

 

 

 

Opening an Attachment on List Tab in IBM Maximo

For this scenario I wanted an option to easily open attachments without having to go to each individual record, then the attachment icon, then waiting for the dialog to open then selecting the image to open it. I wanted to save time looking at attachments for a bunch of records. (Note: This only works if there is only one attachment that you can identify to open.)

In this case we took a meter reading and have an image that goes with that meter reading in Maximo. So, there is only one image per reading.

In order to do this, you need to go to Application Designer. Find the application you want to add an image link to. Find the table you want to use and add a new tablecol to that table. Open the tablecol properties and fill out the following fields:

Type: OPENURL (Note: This was done in the xml by exporting the application and updating the field and importing the application. This value is not an option in most IBM Maximo environments in the drop-down list for the type field)

Attribute: DOCLINKS.DOCUMENT

URL Attribute: DOCLINKS.WEBURL

opening-attachements-doclink-application designer-user interface-customization-relationship-attributeopening-attachements-doclink-application designer-user interface-customization-relationship-attribute

 

For the Attribute and URL Attribute you can append as many relationships as you need. For our scenario we added a relationship to the MEASUREMENT table called DOCLINKS with a Child Table of DOCLINKS table that has the image. The whereclause for that relationship is “ownertable = ‘MEASUREMENT’ and ownerid = :MEASUREMENTID”. The table that we are adding the tablecol to is MEASUREMENT.

Once you have updated the application. Save your changes and go to the application. You will see an update to your table that looks like:

opening-attachements-doclink-application designer-user interface-customization-relationship-attribute

 

 

 

The underline and the blue text indicate that you can click that and the attachment will open.

Updating End Points and Reloading Cache in Automation Script

In Maximo you can use End Points to point to External APIs to pull in data. You can invoke those End Points in a variety of ways, including inside an Automation Script. Take the following code as an example:

handler = Router.getHandler('ENDPOINTNAME');
responseBytes = handler.invoke(null, null);

You can then parse the response that comes back and use that data in any way that meets your needs. Recently we were working with an external API that required an initial login to capture an API Key to be used with future calls. We called the Login API and then grabbed an API Key from the response object. We then needed to update a different End Point to utilize this API Key as an HTTP Header in future calls.

This appeared to work in Maximo as we would see the data show up on the updated End Point. However, each time we invoked the End Point it would throw an error that it was not able to connect. We would then restart Maximo and everything would start working. What we found is that End Point data in Maximo is cached. After updating an End Point, we needed to reload the End Point cache to make a successful connection. To do that we added a line in the automation script after we updated and saved the End Point with the new API Key. The line that is needed is:

MXServer.getMXServer().reloadMaximoCache(EndPointCache.getInstance().getName(), true);

After running this code we can now successfully call our updated End Point. Be aware that there are several similar objects that are cached when Maximo starts up, such as Relationships, Integration information, some Domain information, etc. If updates are made to those records, you may need to refresh the Maximo cache for those records as well.

Hope this helps!

Calling Automation Scripts in a Federated MBO Endpoint

With the new version of Maximo we are now able to use Federated MBOs. Federated MBOs allow us to show live data from external systems without storing the data in Maximo. In that call you can have a static URL or you can dynamically update the URL to pull different data every time. For instance, if you only want to see the last 24 hours of data in the external system you can update the call to do so. (Note: you would have to have the external data api set up to add parameters to the call in order to do this.) Another option would be updating the call based on the user logged in to show different data for different users.

In order to do this you will first need to update the URL on the End Point to call a custom automation script. You will need to update your URL to be replaced with “script:LAST24HOURS” instead of the hard coded date value. An example URL would be “http://externalsystem?data=script:LAST24HOURS”

Once you have the URL constructed you will need to make an Automation Script called LAST24HOURS. The script will need to look like this:

Note: The value that is passed back to the URL is what you set token to.

Now every time the user goes to see the data and the URL is called and the script will run to pass in the value to only show the last 24 hours.

You can pass in any value that you chose by using the automation script. It does not just have to be a date. It can be a value based on the user that is logged in and making the call.

Launch Automation Script on New Record Creation in Maximo

IBM introduced Automation Scripts in Maximo 7.5 as a way to inject scripting code into key system events in order to alleviate the need for Java customization to the product. Launch Points for object-based events, attribute-based events, and action-based events were created to trigger these scripts to run. This gave developers the ability to trigger scripting code within Maximo to fire in the place of the most common methods that custom Java code had been used for previously.

As the usage of Automation Scripts has grown over the years, IBM has expanded its Launch Points to include additional events such as various points in the Integration cycle to again alleviate the need to write custom Java code.

One commonly used method that has been seemingly overlooked is the add() method in the base Mbo class. This method fires immediately upon creation of a new record in Maximo. There is an option in object-based Launch Points to fire only on the add event, however, that triggers only upon the save event of newly created records – not immediately after a new record is created.

In one of the later releases of Maximo 7.6, IBM added an undocumented hook into their code that allows developers to fire an Automation Script upon creation of a new record. This article will walk you through how to do this.

The Mbo.add() method is typically used for:

  1. Conditionally defaulting values on a child record based on information from the parent record
  2. Defaulting values on a custom child record from a parent record, such as its primary key values

Creating a Script to Fire on Add

To have your Automation Script run immediately upon creation of a new record, you can utilize a little known trick. The script itself will not contain any Launch Points, however, there is code within Maximo that will look for an active script with the name OBJECTNAME.NEW and run it, if it finds a match. When using this feature, replace OBJECTNAME with the name of the record type, such as ASSET or WORKORDER.

Let’s look at an example. Say that your users have a requirement to default the Line Type of a PO Line to different values based upon the PO Type that has been selected. Specifically, if the PO Type is SERV, then the Line Type of a PO Line should default to SERVICE. Otherwise, it should default to ITEM. Here are the steps to achieve this:

  1. Log into Maximo as an administrative user
  2. Navigate to the System Configuration > Platform Configuration > Automation Scripts application
  3. From the More Actions or Select Action menu, choose Create > Script option
    1. Script: POLINE.NEW (this is the trick! Make sure that the name is formatted properly)
    2. Description: Default the PO Line Type based off the PO Type
    3. Script Language: python
    4. Log Level: ERROR
    5. Active: Yes
    6. Source Code: [see below]
  4. Click the Create button
po = mbo.getOwner()
if po and po.isBasedOn("PO"):
    poType = po.getString("POTYPE")
    if poType == "SERV":
        mbo.setValue("LINETYPE", "SERVICE")

Once you have created the script, you will be able to go to the PO application and test it out. Create a new PO with a type of SERV (Service). Next, navigate to the PO Lines tab and select New Row. You will see the Line Type for that row is Service. Create another PO record with the type STD (Standard), then select New Row on the PO Lines tab for that PO and you will see the Line Type is Item.

Another Example

Let’s say your users would like to start capturing change history against the STATUS field on Assets, as other similar objects do. After adding a new database object called ASSETSTATUSHIST, you can create a new Automation Script to populate the fields in that table from the parent Asset record.

  1. Log into Maximo as an administrative user
  2. Navigate to the System Configuration > Platform Configuration > Automation Scripts application
  3. From the More Actions or Select Action menu, choose Create > Script option
    1. Script: ASSETSTATUSHIST.NEW
    2. Description: Populate the fields on a new Asset Status History record from the Asset
    3. Script Language: python
    4. Log Level: ERROR
    5. Active: Yes
    6. Source Code: [see below]
  4. Click the Create button
asset = mbo.getOwner()
if asset and asset.isBasedOn("ASSET"):
    mbo.setValue("ASSETNUM", asset.getString("ASSETNUM"), mbo.NOACCESSCHECK)
    mbo.setValue("STATUS", asset.getString("STATUS"), mbo.NOACCESSCHECK)
    mbo.setValue("CHANGEDATE", asset.getDate("STATUSDATE"), mbo.NOACCESSCHECK)
    mbo.setValue("CHANGEBY", asset.getString("CHANGEBY"), mbo.NOACCESSCHECK)

When you add a new row to the ASSETSTATUSHIST table, it will automatically populate with the above values based off of the parent Asset record.

That’s it for now! Please feel free to leave any comments or questions below. For visual instruction of the previous steps, check out our video tutorial.