Earlier in 2017 the Oracle A-Team released a Python library that abstracts the ICS REST API to make some management tasks that you may wish to perform easier. For example identifying a set of integrations and activating or deactivating them, or simply importing and exporting them. In this Definitive Tip we will look at the REPL tool and its benefits. The REPL tool can be downloaded here.
Category: Definitive Tips
The techniques for integrating Oracle Human Capital Management (HCM) and several other Oracle SaaS solutions can require the use of Oracle Transactional Business Analysis (OTBI). The need for OTBI comes down to the fact that to access to the relevant data an API is not available. OTBI can be configured to generate a report and then transfer the report using FTP. When the report needs to be consumed by ICS then an obvious FTP location is needed. One such option to hold a file for ICS to retrieve is the FTP server provided with the SaaS services (details here).
However, it has come to light that the original intent for this FTP service was for holding bulk data intended to be used for ‘priming’ your HCM instance. As a place for staging data for ICS is in the mid to long term it isn’t recommended. The roadmap for the SaaS product team may result in removing the FTP server.
FTP Data Staging
So the question begs, where should we put the data coming out of OTBI to be consumed elsewhere? Well the next option would be to use Oracle’s Managed File Transfer (MFT). Although historically listed with SOA Cloud Service (SOA CS), it is independently priced and has become a 1st class citizen of the PaaS family more recently. For MFT to be an option it needs to include an FTP server which it does. But MFT also has the abilities for doing a number of orchestration processes, such as calling web services when files are ready. Meaning no need for downstream processes to have to pole for available files.
Enriching an integration from data in a database or DBaaS (Database as a Service) is not an unusual requirement. Many integration use cases today need to access a database that is on-premises. The means to connect to the database is fairly obvious – the connection agent. Our book goes into a lot more detail as to why that is, and the implications of using database connections.
However when it comes to Oracle’s DBaaS a service it would be very easy to assume that given that you’re using two different parts of Oracle’s PaaS that it would be straight forward to connect the two together without an agent. However, at least today whether its on-premises or DBaaS you need to use a connection agent. This does mean that you’ll need an IaaS node to host the connection agent.
This quirk is driven by the fact that there are some scenarios that this does actually make sense. For example – the Oracle domains need to have a high level of isolation, so when the DBaaS is in another domain then the decoupling via the agent makes sense. When your database is in a different zone of the cloud – then you’re running DB calls across what is effectively a wide are network – not good.
The question of conditional mapping comes up regularly on the ICS part of community.oracle.com which prompted us to write this blog. So if you want the output of an integration in element X to contain value from element A or B depending upon element C there are a number of answers, each having pros and cons. So let’s look at them before we offer an example of how we would solve the simpler more common problem.. Your choices are ….
- Use the power of XSLT within the mapping,
- Use the conditional option Within a Basic Map Data or an Orchestration pattern,
|Single path through the integration||Simpler to read and see visually||Can be used either in the condition oer the mapping. Easier to apply than XSLT directly.|
|ICS doesnt make it the easiest to write this, but reading is fairly easy||Easy to visually understand, but means more maintenance effort||Easy to incorporate, but makes the development process multistep|
- W3C – perhaps not the easiest to read, but definitely definitive,
- XMLSchool far more readable but keeps things simple, and focuses on XSLT to create (X)HTML content
In our book we talked about the difference between the agents offered by ICS, namely the Connection and Execution agents. Whilst we differentiated the two, we did focus on the connection agent as this is the type we expect to see used in most cases. However the execution agent still suffers from a level of confusion, and it has been helped by being called ‘ICS on-premises’.
As part of a number of recent conversations the questions and confusion of what the execution agent is and how it works has come up. There is the well known saying ‘a picture is as good as a 1000 words’ which prompted us to develop the diagram below as a power point slide – in its power point form much of the detail is used as an animated build up.
In the last few years Oracle’s iPaaS offerings have progressed significantly from one or two solutions such as Mobile Cloud Service to in excess of 35 offerings. This makes it challenging to decide which product(s) to use. The means for selection depends upon a range of factors including:
- Most suitable licensing model (ICS provides a lower cost of entry than SOA CS as you’re paying by message volumes)
- Development skills and desire to resilience or invest in people (SOA on-premises to SOA CS is easier than a technology change such as ICS)
- The amount of control you have in an environment – JCS offers more control than ACCS for example
In ICS Definitive Guide #2 we looked at the scheduling of integrations and mentioned the possibility of using iCal. In this tip we shall explore advanced iCal facility for defining schedules within ICS.
The iCal format is probably best known for sharing meeting events in tools such as outlook. The format is actually a standard defined by the IETF originally in 1998 (https://www.ietf.org/rfc/rfc2445.txt) and updated several times the latest being 2015 (https://tools.ietf.org/html/rfc7529). The goal of the definition has been for the purpose of driving standardisation across PIM tools (Personal Information Management) tools which includes Outlook and Thunderbird etc. It is a substantial standard the original document ran to 150 pages, but the section supported by the schweduler’s advanced option purely relates to the reoccurence definition covered by section 4.3.10 of the original RFC, and only takes five pages. If you want to know lots about iCal and the varying revisions then you may find https://icalendar.org/ helpful.
It is worth mentioning that today ICS under the hood exploits Oracle’s Enterprise Scheduler Service (ESS). ESS documentation identifies that it works to the 2445 version of the specification (see here). ESS became a 1st class citizen component with the start of the 12c middleware product stack. As a result, if you see any errors processing an iCal configuration the error codes will reference ESS does.
In this Definitive Tip, we are going to look at the ability to use Versioning on Integrations to seamlessly deploy update integrations is an important requirement of any enterprise integration platform.
ICS supports the model of semantic versioning, perhaps better recognised as versioning as Major, Minor and patch. Which is best described at http://semver.org/.
This post will demo a minor and then a major version change. So we can see how change as the behaviours change between the two. A major change indicates an likely change in definition and minor one reflects logical change.
Seeing Versioning in Action
To demonstrate versioning we need an integration that is currently active. Ideally, you will have some sort of data feed or test framework, such as SoapUI or even a simple cURL script regularly triggering the integration. We need this script running to demonstrate the impact of the cutover.
Definitive Tips, like our Definitive Guide posts address features could not be incorporated into the book, either simply because the feature is new or simply down to the fact the new feature arrived since the book has been published. Unlike the Definitive Guide entries, the tips will always remain very short. The first tip will address content filters in the designer.
Designer Content Filters
Release 16.4.5 introduced a new filter feature to help improve the location of Integrations, Connections and other designer elements. If you visit the Integrations parts of the designer for example, you will now see additional options included in the banner as highlighted in the following screenshot: