April 6, 2013

Flat CSV file export with Maximo Integration Framework

This entry is part of the Maximo Integration Framework series.

In this tutorial I will show how to configure the Maximo Integration Framework in order to export data from Maximo into a Comma Separated Values (CSV) text file.

To achieve such goal we must configure the following chain:
  1. Object Structure
  2. Publish Service
  3. External System
For more details about how the MIF works look at the Maximo Integration Framework overview.

If this is the first time you are using the Maximo Integration Framework, you should check that your MIF is properly set up before going ahead.


Object Structure

Open Integration > Object Structure application and create a new entry.
  • Object Structure: D-PERSON
  • Description: Demo Person Object Structure
  • Consumed By: INTEGRATION
  • Support Flat Structure: True
  • Source Objects: PERSON


Remove unwanted attributes from the Object Structure. This will simplify the structure of the output file and will greatly improve performances of the import/export process.
Select the Include/Exclude Fields menu and check all the Exclude check-boxes except the following:
  • PERSONID
  • FIRSTNAME
  • LASTNAME
  • DISPLAYNAME

Publish Channel

Go to Integration > Publish Channels application and create the following entry.

  • Publish Channel: D-PERSON
  • Description:Demo Publish Channel for Person data
  • Operation: Publish
  • Object Structure: D-PERSON



External System

Go to Integration > External Systems application and create the following entry.

  • System: D-EXTSYS
  • Description: Demo External System
  • End Point: MXFLATFILE
  • Enabled: True
  • Outbound Sequential Queue: jms/maximo/int/queues/sqout
  • Inbound Sequential Queue: jms/maximo/int/queues/sqin
  • Inbound Continuous Queue: jms/maximo/int/queues/cqin


Go in the Publish Channel tab and insert the D-PERSON channel created previously.


Don't forget to enable the Publish Channel and to save the External System.


Export data

To export the data stored in the Maximo PERSON table just click on the Data Export button. A dialog box will be displayed allowing you to enter an SQL where clause to filter to exported rows.
For simplicity just put a small number in the Export Count field to limit the number of exported rows.


Click on the OK button and your CSV file will be exported in a directory named flatfiles under the path specified in mxe.int.globaldir system property. In my environment the directory is D:\MIF\flatfiles. Here is how the output file should look like.

D-EXTSYS,D-PERSON,,EN
DISPLAYNAME,FIRSTNAME,LASTNAME,PERSONID
Tom Revis,Tom,Revis,REVIS
Fred Stanley,Frederick,Stanley,STANLEY
Keith Mills,Keith,Mills,MILLS
Mark Jacoby,Mark,Jacoby,JACOBY
Bob Pillance,Bob,Pilla,BPILLA


If the file does not appear in one or two minutes please verify your Maximo Integration Framework configuration.


Final considerations

Now you can include more attributes to your objects using the Include/Exclude Fields action of the Object Structure application or you can create your own object structure.
You may also try to import data in Maximo database or look at other articles about Maximo Integration Framework.

This is just the beginning of your journey in the MIF. Keep in mind that MIF is a powerful tool that allows to do many things.
Just to play a little bit let's do one last trick.
Go to Publish Channels application, open the D-PERSON object and select Enable Event Listener.
Now go in Administration > Resources > People and create a new person record. If you look in your MIF directory on the Maximo server and you should see that a new CSV file has been automatically created with the new person data.


12 comments:

  1. Bruno, is there any way to control the file name convention output from MIF? I noticed it outputs the publish channel name, with a unique ID and a .dat extension, but I don't see a really obvious way to do this.

    ReplyDelete
    Replies
    1. Where you able to control the file name?

      Delete
  2. Hi Bruno, When I followed the above steps I do get a file in global directory, but a xml file and when I see in message tracking I saw the message in received status . What might be the reason for this?
    I have tried changing the endpoint to my custom flat file but still no help.
    Please help :/

    ReplyDelete
  3. Hi Bruno, first of all I appreciate all your useful Maximo articles they are very helpful.
    I have an inquiry, when I create an Object Structure and set the include/exclude fields everything is working well. However, if I later added attributes to this Object they are automatically included in the Object Structure Include/Exclude fields. Can I control this behavior so that any new fields added are not automatically included in the Object? (set the default to be excluded)?

    ReplyDelete
    Replies
    1. I didn't find the legitimate way to do that but you could consider using views in object structures. You could select only required fields in the view.

      Delete
  4. Hi Bruno,thank you for informative tutorials! I am now facing a problem.After I output data from publish channels,there is nothing been created in the root directory.

    I pretty sure I have configured the system properties as guide,is there any part I might done wrong? Thanks!

    ReplyDelete
  5. hi Bruno

    i would like to create interface table in Maximo and client wants to call stored procedures and views in interface of oracle

    and how to create interface table for object purchase orders

    ReplyDelete
  6. Hi Bruno,

    I'm getting a nullBMXAA4157E error when exporting from PO table. Where should I start searching for the error?

    In the data, the object structure, the publish channel, the end point or the external system?

    Kind regards,

    Dave

    ReplyDelete
  7. hi Dave

    do you have any idea about above comments

    ReplyDelete
    Replies
    1. Hi Sakshi,

      Do you still need help or did you already resolve the issue?

      Delete
  8. Hi Bruno,
    I have followed all the steps and clicked on Data Export but I didn't find any flatfile in the mxe.int.globaldir path. I was wondering if you could help me in solving this issue.

    ReplyDelete
  9. I export nothing neither, don~t know, what~s worng

    ReplyDelete