Thursday, May 24, 2018

#631 OIC - VB CS calling Process Part 1

Very simple scenario here -

I create a new organization in a VB CS generated UI.
From this UI, I can kick off a PCS Process to approve the new organization.

It is very easy to create Business Object definitions in VB CS -















































the first 4 fields above are created by default (creationDate etc).


VB CS knows about the processes deployed in my AIC instance, in my case, only the one.





















Check out the configuration -






















Ensure you select the Runtime radio button.

VB CS provides for rich interaction with processes -
more about them later -


























I have created a form to create a new Organization -
















I have added a button to the generated form - Call Process - when clicked it should start a process instance -

Now to the action (button clicked) configuration -

























Now I simply drag and drop the Start Process Action -



























Now all I need to do is map the parameters -










































So succinct -




















Now to a simple test -




















Check in the task list -


























We can also display these tasks in VB CS - I have created a new page and now
drop in a List control

















Add Data to the list -





















Live Preview shows me the result -
















Check out the VB CS docs here

Chapter 7 covers Processes.


















Tuesday, May 22, 2018

#630 Autonomous Integration Cloud - the Value Add










The next iteration of our cloud based integration platform has been released recently.
Are we going to get another acronym - AIC? Let's wait and see.

But firstly, what are the deltas between the customer managed OIC and AIC?

OIC customer managed, means what it says - you are responsible for the environment, provisioning pre-requisites etc. You are responsible for patching, DB backup/recovery etc.

AIC is more like a SaaS experience, you just log in and use the stuff.


The screenshot above shows the context menu for my AIC instance.
As you can see, all I can do is use it; no weblogic console login, no enterprise manager login, no ssh.
I just use it, sure isn't that why I bought it?
I don't want to manage underlying infrastructure, I just need to integration my SaaS and on-prem apps.

From a functionality perspective there is 1:1 parity with customer managed OIC -



















The only component we have to wait for is Integration Analytics, which should be available soon.


Next great value add is pricing - check it out here


Wednesday, May 16, 2018

#629 OIC integration with Eloqua via REST adapter

The OIC Eloqua adapter is currently rather limited in its functionality



























Essentially you can create -
Accounts
Contacts
Fusion Leads
Opportunity
Purchase History as well custom objects

From an OIC perspective, this is only outbound to Eloqua.

So how do I get Contact data from Eloqua?
I have covered this in a post from 2016, but some things have changed.

Using the Eloqua REST API

The Eloqua API docs are here

BTW - I usually try the calls out in Postman, before configuring the REST requests in OIC.

The first step is to determine the base URL - 

GET https://login.eloqua.com/id 


That is, the base URL of the REST request, in other words, to which Eloqua server will I be sending this request.

























Line 15 contains the base url - in my case, https://secure.p03.eloqua.com

Now I want to get a particular contact from Eloqua - key is the Eloqua Contact ID.

Here is my contact in Eloqua -















As you can see, the ID value is CMK11000000000016

I only need the 16, for the get contact REST request.





















To get all contacts -

https://yourBaseURL/api/REST/2.0/data/contacts


























Now I want to search for a contact based on the email address, which is essentially unique in Eloqua.
Note: In the screenshot above, you see that the property - name - contains the email address.

My REST call is as follows -

https://secure.p03.eloqua.com/api/REST/2.0/data/contacts?search='name=abba@zabba.com'&depth=complete&count=100


So what do these parameters mean?

search - my search criteria. I can search on any Contact field/property.
depth - possible values - minimal (only a small nr of properties returned)
partial - all properties of the contact returned, as well as the minimal properties of related objects
complete - everything
count- max nr of records to be returned

The full description of the search option is here

Now to my REST request -

























For curl, use:
curl --user "yourCompany\yourUser:yourPwd" --request GET https://secure.p03.eloqua.com/api/REST/2.0/data/contacts?count=2 -k

I added the -k to avoid SSL certificate verification



Ok, that works fine, on to the OIC integration.
A simple scenario here- the integration will create a contact in Eloqua via the OIC Eloqua adapter.
Hoowever, there will be a pre-req check where I leverage the Eloqua to check whether the Contact
already exists within Eloqua.

I create the REST connection in OIC -












My Eloqua connection is already there -




















I create an orchestration -

The Trigger is REST.

I then add the call to Eloqua to check if the Contact already exists -




























Note: I will use "minimal" depth.

Here is the first draft of the integration - only testing the REST request -

























The Mapping is as follows -

















Here is the SWITCH condition -





















I now test the OIC integration, using Postman -




I now execute the same request with a new email address -





















I now add the logic to create the new account.
I could use the Eloqua adapter, but, as this post is concerning direct use of the Eloqua REST API,
I will use it.
































The mapping is as follows -














Below is the return mapping from the OIC integration.
As you can see, I am returning the current status of the contact from Eloqua -
















I test as follows -