Import data with Maximo Integration Framework (MIF)

This entry is part 1 of 13 in the series Import Data with MIF

The new Maximo Integration Framework, formerly known as Maximo Enterprise Adapter (MEA), makes it easy to import data.  I will show you how you can import data into Maximo from an interface table.

This text is available for purchase but you need to login or register first. Please Login here.
Series NavigationScreencast: Import users and passwords with Maximo Integration Framework
About Chon Neth

I am a Senior Software Engineer at InterPro Solutions, LLC located in Wakefield, MA.

  • mmd

    For the part where we insert into MXIN_INTER_TRANS:
    every asset needs to have unique TransID? or multiple assets have same Trans ID that are inserted at the same time(same transaction)? also TRANSSEQ # is it same for the same run.

    Example:
    If I am importing 1,000,000 assets(has asset, assetspec, location spec, etc) at one time(done by sql script). All Assets have Same TransID # & Same TransSeq #?
    Everytime the Cron tasks runs and see update in the IFACE table TransSeq # gets changed, or TRANSID & TRANSEQ# both change?

    Also besides the Assets table IFACETPASSET tabe, I used Assets Object Structure only, not MXASSET that has multiple objects, I also created IFACETP* table for Locations, Assetspec, locationspec, assetancestor, assetspechistory, assetstatus, assettrans objects and are all part of one External System (EXTIMPORT).

    So for each the other tables TRANSID# is same or different.

    I need more clearification on how to use TRANSID# and TRANSSEQ #.

    Physical example: Asset1, location1, asset1spec, location1spec.
    when brought in to MXIN_INTER_TRANS all have the same TRANSID# and TRANSSEQ#?
    and how about asset2, asset3, location2, location3. etc

    Please help on this subject.
    Thank you.

    • http://interprosoft.com Chon

      TRANSID and TRANSSEQ have nothing to do with the actual asset ID you are inserting. Those ID’s are used by MIF only. The TRANSID is the transaction ID that you specify when inserting into the MXIN_INTER_TRANS table. Then the TRANSSEQ is the sequence it uses to import the assets. For example, if you have a 1,000 assets to import, you can set the TRANSID for each record to 1 and set the TRANSSEQ value from 1 – 1,000 and non of those TRANSSEQ numbers should be repeated. Now when you insert a record into MX_INTER_TRANS, you specify the TRANSID as 1 and that tell MIF that you want to import all records that have a TRANSID of 1. It will then insert each record in the order you specify with the TRANSSEQ. The sequence is important if you are importing hierarchical assets. For example, if Asset1 is the parent of Asset2, the TRANSSEQ for the Asset1 should be set to a number lower than the one for the Asset2. Otherwise, the import will fail if you do it the other way around.

      Now in this same example, you can set the TRANSID for only half of the records to 1 and the other half to 2. So the first 500 records will have a TRANSID of 1 and the other half with have a TRANSID of 2. Each set will have it’s own TRANSSEQ. So, now you can insert a record into the MXIN_INTER_TRANS table and specify a TRANSID of 2 and that will ONLY grab the records that have that ID and run the import. All the records with TRANSID of 1 will not be imported by MIF.

      Hope this helps!

  • mmd

    The information for TransID and TransSeq was very helpful, thank you.

    I gotten to the end step in the instructions above: after populating the mxin_inter_trans table, should pick up the entries and run the import. Says: Verify the successful import in the “Asset module”.

    What is the Asset module?
    Start center –> go to –> asset, and the new import assets should be their? if so I don’t see the assets their.

    Also when I set the cron task: JMSQSEQCONSUMER it should email every time it runs it, but as admin(maxadmin) I am not getting emails(I am not sure if the cron task is running), but in the JMSQSEQCONSUMER History it shows it’s running every 30 seconds. I looked at the System Properties: mxe.int.dfltuser = mxintadm
    I want that to be maxadmin? After which I should get the emails? It lets me change the Global Value, so I changed the value to maxadmin, but Current Value is still mxintadm, I saved and did live refresh, but in it doesn’t give any option to pick Global properties, says no properties were selected.

    Is their any other location where I can activate email notification?

    • http://interprosoft.com Chon

      The assets should appear if everything ran correctly. As for the email, make sure you set the SMTP in the System Properties.

  • mmd

    Hello Chon,
    We are able to get the data input, but every time we run the sql query in the back to run it, we get message reprocessing error.
    BMXAA1331E – The user name supplied is not authorized to perform this operation.

    the user we use to do input into database is the default Maximo.
    In the Message Reprocessing we can see the queue JNDI name and error message, we select the record and in the status have to do status change to: hold transaction and it works. But i have like million records to input and on each one would have to do this, any suggestions.
    Thank you.

    • http://interprosoft.com Chon

      The username that should be used when importing is the MXINTADM and that user should have full rights to do any kind of import. I am not sure why you are getting that error.

  • Nitin

    I have followed all the steps provided (As-Is), but I still dont see the assets INSERTED in Asset module.

  • mmd

    The Object Structures, Enterprise Services, External Systems, & interface tables have been created with the user MXINTADM.

    After running the script to do data population get the following error when we check GoTo–> Integration –> Message Reprocessing:
    BMXAA1331E – The user name supplied is not authorized to perform this operation.

    At Message Reprocessing on the Right can click on Details and click Process and the input statement works.

    Also here the Status changes from Retry to Hold after a few seconds automatically.

    Can you please let us know what kind of security group you MXINTADM is in?

    For us the MXINTADM is part of the following:
    MAXADMIN, STDSVCMGR, TOOLMGR, ITEMMGR, EVERYONE.
    THE MXINTADM is checked for Independent of other groups.

    Thank you.

    • http://interprosoft.com Chon

      If you are entering assets and you set the ‘EnterBy’ field as another user other than MXINTADM or MAXADMIN, make sure that user has permission to enter assets. Otherwise you will get that error saying the user doesn’t have permission. Those security groups should be fine for MXINTADM.

  • mmd

    Where do we set the ‘EnterBy’ field?
    Which table?
    Is it in the GoTo –> Database Configuration
    Object: MXGLTXN
    Attributes: ENTERBY
    Default Value: ? (Over here it’s blank right now)
    Do you want us to make this MXINTADM?
    We never set this before.

    • http://interprosoft.com Chon

      You set the ‘EnterBy’ field in your data import process. Just like when you enter a new asset through the front end, there is an enter by field. You just basically populating that field.

  • mmd

    In the front end when we create a new asset the field says ‘Changed by’ is that what you are referring to?

    Thank you.

    • http://interprosoft.com Chon

      Yes, sorry for the mistake…

  • maxla

    I’m following up with MMD about the same error. In order to narrow down the source of the problem, I only insert one row into ifacetplocations (interface table for LOCATIONS) like the following,

    insert into maximo.ifacetplocation
    (location,type,changedate,
    changeby,disabled,classstructureid,siteid,orgid,isdefault,status,
    locationsid,useinpopr,transid,transseq,autowogen,statusdate)
    values
    (‘TPL’||seq_locsid.nextval,’OPERATING’,to_char(sysdate,’DD-MON-YYYY’),
    ‘MXINTADM’,0,’1323′,’DIST’,'POWER’,0,’OPERATING’,
    seq_locsid.nextval,0,1,seq_transseq.nextval,0,to_char(sysdate,’DD-MON-YYYY’));

    insert into maximo.mxin_inter_trans
    (transid,extsysname,ifacename)
    values
    (1,’EXTIMPORT’,'TPLOCATION’);

    commit;

    Somehow, the system still complains about the same error message which is “BMXAA1331E – The user name supplied is not authorized to perform this operation.”. By switching the status from RETRY to HOLD and then pressing the “PROCESS” button, the import operation then went through by inserting one row to LOCATIONS and 48 rows to LOCATIONSPEC. One thing I noticed by checking the newly inserted 48 rows in LOCATIONSPEC table is the value of the CHANGEBY field are all set to “MXINTADM”. My hunch is by pressing the PROCESS button, it sent the value of “MXINTADM” to the CHANGEBY field for all 48 rows in table LOCATIONSPEC. Right now, I’m stuck and don’t know what to try next in order to make it works without prompting the same error message! Thanks.

    • http://interprosoft.com Chon

      Have you tried setting the “default insert site” for the MXINTADM user?

  • mmd

    Hello Chon,
    The default site in the top right corner under Proflie was set to the proper site but it still didn’t work.
    The following is the error we get:

    Did you have to make any changes to the web shpere application server?

    The transaction error file is [DriveName]:\IBM\WebSphere\AppServer\profiles\ctgAppSrv01\error\jms.maximo.int.queues.sqin\EXTIMPORT\EXTIMPORT_TPLOCATION_1256159161346309442.xml.
    psdi.util.MXApplicationException: BMXAA1331E – The user name supplied is not authorized to perform this operation.
    at psdi.iface.mic.MicService.processExternalData(MicService.java:973)
    at psdi.iface.jms.QueueToMaximoProcessor.processMessage(QueueToMaximoProcessor.java:107)
    at psdi.iface.jms.JMSQueueCronTask.getMessage(JMSQueueCronTask.java:302)
    at psdi.iface.jms.JMSQueueCronTask.cronAction(JMSQueueCronTask.java:196)
    at psdi.server.CronTaskManager.callCronMethod(CronTaskManager.java:1549)
    at psdi.server.CronTaskManager.access$400(CronTaskManager.java:83)
    at psdi.server.CronTaskManager$CronThread.run(CronTaskManager.java:2067)

    Thank you.

    • http://interprosoft.com Chon

      I am not able to reproduce this error so I can’t really help without looking at it. We can provide remote support services if you are interested.

  • mmd

    Chon apologize for the long delay for you offer to help, i have been dealing with other issues on other projects, soon as I get back to this project I will talk to you more to explore the option you mentioned.

    Thank you.
    Regards