Wednesday, April 19, 2017

#560 - ICS REPL tool from Oracle's A-Team

Those boys have done it again!

A great tool to manage your ICS instances and integration lifecycles from the cmdLine.
REPL - Read Evaluate Print Loop.









Download and use it to speed up your work with ICS.

Read all about it here

Enjoy!

Friday, April 7, 2017

#558 ICS Eloqua adapter revisited

I sometime get questions on which use cases can be supported via the ICS Eloqua adapter.
So here are some details from the docs -

The Oracle Eloqua Cloud Adapter enables you to create an integration with an Oracle Eloqua Cloud application. You configure the Oracle Eloqua Cloud Adapter as a trigger (inbound) connection (Oracle Eloqua Cloud to Oracle Integration Cloud Service) or as an invoke (outbound) connection (Oracle Integration Cloud Service to Oracle Eloqua Cloud).
Oracle Eloqua Cloud provides cloud-based marketing software that delivers marketing automation for industries such as finance, health, media, real estate, sports, entertainment, and so on. Oracle Eloqua Cloud simplifies marketing procedures by delivering leads targeted to new customers. Oracle Eloqua Cloud helps manage and organize marketing segmentation and marketing workflow.
The Oracle Eloqua Cloud Adapter accelerates integrations between Oracle Integration Cloud Service and Oracle Eloqua Cloud systems. The Oracle Eloqua Cloud Adapter synchronizes accounts, contacts, and custom objects from Oracle Integration Cloud Service to Oracle Eloqua Cloud systems. Accounts can only be synchronized from Oracle Integration Cloud Service to Oracle Eloqua Cloud systems, and not in the other direction.

The salient sentences are -

The Oracle Eloqua Cloud Adapter synchronizes accounts, contacts, and custom objects from Oracle Integration Cloud Service to Oracle Eloqua Cloud systems. Accounts can only be synchronized from Oracle Integration Cloud Service to Oracle Eloqua Cloud systems, and not in the other direction.

Here is how it is implemented in the ICS adapter -



















So this is a one way adapter for keeping the Eloqua Business Objects - Accounts, Contacts, Fusion Leads, Opportunity, purchase History in sync with other apps. I assume that "Vehicel" is a custom business object defined by one of the Eloqua instance users,

The Eloqua adapter can be used as Trigger as well as Invoke, since version 16.4.5.
Use of the Eloqua adapter requires an Eloqua app to be installed.
Details can be found here


So what about other use cases?
Eloqua provides a rich REST api.























REST API details can be found here

Now let's look at the Eloqua adapter as a trigger in ICS -











































btw. the Eloqua adapter uses the Eloqua Bulk API under the hood.


Happy Marketing!


Thursday, April 6, 2017

#557 PCS Correlation and PCS calling ICS

Nice new feature in PCS.

from the docs...
Correlations enable business processes to communicate with each other based on the state of an instance. The state of all the process data objects in a process defines the state of the instance.
When you define a correlation for a business process, you can identify an instance in another process based on the instance state and then send a message to that specific instance.
For example, you can use correlations to communicate a sales process with the corresponding shipping and mailing processes. When the customer confirms an order, the shipping process sends a message to the shipping and mailing processes using a correlation that defines that it uses the order ID to locate the instances in both processes.

I will use a couple of ICS instances to demo this.  
Here's the first one - Trigger is a SOAP adapter, Target is the Service Cloud adapter. 






All it does is create an Organization in Service cloud.

I configure PCS to point to my ICS instance -









This will be used later, when I browse ICS to retrieve Integrations.

Now to my simple PCS process -






I will call the ICS process when the new organization is approved.







Thanks to my colleague Chris P. for pointing out that I need Username Token here.













I do the data associations, and that's it.







I deploy and test -













I approve the new organization -















It completes successfully -






I check in Service Cloud.






Now I add a mid process receive to the PCS process.
It will wait for a confirmation that the organization has been created.
I will need to add correlation to the process to enable this.

































I Initialize Correlation at the Start activity - setting the property 
to the incoming orgName value.



I now add the Message Catch -












Here we wait for the confirmation -














I set the correlation -






I re-deploy and check the wsdl and see the 2 operations -







I now instantiate a new instance of the AppproveOrg process -













The process is waiting for confirmation -






I now execute a call from SOAP-UI -







The process completes -




Thursday, March 30, 2017

#556 ICS 17.1.3. Orchestration Features --> Global Fault Handling

Here is my simple Orchestration -



























All it does is check if an organization exists in Service Cloud, creating it, if it does not.

So what features are interesting here?

How about a global fault handler?

Global Fault Handler

To quote the What's New doc -
Here you can configure global fault handling to catch faults in an orchestrated integration and perform actions

You can add global fault handling to orchestrated integrations. This functionality enables you to direct business faults back to the caller or apply business logic before sending faults to the error handling framework. You can add fault handling to any integration type (for example, asynchronous, synchronous, or scheduled fire-and-forget (no response expected)).

So let's do it -















Now I can define the error handling required -


















Here I add a Notification -




















I could also add the error itself to the Body of the email -

I begin by adding a parameter and setting it to the error code.