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 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.

Syncing data with an external system using a Publish Channel

17 thoughts on “Syncing data with an external system using a Publish Channel

  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 ?

  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. 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.


  6. 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?

  7. 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.


  8. Hi Deipti / Prashant

    Can some one please send me step by step guide to achieve this at my email

    I need to do that same at my end.

    Create wo in external application using Rest Json Api Aproach automatically based on an event like workorder created in maximo , Status Update in Maximo as approved status, etc.. as an outbound transaction.

    I also need to achieve inbound trasaction to update work order in Maximo based on inputs in Json / Rest api formatted file file from external system.

  9. Hi,

    Anybody done rest integration using json mapping in maximo envionment , if done could you please provide the steps how to send the request and receive the response from maximo to sap, it will be helpful from my end

  10. Hi Bruno,
    I am trying to add additional data to the XML generated from an Object Structure in a PublishChannel and then pass to an XSL file that will transform to the format necessary for the external application. My WorkOrder object structure has 8 objects. I need to be able to read values from one of the child objects and then pull data based on those values from the database and add to the XML to be passed to the XSL. I am trying to use a User Exit Class to do this, but can't seem to get to the child objects. I would appreciate any assistance that anyone could offer.

    I am attempting to use this method:

    public StructureData setUserValueOut(StructureData irData, StructureData
    erData) throws MXException, RemoteException


  11. Hi! Did you manage to resolve this? I'm currently needing a similar functionality, where an external web service is called when a certain WO status gets updated.

  12. Has anyone found a forum entry with an example of a synchronous json rest interface outbound from maximo to an external service?
    I believe this would be via invocation channel.
    Would like to put a control on an app that when invoked / clicked, passes a data set from the current record (via object structure) outbound to a defined service endpoint, then secondly process the response (specifically store a returned value, open a dialog box).
    I have configured inbound end points successfully to receive GET / PUT / POST but have not understood outbound via rest json.

Leave a Reply

Your email address will not be published. Required fields are marked *

Scroll to top