Data management

testgrinder service will be discontinued on January 31, 2025

Often, organizations require a means of either loading or updating hundreds or thousands of records at a time. At such volume, doing it by hand is time consuming and prone to errors. Sometimes, an answer to this problem is manipulating the data directly in the Maximo database. However, such manipulation is not ideal, as it bypasses Maximo business logic and often results in data corruption that may not be immediately apparent.

Manipulating Maximo records via Maximo UI is the best way to make sure that data changes are properly validated and audited. Doing this by hand is costly and inefficient at scale. This is where testgrinder can help.

Let's take a look at an example. Let's say we need to create a number of assets with their related locations. The scenario may look like this:

Script: Load Locations with Assets
  
  Scenario Outline: Create Asset <Asset> for Location <Location>

    Given I login to Maximo as Administrator

     Then I go to the Assets / Locations application
      And I click the 'New Location' toolbar button
      And I enter '<Location>' in the Location field
      And I enter '<Description>' in the description field of the Location field
      And I enter 'OPERATING' in the Type field
      And I enter '<GL Account>' in the 'GL Account' field

     Then I save the record
      And I see the 'Electronic Signature Authentication' dialog
      And I enter the password for the Administrator role in the 'Password' field
      And I enter 'testgrinder test' in the 'Reason For Change' field
      And I click the OK button
      And I see the flash message 'Record has been saved'

     Then I select action 'Associate Systems with Location'
      And I click the 'New Row' button in the 'System' table
      And I enter 'PRIMARY' in the System field
      And I enter '<Parent>' in the Parent field
      And I click the OK button

     Then I go to the Assets / Assets application
      And I click the 'New Asset' toolbar button
      And I enter '<Asset>' in the Asset field

      And I activate the detail menu for the Location field
      And I click menu item 'Select Value'
      And I enter '=<Location>' in the Location filter in the unlabelled table
      And I initiate search in the unlabelled table
      And I see 1 row in the unlabelled table
      And I select the first row in the unlabelled table
      And I see the value '<Location>' in the Location field

      And I enter '<Serial>' in the 'Serial #' field
    
      And I successfully save the record
      And I logout

  Examples:
    | Location | Asset   | Parent | Description      | GL Account   | Serial       |
    | FT26043  | A26043  | BOILER | Service Water    | 6220-300-SAF | 123534234    |
    | FE26054G | A26054G | BR300  | Potable Water    | 6220-300-SAF | 134235-543   |
    | FV26405A | A26405A | BR300  | UPW flow control | 6220-300-SAF | 56234234-65  |
    | FT27036B | A27036B | BR400  | Chilled Water    | 6220-300-SAF |              |
    | PT28037F | A28037F | BR400  | Condensate       | 6220-300-SAF | Z0342121312  |
    | LG28108A | A28108A | BR400  | Ammonia          | 6220-300-SAF | LG45542344   |

Here, a scenario outline is used. This instructs testgrinder to execute the scenario steps once for each of the rows in the Examples table, effectively converting the outline into individual scenarios - one per example. Here there are 6 rows in the Examples table, but you may have hundreds, or even thousands. And the example lines are easily prepared with help of a spreadsheet.

Here's how the run report looks:

Each line of the Examples table resulted in a separate Scenario being executed, in parallel with others. Note that while each scenario took about 90 seconds to run, overall the data load took only 1 minute and 42 seconds.

Note that your data loading session is fully audit trailed. You can watch the video of loading each of the assets and if you expand the corresponding scenario, you may see screenshots for every step.

Last updated