Friday, September 23, 2016

#527 PCS 16.3.5 New Features Part 1 --> Introduction to Web Forms

Your starting point should be the What's New doc for PCS 16.3.5.

Click here to read it.
One of the most interesting additions is the new web forms functionality.
Let's be honest, the previous Frevvo based forms were rather basic, they've even been renamed Basic Forms. So now you have the choice, you take either the basic forms - very effective for eGov style forms based apps - or else the new web forms with their richer UI. So let's take a look.

Web Forms

From the docs -
This release introduces a powerful and intuitive new forms editor for creating forms without rules scripting. The editor lets developers create multiple views (presentations) for a single form, reuse forms within forms, brand them by uploading a CSS stylesheet, create list of values (LOV) tables, and fetch data using REST connections.The new forms editor is called Web Forms, and the existing forms editor is now called Basic Forms.



Here is a simple example, leveraging the following business object -









As already mentioned, in 16.3.5 we have the choice
between New Web Form and New Basic Form.


















The basic form has 1 new addition for this release.
Note: the new button on the palette - Manage Header Sets -
These allow PCS basic forms to call external REST services, protected by custom headers.











Again, from the docs -

For basic forms that fetch data by calling external REST services that are protected by custom headers, Process Cloud Service provides custom header support using a superset of Basic Auth support. 
Custom headers use tokens for authentication instead of a user name and password and are not shared with Composer during REST calls. The header can be marked as secret or can be made visible to Composer users.
You can map multiple headers to the same REST API call. For example, two departments can create different headers and map them to the same REST API call.
Read the full details here

I add the business object to the form -


















and that's it! Our basic form.

So what does the new web forms component offer us?

I create a New Web Form.

















Note the Basic Palette of widgets available -





















Note the form properties.




Note that one can also set the display for the target device -


Let's look at the UI controls, available in the Basic Palette -




Here is the Advanced Palette -



Note the Business Types available - my OrderBO is pre-seeded.

I can drag and drop OrderBO onto the canvas,as per the basic form.

Let's edit the product field -



Note the available Events -


Here I add an event to set the  units to 1, on form load.





I click Preview -



Great stuff!






Monday, September 19, 2016

#526 ICS Lookups

Simple example here.
I am syncing Contacts between Sales Cloud and Service Cloud -














In my example, the country designation for Ireland in Sales Cloud is Eire, while in Service Cloud, it is Ireland.

I created a lookup to capture this -



















Let's add Eloqua to the mix -










Now let's leverage this in the above integration - Here are my mappings -



 Note, I have not mapped Country.



I now map this, using the Lookup -



Note, I am using the ICS function --> lookupValue


I select the Lookup to use -








I specify the Sales Cloud attribute to be used - Country.















#525 Oracle buys Palerra








Check out the announcement here.
https://www.oracle.com/corporate/acquisitions/palerra/index.html

Also worth looking at their webinars, to see what's coming.

Check them all out  here



I found the one on API vs Proxy based CASBs (Cloud Access Security Broker) very interesting.














It is available on vimeo here


Thursday, September 15, 2016

Wednesday, September 14, 2016

#523 REST & ICS Orchestration Pattern and how to find the best pubs in Dublin

A simple example...

Here I create an Organization in Service Cloud -

input -

{
"OrgName":"TheHareOfTheDog"
}

output -

{

"Created":"true",
"NewOrg":[
  {"OrgID":"orgID"
  }
  ]
}

I create a REST connection in ICS -



















I now create a new Integration - selecting Orchestration













I drag and drop my NC-REST connection as the Trigger -










I configure as follows -




 I add my sample JSON response via the inline link.




 The result -



I add the Invoke for Service Cloud -









The result is -

























I do the mapping for the CreateOrgServiceCloud.











































I then map the response -






































I add a Tracking field -













I activate the Integration - and then check out the metadata link -

...oraclecloud.com/integration/flowapi/rest/NC_REST_CREATEORG/v01/metadata

















I test, using the url -
... .oraclecloud.com/integration/flowapi/rest/NC_REST_CREATEORG/v01/CreateOrg?OrgName=TheHareOfTheDog Financial Services

The Response -









Phase 2 - Looking for Pubs



Now, let's make this more interesting, let's have an Orchestration that searches for Pubs in Dublin.

I will leverage Google Place API for this.


Here is a sample Google Place request -

https://maps.googleapis.com/maps/api/place/textsearch/json?query=pubs+in+Kells%20Co.%20Meath&key=myGoogleKey

This will deliver me a list of pubs in the town of Kells in Co. Meath.
































The first pub returned is Jack's Railway Bar, an iconoclastic drink hole.

Now my app will restrict results to only those old enough to drink.

The request will be -
city and age.


The response is as follows -

{
"Result":"Great Pubs found",
  "Pubs" : [
    {
      "Name" : "The Hare of The Dog Pub",
      "Address" : "Harmonstown Rise Dublin 5"
    },
    {
      "ID" : "The Horse and Hound",
      "Name" : "Harmonstown Road Dublin 5"
    }
  ]
}

So I begin by getting a key from Google






































I note the API Key for future use - and use it in a simple test -


















Now I am looking for pubs in Dublin,
First Pub found is O'Donoghues Bar, a very fine hostelry.

I save this as a file for future use.

Now its on to ICS -


I create the REST Connection in ICS - and configure accordingly.
Note: no security is required. I will be hard coding the key in my ICS Integration.

























This I now create -






I drag and drop my generic NC-REST connection as the Trigger.

















































I add a Switch to check the user's age -































































I drag and drop my Google Place REST adapter  - and configure it.















































I add the saved response json via the inline option




















Note: I filled in any empty [arrays] beforehand.

















I do the required mapping -















I enter my Google key, note no quotes!


I set the response -


























I also set the response for the Otherwise path -
























I set the Tracking and Save.

Then I activate and test -


















Now I look for pubs in Dublin -

My request is of the format -
https://my ICS Instance/integration/flowapi/rest/NC_FIND_HOSTELRYS/v01/findPubs?yourAge=32&place=pubs+in+Dublin

The result is a list of the finest hostelries in the fair city of Dublin!