Quit Using Publish Channels for your Application Logic

Coding

Ever since IBM introduced publish channels, Maximo administrators and developers have had a relatively straightforward mechanism for outbound integration that typically occurs on record update. However, publish channels can also operate on a series of user-defined rules that can scrub the outbound data and even halt the operation with an error message to the user when the record is saved. Unfortunately, this feature has been largely abused since the other mechanism of customization prior to Maximo 7.5 was to write custom Java code, which is difficult to maintain, debug, and apply.

Publish Channel rules themselves, however, require a significant level of documentation and maintenance to continue to adapt to business needs, and often get forgotten until a boundary case is stumbled upon. It’s generally left to a new developer or admin to track down the cause of the issue in a development environment in an attempt to reproduce the issue with very little history.

However, there are far better options these days. A combination of Automation Scripting and conditional UI offer a far better mechanism for app customization. This is largely due to the ability to easily commit and track Automation Scripts within a source-controlled environment. Changes can often be more quickly identified using different tools against the previous and current script versions. Documentation is also easily embedded in the form of comments. For more simple changes such as setting a default value, there are provisions in conditional UI for this as well.

The bottom line is that publish channels have their place, and rules are a huge benefit when it comes to ensuring that your outbound data passes muster, but it can easily get out of hand when every nail looks like it needs the same kind of hammer.

Daniel Brame
ITS Solutions Consultant

Follow Daniel on Twitter