How to use MxLoader (or any MIF based Maximo Tool) to load data into more than one Object
Firstly, when loading any data into Maximo using the tools provided, it all relates to an Integration Object Structure. Whether the tool used is MxLoader, Import/Export in the Application or via an External System, the bit that tells Maximo where to put the data is the IntObject (as it is known for short).
There are many existing IntObjects that you can start with as a base point. Often this is the best place to start. There are numerous out-of-the-box options (best to use one of these if available) but they can be created from New or Duplicated.
Details of an IntObject (Integration Object Structure)
- Go to System Config > Migration > Object Structures
- On the list screen, filter by Consumed By: INTEGRATION
Note: Maximo standard IntObjects start with MX. They don’t cover everything but usually provide a good starting point.
- Find the appropriate IntObject – in this case I have selected MXJOBPLAN
- The first row is the Parent Object. This is the main object on which we will want to load records and its details have to appear on every line of our load sheet.
- The second row is the Sub Object. Subsequent rows can be added where more than one sub object is needed. This is the basic structure that we need.
Note: There are a few other things to be aware of in an IntObject:
- Support Flat Structure has to be checked if you want to load through External Systems or Import / Export using a CSV File (Comma Separated Values). This is NOT needed for MxLoader. Where there are Alias Conflicts then you can use the Select Actions > Add/Modify Alias to assign a different name (usually we change the detail line and add a prefix. In our example it would be prefixed with “TASK_”
- Exclude / Include Fields – under Select Actions, individual fields can be hidden or not. Any Persistent fields (held on the Database) are included as standard, Non-Persistent are excluded as standard.
Using MxLoader with Multi Object IntObjects
There are some examples in MxLoader that already use multiple objects. For our example above we can use:
- Open an MxLoader workbook (or download from IBM).
- On the MxLoader tab – click on New MxSheet icon.
- Select Planning – Job Plans (custom) – the new sheet is created with these headings:
- The first set of columns relate to the Job Plan record (header) and should be populated accordingly. These need to be replicated on every row, so if a Job Plan has 3 Tasks then there are 3 identical value in each of these columns.
- The second set of columns, those prefixed with “JOBTASK.” are for individual Task records and need to be populated as accordingly.
- If you have more than two objects then the corresponding columns also need the sub object name prefixed on the column.
Note: A good trick is to see what the data looks like based on an existing record. To do this, the value in cell C1 has to be set to Query. The value in D1 is then the appropriate SQL Where Clause – i.e. JPNUM = ‘XYZ123’.
- Run the Query Statement first to see what existing data looks like.
- To load the data you have a number of Options:
|Sync – AddChange||Most commonly used – if records exist they will be updated, if they don’t exist they will be added|
|Sync – Add||Add Records Only – existing records will error|
|Sync – Change||Change records Only – new records will error|
|Sync||For the individual object – removes all existing records and then add the record in as new (similar to Replace)
NB – this is great for loading Authorization records on Security Groups – but beware!
|Delete||Delete any existing records|
A few other things with MxLoader
The Config sheet has some options in it that are useful.
Maximum objects – if you want to return more than 50 rows using Query option, you’ll need to set this higher.
Batch Size – if you have a large number of records to load then setting this will load the rows in batches. If you are doing test loads and want to easily find any problem rows then set it to 1. Each row is processed and MxLoader will stop when it finds a problem. You can then fix it and restart – you can continue at the same point if Stop on error and Continue sync are set to True.