Plugin or No Plugin?
Reekoh’s ever-growing library of pre-built, multi-category integration plugins to various third-party systems and protocols is a major highlight and differentiator for our product offering and augments the core functionality of our platform.
However, there are always examples of integration requirements for systems where a pre-built plugin doesn’t exist yet in the library. This shouldn’t deter you though!
Even if there isn’t a specialist plugin already built, there are ways to integrate with systems using Reekoh’s powerful generic capabilities. This article will give you a view into three potential alternatives for certain use cases.
1. HTTP, OAuth and OData
Many modern applications support integrations that are based on some form of HTTP based interaction. Some of these applications implement modern RESTful APIs, which are simple to interact with using our generic HTTP Stream, Service or Connector plugins. Often, custom headers are required, customised messages or even unusual authentication methods. These plugins support all of this; sometimes through direct configuration (eg. Headers or internal Data Mapping) or can be used in combination with other plugins to achieve the desired effect.
For example, if you need to interact with a service that requires authentication first via a JWT or OAuth based authentication method, you are able to configure this directly in the HTTP plugin through the use of the Headers configuration option or the Authorisation fields. However, use of the Headers option, as may be required for OAuth, is non-optimal as content entered here is not stored in our secure vault.
Instead, you may be better off utilising the generic OAuth service plugin, which can emit the relevant bearer token for use by the HTTP Service plugin, which would be configured through the Authorisation Field/Key to use the token for the subsequent request. A best practice here would be to ensure that the HTTP Service uses an Output Mode other than Merge so that the token is not propagated further than needed.
A minor variation on the HTTP Service is the OData Service, which has been optimised for interacting with services that prefer payloads and queries in the OData format. As an example, this plugin could be used to interact with HxGN SDx, AVEVA Insight or SAP S/4 HANA.
Despite most applications moving towards a RESTful interface, there remain many that implement older style Web Services, usually using SOAP / XML messaging as their core protocol. Our generic SOAP plugin is able to interact with such services – point it at a WSDL, optionally select an operation or override a service URL (it will automatically select the correct one if possible) and tell it which fields from the input message are of interest for input parameters (it will automatically construct the message relevant for the operation) and which fields from the output message are of interest to you.
Whilst there is an existing SAP plugin capable of consuming the Web Services that get exposed over BAPIs, it should be noted that this generic SOAP plugin could be used in that context as in others.
3. Converter / Code Block
Sometimes tools, whether specialist or generic, just don’t quite do what you want them to do. When this occurs, you can fall back to using a Converter; a programmable code block that allows you to code what you want and pull in many third-party packages. If you’re needing to do your own HTTP interaction, you might use the “axios” library. Or, perhaps if you need to change the input time from Chicago time to UTC, you could consider using “moment-tz”.
Even at Reekoh, when we first encounter a new system, we may consider prototyping the interaction with that system inside a Converter before wrapping up that logic inside a dedicated plugin. For more complex systems, we may apply a combination of Converters, generic plugins and other components before wrapping that series of interactions inside a single plugin that encapsulates all of the complexity of interfacing with that particular system.
Hopefully, this article has given you some ideas of how you can approach integration using Reekoh, regardless of what you can see in our plugin library. We are constantly adding new plugins, and we’re always interested to hear about systems that you or your customers may require integrations for, so get in touch if you have some suggestions.
Aaron Watkins is Reekoh’s Chief Technology Officer