Monday, November 21, 2016

Oracle ICS - Basic connections

Oracle ICS - Basic connections

Oracle has been introducing numerous PaaS solutions in the last couple of years. And there’s one we’re really excited about: Integration Cloud Service. It’s the next generation PaaS solution for easy integration of your cloud or on premise silo’s! We’re going to try and keep you posted on the new features, possibilities and awesomeness that Oracle is aiming for with the new Cloud Middleware.
I really want to show everyone how easy it is to connect something with this new Cloud Solution. So I’ll start easy and set up a tutorial to walk you through your first integration in ICS.
We’re going to setup a basic request, where we want to retrieve information from a free weather service.
There’s an interface exposed, we can use for getting some information and what the input should be.
When we login to ICS you see the dashboard where we can define our integrations and connections. We want to setup a new integration. But before that, we’ll need a couple of connections.


1) First we’ll setup a new connection, by creating a new one:


2) Select the SOAP connection type and create it.


This message will inform you whether it was successful, topleft of your screen:

Now it’s time to configure your connection:



3) Upload the WSDL of the interface you’re trying to connect to.
Upload and Ok.


4) Configure the security by setting the security settings to ‘No Security Policy’.

Repeat steps 1 to 4 but your connection role is ‘Trigger’ instead of ‘Invoke’.
Make sure it has the same configuration, and remove any security policies.

5) Now we’re ready to make an integration:



Click New Integration. This opens your integration window, where you’ll be able to link to new endpoint.
Give it a nice name and click Create.

6) We now need a trigger, and an invoke. Which fortunately we just made!

Drag and drop your Trigger to the left side, and your Invoke to the right!






Don’t forget to give them a meaningfull name. Name the integrations something usefull,and stick to naming conventions you agreed upon.
We now should have a similar setup as below.

This is what your integration should look like:


- Left shows the information that triggers your integration.
- Right shows the interface that will be invoked (for instance your on premise application).
- The menu on the right (not on the picture above) shows the connections you have available, that you may want to invoke (inside your ICS environment)


7) All that’s left is map your input/output in both directions, and some tracking!


Now define some tracking items:


Now activate your integration! We can skip tracing.


You can now verify your integration by looking at the details (little information icon). It will give you the WSDL location and endpoint for your integration!


Now we’ll test the application using SOAP-UI. Integration Cloud requires you to use Timestamp, Username and Password, so be sure to add these to your request!

And we’ll have a response!

As you see you can click new connections and integrations together really quickly! Plenty of time left to get a beer!

Oracle ICS - Troubleshooting ICS-20575

####### 1 #######
Adapter: Eloqua
ErrorCode: ICS-20575
ErrorMessage: 
Integration "<INTEGRATION>" cannot be activated. Incident has been created with ID 27. [Cause: ICS-20575]: 
-  Integration "<INTEGRATION>" " cannot be activated because of an internal error. Incident has been created with ID: 27.
  -  com.bea.wli.sb.transports.TransportException: Failed to create inbound JCABindingService for wsdl: servicebus:/ "<INTEGRATION>_01/Resources/resources/application_901/outbound_302/resourcegroup_397/Eloq_REQUEST.wsdl, operation: execute, exception: BINDING.JCA-12600 Generic error. JCA binding runtime error. Cause: {0}. Please inspect the diagnostic log to determine the reason, and if possible...
   -  oracle.cloud.connector.api.CloudInvocationException: java.io.IOException: Message sending failed!!
    -  java.io.IOException: Message sending failed!!
     -  Message sending failed!!

Moment of Error: This error happened while activating an integration where the Eloqua adapter was configured as a Trigger. Integrations where the Eloqua adapter was configured as an Invoke seemed to work fine.

Solution: We didn’t find a solution for the problem. What we did find was that in the latest release of ICS this problem doesn’t occur.
The version that crashes: Version: 16.3.3.0.0 (160716.2301.0530)
The version that works: Version: 16.4.1.0.0 (160924.1456.0623)

Tuesday, November 8, 2016

Oracle ICS - An introduction


Introduction
In this post I would like to talk about ICS. ICS stands for Integration Cloud Service. ICS is a Cloud platform for integration Cloud-Based applications. You can create a Cloud to Cloud integration, as well as On Premise to Cloud, or vice versa. The platform was initially launched in 2015 where it would suit the “citizen developer” for integrating cloud based applications in a fast and easy way.
When working with ICS you notice that Oracle tried to make integration an easy thing. One of the main highlights of ICS are the adapters, and this is where ICS shines. Integrating all the Oracle SaaS products, together with third party applications as well as several Social Media adapters as Facebook, Twitter and Linkedin, is done very easily with ICS. Of course you have the possibility to use any SOAP or REST interface you like.



Integrating
As a developer you don’t need to write a single line of code for you to use these applications in your integration, this is all done by Oracle. You just select the adapter(s) you want to integrate and you’re set to create an integration.
In the image above you see an example of a (real time) integration between Sales Cloud & Service Cloud. Sales Cloud is configured to, when modifying a business object in the application, trigger a call to ICS sending the information concerning this particular business object. In ICS you map the data using several Xpath expressions from one data schema to another, and sent it to the receiving application, in this case Service Cloud. Your accounts are now synced real-time between the two applications. ICS also lets you do a call-back, sending whatever data back to the sending application, or any other application you configured. This of course opens up an endless amount of possibilities where you can share or synchronize your data with other applications.




Orchestration
Besides integration ICS also gives you the opportunity to do a little orchestration. I.e. while creating a contact, you first want to check if the contact doesn’t already exists in the target application. Creating an orchestration is as easy as the integration is. You drag an application to the Start node of the pallet, walk through the wizard which lets you select the business object you want to use, and you can create the orchestration you would like. Currently the functionality is limited to actions like Assigning, Mapping, Return and Switch and of course calling other applications via adapters. There is not scoping or error handling there, but Oracle promised they would add this soon.



Conclusion
At the moment Integration Cloud Service is the most promising cloud integration platform for basic integrating multiple SaaS application. The functionality for orchestrating your integrations is there, but currently this still lacks some form of maturity for it to be worthwhile switching from the obvious options as SOA Suite or Oracle Service Bus. If you just need to integrate two or more cloud applications ICS is the way to go.
We’ll be soon discussing an integration from an on premise to a cloud integration. Stay tuned.