February 6, 2017

Maximo keyboard shortcuts

You know IBM Maximo has a lot of fields and sometimes can be boring entering data. Here are some keyboard shortcuts that can ease the pain. I have highlighted in bold the most common and useful ones.

  • Tab > The most important keyboard shortcut is the TAB key. It allows you to move across fields without using the mouse and also performs data validation and auto-completion.
  • Space > Select or clear a check box.
  • Alt + F1 > Display field help for field in focus.


There are few other useful shortcuts to move across applications.

  • Alt + C > Go to the Start Center.
  • Alt + G > Open the Go To menu. Use the arrow keys to choose the desired app.
  • Alt + B > Bulletins
  • Alt + R > Reports
  • Alt + P > Profile
  • Alt + S > Sign Out
  • Alt + H > Help
  • Alt + R > Return
  • Alt + W > Return with Value


Last but not least you can quickly create and save records with these Toolbar Buttons shortcuts.

  • Ctrl + Alt + I > Insert New Record
  • Ctrl + Alt + S > Save Record
  • Ctrl + Alt + A > Change Status
  • Ctrl + Alt + C > Clear changes
  • Ctrl + Alt + P > Previous Record
  • Ctrl + Alt + N > Next Record


This is a simplified list of the available keyboard shortcuts. For more information refer to the official documentation.

January 29, 2017

Maximo search operators

Maximo search features are quite advanced but often neglected. By using the advanced search techniques described in this post it is possible to find relevant records easier and faster.

Equal

The equal '=' operator can be used to find only records that match that a word or number exactly. In other words '=' means "exact match".
Example: Enter =123 to find any records with the exact characters 123 in the field. (Search results would not include numbers such as 0123 or 1234AB. If you enter just 123, without the =, search results would include 0123 and 1234AB.)

Not Equal

To search for all values that are not equal to a specific value enter '!='.
For example, typing !=WAPPR in the status field will retrieve all records that are not in WAPPR status.

Greater/Less

The '<' and '>' characters can also be used to search for records that are bigger or smaller than a specific value.
  • Greater than '>': searches for any date after or number/word greater than the specified value.
    Example: Enter >1172 finds records of occurrences that have work order number greater than 1172.
  • Less than '<': searches for any date before or number/word smaller than the specified value.
    Example: Enter <1172 finds records of occurrences that have work order number smaller than 1172.

List of values

You can use comma ',' operator to list the records that match with either of the values specified. It basically acts as the OR operator.
For example, typing WAPPR,COMP in the status field will retrieve all records that are in WAPPR or COMP status .

Wildcards

You can use a "wildcard" characters with letters or numbers to indicate you want to find records that begin with, end with, or contain those letters/numbers.
There are four characters you can use as a wildcard:
  • Asterisk '*' or percent sign '%': stand for any number of characters (zero, one, or multiple) in the specified position.
    Example: Enter 123* to find records that start with 123, such as 123, 12345, 123ABC.
    Example: Enter *123 to find records that end in 123, such as 123, 5123, PUMP123.
    Example: Enter *123* to find records that contain 123, such as 123, 1234, PUMP123xy.
  • Underscore '_' or question mark '?': stand for a single character in the specified position.
    Example: Enter 123_ to find any four‐character records that start with 123, such as 1234, 1230, 123g.
    Example: Enter or _18 to find any three‐character records that end with 18, such as 418, J18.

NULL Values

You can search for null and not null values by entering the following values into a search field on the Find tab:
  • To search for a null value enter: ~null~
  • To search for not null values enter: != ~null~

If your keyboard does not have the tilde '~' character you may type enter this character by typing 126 on your numeric keypad while pressing the 'Alt' key.

Dates

A small additional tip for searching dates in the current month.
If you want to search for WO's with scheduled start date less than today, you don't need to type or select the whole date into the search field because Maximo automatically appends the current month and year in the where clause.
For example, if you search with <15, system will return all WO's where scheduled start date before the 15th of the current month.


References

Understanding Search Methodologies
To Search For Records in a Maximo Database
Search for NULL values in Maximo applications


January 18, 2017

Find inactive users in Maximo

Here is a quick SQL query you can use to find inactive users that haven't logged into Maximo in the last 2 months.

DB2
select * from maxuser
where status='ACTIVE'
and sysuser=0
and not exists (select userid from logintracking where logintracking.userid=maxuser.userid and attemptresult='LOGIN' and attemptdate>(current date-60 DAYS))
order by userid;

Oracle
select * from maxuser
where status='ACTIVE'
and sysuser=0
and not exists (select userid from logintracking where logintracking.userid=maxuser.userid and attemptresult='LOGIN' and attemptdate>sysdate-60)
order by userid;

SQL Server
select * from maxuser
where status='ACTIVE'
and sysuser=0
and not exists (select userid from logintracking where logintracking.userid=maxuser.userid and attemptresult='LOGIN' and attemptdate>getdate()-60)
order by userid;

Obviously, the above query works only if you have enabled the login tracking feature in Security Groups - Security Controls.

This is very useful if you want a quick idea about how many users are really accessing the system.
Another interesting use of this query is to optimize Maximo licenses by simply deactivating users that no longer use the system. You can even define an escalation that automatically do the job for you.

January 17, 2017

Long Descriptions in Maximo

Long descriptions in Maximo are a special fields meant to store long text. Unlike all the other fields they are stored in a dedicated table called LONGDESCRIPTION. Tables link to the LONGDESCRIPTION table through their unique ID and the long description attribute is stored in a CLOB field.

Let's change the long description of the work order '1000' with few lines of text.



If we run the following SQL we can retrieve the internal ID of the work order.

select wonum, workorderid, description from workorder where wonum='1000';




Here we are interested to the WORKORDERID field which is the internal numeric identifier of the work order. This value is referenced in the LDKEY of the LONGDESCRIPTION table.
This is how we can retrieve the long description.

select * from LONGDESCRIPTION where ldkey=37 and ldownertable='WORKORDER';




Multiple attributes in the Mbo can have long descriptions. The LDOWNERCOL says which column owns the long description. The LANGCODE allows to have translated versions of the same long description field.

Long description fields can be associated with any attribute in Database Configuration setting the 'Long Description Owner' checkbox.


In the MAXATTRIBUTE record, the ISLDOWNER column is set to 1 if the column has a long description. For each long description owner there is a nonpersistent attribute named +"[ATTRNAME]_LONGDESCRIPTION" that will store the data in the LONGDESCRIPTION table.