Thursday, May 24, 2018

#631 AIC - VB CS calling Process

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.



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 -




















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 -





















Wednesday, April 25, 2018

Thursday, April 19, 2018

#626 Integration instance tracing in OIC

Instance tracing is very useful in the development phase -
Now we can activate this globally - e.g. for our Development OIC instance -



















or at instance level -
































Here is my Orchestration -






















If I enable tracing -



















If I don't -








Note: the payload is not written to the Activity Stream, it is written to the diagnostic-log, which
you can download from the Monitoring --> Dashboards page.












Tuesday, April 17, 2018

#625 Installing the APIP CS Gateway

I started by logging in to the Management Console as a Gateway user.
The Gateway user has the Gateway role assigned and so she can manage Gateways.



















I create a new Gateway -














As you see, I called it DevGateway - what an innovative name!


I click on the Grants node and assign some permissions on this gateway.


















I can do this for the various permissions -










































I download the installer -

















I unzip it -



















Now back to the Management Console -







We need to generate a node properties file that will contain such info as the
mgt console url; they will need to communicate after all.

This file is called gateway-props.json and will be created by the install wqizard. So 
I click on Open Installation Wizard. 
















Accept the defaults and click the next icon -
































We now download the generated config file -































I now execute the installer -

python2.7 APIGateway.py -f bb.gateway-props.json -a install-configure-start-join

install, configure, start are self explanatory.
join- registration of the gateway node with the APIP CS Mgt Console.































The step above has done the join i.e. I now need to go to the Mgt console and approve the new node.

















As you see, the join request is awaiting processing.







I can set the polling interval -

















thanks to my A-Team colleagues for making this as simple as possible.