Wednesday, July 19, 2017

#589 concise doc explaining all things Fusion Apps

For those of you who are somewhat confused by the world of Fusion Apps.
Read and be assuaged.

Click here

#588 Oracle has been named a leader in the Forrester Wave Digital Process Automation Software

Rock on Oracle Process Cloud Service (PCS)

Oracle was cited by Forrester as a leader 

with the highest possible scores for the following -

·        Low-code/no-code
·        Smart forms and user experience
·        Process flow and design
·        Mobile engagement
·        API support
·        Data virtualization
·        Deployment options
·        Ease of implementation

Read all about it here

Tuesday, July 18, 2017

#587 It's the Platform, stupid!

Great article here from Den Howlett, a much respected industry pundit.

The article discusses Workday's plan for a developer platform, to
allow partners to integrate with and extend their offerings.
Sounds a bit deja vu when one considers that has been
Oracle's mantra since Day 1 of the cloud journey.

The article goes on to stress the importance of PaaS -

Analysts are of the belief that in the 21st century enterprise world, it is the platform that wins, not the application solution set per se. The reason is easy to see.

Here is the link to the full article.

#586 - PCS - features --> computed fields, notify activity, doc initiated processes

Just a short post about some features I have been asked about.

Adding computed field to a form 

Here is my Business Object -

I want to add a computed field to the form for the total price
(quantity * unitPrice)

Here is the basic form -

I add an extra field to the form - totalPrice and
configure as follows -

Setting email variables in Notify Activity

Here is my simple process -

I edit the EmailCustomer activity -

First step is to set the recipient -

Easy enough, now to the email subject - this I can set by concatenating
process variables. One, is my default text; this I concatenate with the product.

I can adopt the same approach for the email body.

Document Initiated Process

Here I have a very simple process that is initiated by the arrival of an order doc -

I have created an incoming document - newOrder

I deploy the process - and assign the role to the Docs user
configured in the PCS workspace -

As you can see, my user is cloud.admin.

Now I go to Docs CS and create a new folder for incoming orders -

I set the properties as follows -

I create an order doc -

and upload it to Docs CS -

Check PCS Task List -

The form is rather basic - I do agree!

but you get the idea!

Monday, July 17, 2017

#585 APIP CS managing Service Bus REST APIs

Simple scenario here -
I have a BPEL process running on SOA CS. This BPEL process validates the status of a visa.
The functionality is then REST enabled, via a Service Bus process, also running on the Oracle Cloud Platform.

Defining the API in Apiary

Just to show the API Design First Approach -

Naturally, I can test the API in Apiary, via it's Mock Server.
This allows my mobile developer to go off and create her
compelling mobile app, while I concentrate on the backend business
service implementation.

The Business Service Implementation

Here is the BPEL process - not much to it, but you get the idea!

Here is the Service Bus process -

I test this locally, using the embedded SOA Server that comes with JDeveloper.

The SOA CS Environment

I check for the IP address of the SOA Server by going to the Compute Cloud Service Console -

I have obfuscated the public and private ips in the following screenshot -

I will use this when deploying the artifacts from my local JDeveloper to SOA CS.

Deploying to SOA CS

I deploy the SOA composite to a SAR file and import it intoo SOA CS via enterprise manager.
Now to the Service Bus project -
Ok, one should script this, use a deployment plan etc. but the lazy man's way is simply
to change the references to localhost in the Service Bus project -

Again, the ip address in the screenshot has been obfuscated, but you get the drift.
Note: there are 2 occurrences of the ip address in this file - I change both of them.

I now export the Service Bus project and then import into Service Bus on SOA CS -

Networking on SOA CS

You may have noted port 9074 on the wsdl screenshot.
This is my https port, 9073 is http.
I need to ensure these are open. I do this via the Compute Cloud Service console - Networking

Here is the security application -

I have done the same for port 9074.

Test the API using Postman

Yes, I have wiped the name and surname.

So it is working fine.

Now back to API Platform CS to manage the API.

Create the API Definition in API Mgr Console

The REST endpoint is

I create an API definition based on this. Check out my posts on API Platform CS on the atomic steps
to do this.

Here are a couple of screenshots -

Here I create the link to the project in Apiary -

I then deploy the API to a gateway and publish to the APIP CS developer portal -

The developer can find the API and test it out.

Great Stuff!

Wednesday, June 28, 2017

#584 SOA CS / MFT CS 17.2.5 released

New Features include -

    - In-Memory SOA
    - IWS reports
    - Circuit Breaker
    - Includes WLS Continuous Availability pre-requisite

Provisioning has also been simplified - auto-creation of Oracle Storage Cloud Container etc.

Also a new look & feel for the SOA CS UI.

Click here to read.

Wednesday, June 21, 2017

#583 HCM integrations - ICS or SOA CS?

As we say in Ireland, there are many ways to skin a cat. The same applies to Oracle HCM.

To quote the docs -

Data Integration tools such as File-Based Loader and HCM Data Loader are primarily intended for loading data in bulk involving hundreds of transactions. Typically, you use these integration tools for an initial upload of large volumes of data and maintain the data in Oracle HCM Cloud thereafter. You can also use these tools to load data after the initial load to perform periodic batch-loading or upload changed data if you are continuing to maintain the source data elsewhere.

REST services and Atom feeds are intended as user-friendly web services involving transactions of smaller volume. REST services enable quick and real-time access to resource data within Oracle HCM Cloud.

Atom Feeds

are essentially notifications of HCM events, e.g. employee name change etc.

So we have many ways in and out of HCM.

Currently, the ICS HCM adapter (17.2.5) supports the HCM REST services.
These services are detailed here   

So currently ICS is a good fit for extension style use cases.
As the majority of HCM integrations are file based, SOA CS is still the integration tool of choice.

Now a final word on Atom Feeds (Events) - as mentioned above, the ICS HCM adapter does not explicitly support these. However, you can use the ICS REST adapter to plug into these feeds. 
A how-to is available here

Other Resources:

besides the official ORCL docs

1. Atom feeds subscription via SOA CS
Click here

2. File data loading via SOA CS
Click here

Also the most common use cases for the REST API are discussed here

#582 Great article on migrating your BPM apps to PCS

Here is a great article from my colleague Andre -

check it out here

Wednesday, June 7, 2017

#581 ICS 17.2.5 New designer features

17.2.5 has seen some changes to the ICS integration designer, let's have a look at some of them.

1. Orchestration

Select: lets one select 1 or more activities in the integration -

As you can see, those selected are highlighted.

I can now drag them to another part of the canvas -

Reposition: click Reposition,
then select the action or invoke you want to reposition,
then do so via drag and drop.

Orchestration Actions

Now let's look at the Actions available in 17.2.5 -

some new ones here -
Function call - call Javascript from your integration.
Logger - enables you to log to the Activity Stream and diagnostic logs.
Scope - allows you to logically structure your actions within a scope. Scopes now have their
own error handlers.

Raise Error: send failed messages to the Error Hospital.

Let's add some of them to the orchestration.

My orchestration has a REST trigger that has 2 paramenters -
1. OrgName
2. CountryCode

I will call a Javascript function to translate the country code into country name.

I begin by creating a couple of new variables via the ASSIGN action -

I now add a FUNCTION CALL -

Now I user the LOGGER action to log the response -

I then add a SCOPE -

As you can see, the scope has its own Fault Handler.
I now drop the createOrg invoke etc. into the scope using REPOSITION.

Click on FaultHandler and you are in, yes, the fault handler -

I activate the integration -

I test via Postman with country code = IE

I check the Activity Stream on the Monitoring page -

Excellent stuff!