- Import data with Maximo Integration Framework (MIF)
- Screencast: Import users and passwords with Maximo Integration Framework
- Screencast: Import data with XML flat files
- Import assets and asset specifications with MIF
- Export data to XML files with MIF
- How to import failure codes with the Maximo Integration Framework (MIF)
- Import locations with Maximo Integration Framework
- Create a Person Group object structure and web services with MIF
- Import PM’s and PM sequences with Maximo Integration Framework (MIF)
- Import asset classification hierarchies and classification attributes with MIF
- Exporting data to XML with MIF event listener for any changes on an object automatically
- Import Inventory Records using Maximo Integration Framework (MIF)
- Import users security groups with MIF
- Import labor codes with Maximo Integration Framework
- Import/Export data with MxLoader by Bruno Portaluri
I have already given a simple tutorial on how to import assets with MIF using interface tables. Now, if you want to import asset specifications as well, this is a detailed tutorial on how to do that with interface tables. You can also download a sample excel document that I used to import into the interface table, prior to the MIF importing into Maximo, which you can use as base structure for your own data import.
Prior to loading data, I will assume that you have already setup the MIF, entered locations, and created some classifications for your assets. To setup MIF that is ready to import assets you can read this post.
Now that you have the MIF setup to import assets, we need to do a little bit more to get it completely ready for importing assets and asset specs. First go to Integration -> Object Structures and find MXAsset. In the Object Structure you can see a list of source objects which are:
These are the tables that this object structure imorts data into. So for our purpose, we will be inserting data into ASSET and ASSETSPEC and we will be creating an excel document that conforms to the interface table. But first we need to include a CLASSSTRUCTUREID field that we will use to assign a classstructure to an asset. So go to Select Action -> Exclude/Include Fields and uncheck CLASSSTRUCTUREID like so:
Save. Now you should notice, towards the right of the screen, that the ‘Alias Conflict?’ is now checked. This just means that you have two or more fields that have the same alias name, so we have to change. Don’t worry, it’s easy. Go to Select Action -> Add/Modify Alias, you should notice that the alias setting for the field CLASSSTRUCTUREID is a duplicate. Change the ‘ALIASNAME’ from ‘CLASSSTRUCTUREID’ to ‘AS_CLASSSTRUCTUREID’. This is so we know that this field name is specific to the ASSET object as opposed to the ASSETSPEC object. You will see what I mean later. Hit OK and Save. The ‘Alias Conflict?’ should now be unchecked. If you have already created your interface table, you should recreate them so the changes we made take affect.
Now that you set that up, the rest is pretty straight forward. It’s pretty much the same as the previous post, except that there are a few details that need to be addressed. First we need to create an excel document that contains the same column names as our interface table. So go ahead and go do that… just kidding. I have a sample excel document with some assets and asset specs for you so you can use that as a guideline.
First you will notice that the first few rows are just assets without any asset specifications and the 6th row is an asset that has been classified. We classified that asset by setting the AS_CLASSSTRUCTUREID column to the classstructureid, which is 2266. If you are in the Classifications module in Maximo, you won’t find any classstructureid anywhere on the screen. In Maximo 4.1.1 , they used to show it. Just because you don’t see it, that doesn’t mean it’s not there. You can query the database to find the classstructureid with this SQL query:
SELECT CLASSSTRUCTUREID, * FROM CLASSSTRUCTURE WHERE CLASSIFICATIONID = 'AIRDRYER'
You can replace ‘AIRDRYER’ with your own classification.
Moving on. Back to the excel document, the rows 7-12 are the asset attributes and the values for each attribute. You can notice that I have set the CLASSSTRUCTUREID field to the same value that we set for the ASSET. That is not to be confused with the AS_CLASSTRUCTUREID field we used earlier. When MIF imports data, it looks for certain fields to use for each object. So for example, when it inserts an asset, it takes the value from the AS_CLASSSTRUCTUREID column, and when it inserts the asset specs it takes the value from the CLASSSTRUCTURE column.
Next, another important thing to notice is the OBJECTNAME column. The value in this column is the object name found in the Object Structure module. This tells the MIF what object this row is supposed to be inserted into. So for example, the ‘ASSET’ value tells MIF that the data in this row in going into the ASSET object and the ‘ASSETSPEC’ value tells MIF that this data is going into the ASSETSPEC object. If you don’t specify these values, MIF with throw exceptions on you saying some fields are required.
The other thing you should notice is the order of the data. You can see that I entered the data so that whenever an asset has been classified, where the AS_CLASSTRUCTUREID has been filled, the following rows are the asset attributes and values. This works for me. I have tried to insert assets first, then tried to insert and associate asset specs at a later time and wasn’t successful. So it’s important that you follow this structure.
Now you are ready to import the data into the interface table and have the MIF fire away. Assuming you did everything right, you should now see the assets and the associated asset specifications. But wait, did you notice something? Did you notice that the asset status is set to ‘NOT READY’? But how is that possible if we set the AS_STATUS value to ‘OPERATING’ in the excel document? Shouldn’t it have changed? The answer is YES! Nobody wants to go through all the imported assets and manually change the status to OPERATING. So in order to have the assets change status to OPERATING when importing you have to change the restriction on the status field under database configurations.
Now when you import assets, the status should change accordingly.