Configuring the type-ahead feature

3 likes Updated 9/24/14, 8:08 AM by charglenTags:

Overview

Are you a Maximo Asset Management customer at fixpack 7.5.0.2 or above? Would your Asset Management users like to complete their day-to-day activities more quickly AND type less?  Then you should consider configuring the type-ahead feature on your Maximo Asset Management server.

 

Sample Type-ahead

The type-ahead feature is enabled as part of the Client-Side validation feature delivered in Maximo Asset Management 7.5.0.2.  By default this feature is disabled on upgrade as it changes the user experience for your users. It also requires asynchronous data validation to be enabled on your server, which also changes the user experience.  You should read the blog entry Enabling the asynchronous data validation functionality in IBM Maximo Enterprise to understand asynchronous validation. 

 

Enabling Type-ahead

Client-side validation can be enabled for all domain-backed fields by changing one system property.  Change the mxe.webclient.ClientDataValidation to 1.

After you enable the property shown above and restart your server, if your users start typing values in any field backed by a SYNONYM, ALN, or NUMERIC domain, they will receive suggestions that match the value or description of those domain choices based on their input.  Here’s a screenshot of the Reported Priority field from the Create SR application after I’ve typed ‘1’.

Your end users can use the up and down arrow keys to select the appropriate matching option from the suggested options.  If your end users clear the typed value, they can see all the options and use the up and down arrow keys to select the desired value.

Finally if I type a string, it will also match on the description of the NUMERIC domain choices attached to this Reported Priority field.

Notice if I type ‘i’ for instance, both High and Medium will match:

This is a nice way to give your users an easier way to find the correct Numeric value.

 

Adding Type-ahead to fields

You also have the option of adding type-ahead to other fields in your user interface.  A common use case is adding type-ahead to Reported By field of the Create Service Request application.

To add type-ahead to this field, first define a table domain for this field to limit your choices.  Type-ahead will send all potential choices that match the field to the end-user's browser and currently has a hard-coded limit of 10,000 records.  Because you might have more than 10,000 people in the system, limit the available choices by defining a new table domain in the Domains application. Set the List Where Clause of the domain to a sql filter that limits the person records returned.

Now go to the Database Configuration application and associate this table domain with the Reported By field of the SR object and apply your changes (Turn on Admin Mode, apply your database changes, and turn off Admin Mode).

Now go to the Application Designer application, open the Create Service Request application, and launch the properties pane for this field.

Under the Advanced tab, click Configure Type-Ahead.

First add the PERSONID field as a Key.  Then add any additional attributes you want to display (and search) in the type-ahead contents beneath.  You’ll notice if you select the Reported By field, it also automatically adds the phone and email underneath; if you want this to be automatically set by the type-ahead, you’ll need to use the Configure Set Values option.  (If you don’t do this, eventually the asynchronous logic will set it, but the user experience is a little weird.)

i

Now save your updated application in Application Designer.

When you type any string in the Reported By field, it will match on these fields and you can use the up and down arrows to select the correct match.

Advanced Client-side Validation Settings

You can also control how frequently these client-side events are sent to the server by changing the ClientEventQueue.threshold and ClientEventQueue.timeout system properties.  For low latency environments these variables should be set as low as your server can handle because quick responses will create better usability for your end users.