June 17, 2013

Syncing data with an external system using a Publish Channel

This entry is part of the Maximo Integration Framework series.

Publish Channels in MIF allows to send daya to external systems using a variety of protocols. In this article I will demonstrate how to automatically export new or updated assets into CSV/XML files. Those files can then be processed by an external application to perform additional logic or to replicate the assets.

Create an Integration Object Structure MYASSET and add the ASSET object as source.

Remember to select 'Support Flat Structure' if you need CSV export.

Now create the Publish Channel MYASSETS.

Create an External System (or reuse your own) and add the MYASSETS Publish Channel to it.

Enable Publish Channel and test that everything is ok using the 'Data Export' button. A CSV file should appear in few minutes in your MIF output folder (see mxe.int.globaldir system property). If you have problems check the JMS queues, JMSQSEQCONSUMER crontask and anything that may block the publish channel functionality.

To automate of the XML/CSV file when an asset is created or updated, you have to enable the event listener on the Publish Channel. Open the MYASSETS Publish Channel and select the Enable Event Listener menu action.
Now open an asset, change its description and save it. This should automatically trigger the invocation of the Publish Channel and you will see a new file in the MIF directory with the updated asset.


  1. Hi,

    Thanks for the information.

    This will export the data and keep the file within MAXIMO. I wanted to know how the external system data can be updated automatically. For a service request, I have created and OS, Publish Channel, Endpoint (with a web service as a handler) and external system. I have enabled the event listener on the Publish Channel. The external web service has a handler which will synchronize the SR status with MAAXIMO (parameters are SRSTATUS and TICKETID from MAXIMO). The message tracking application shows that the message has been received and processed, while I also see the XML file under the "txndata" folder in the global directory. However the status in the external system does not change, implying that the web service handler was not called.

    Do I need to do some thing additional to get it working?



  2. Integrating SCCD with a Public REST API using Invocation Channel and Endpoint.

    Hi Bruno,

    I have created an escalation, object structure,Invocation Channel and Endpoint with HTTP handler in SCCD and trying to call public Rest API by specifying the REST URL in the Endpoint url property.
    My public REST API accepts data in form of data and return a PMR no. I am able to test this Public REST API using POSTER rest client plugin of firefox by passing data in the body section in form of data.
    How can i send this data (data) to the REST URL through "Endpoint" of SCCD.
    Should i write "User Exit" class in the Invocation Channel ? or Extend the "HTTP" handler ?
    How can i use "HTTPEXIT" property of "HTTP" Handler ?
    Can you please share any sample custom Handler class ?

    1. Hi, Please let me know the approach you followed. Hopefully you have used HTTP endpoint and Get method..?

  3. Hi Bruno

    Thanks for this information. I have a publish channel that is outputting to an interface table for an external system. Currently the action in MXOUT_Inter_Trans is always 'Add'. Is there a way to be able to set the action to either add/replace/delete based on some defined rules?


  4. Hi Bruno,

    I have a publish channel setup with the event listener enabled, and i have an external system with flatfile as the end point. I wanted to know if there is a way to combine all transactions into one flat file using an automated process? Everything i have read tells me that the only way to export more than i record is using the manual "data export" button. Is there a way around this?

  5. This comment has been removed by the author.

  6. Hi Bruno,

    I was wondering if there was an article (that you may have written) that can help me extract to Excel with information under "list" for Purchase Orders and Requisition, with PR/PO #, Dates, Location, Supplier #, descriptions, etc. and add/delete the ones I need or don't.


  7. Is there any way to schedule it instead of using an event listener? For example, if I wanted it to run once a week instead of every time an asset is updated?

  8. Hi,
    I have a publish channel containing ASSET and ASSETSPEC objects. The Listener has been enabled and the propagate event check box in advance configuration is done. But when I am updating the alnvalue of any attribute on the specifications tab, it is not invoking my publish channel. Could you please let me know what can be done in order to invoke the publish channel from child object (also, I don't have to update the description of the Asset with the values of the attributes.