Thursday, May 28, 2020

#769 Provisioning a SOA Suite on Marketplace instance in Oracle Cloud

The way to go for customers moving SOA Suite environments to the cloud.

Note: italics denote quotes from the ORCL docs.

What is SOA Suite on Marketplace?

Some background to begin with - SOA Suite is our flagship on premise integration offering.
The same was and still is available in the Oracle Cloud as SOA CS (SOA Cloud Service).

This new offering, available via Oracle Marketplace is the way to go, for those lifting and shifting their SOA Suite real estate to the cloud.

So what are the deltas between the new offering and SOA CS?

Differences between SOA Suite on-premise and the new offering -

SOA Suite on Marketplace includes -
  • BPEL
  • Mediator
  • Human Workflow
  • Business Rules
  • Service Bus
  • B2B
  • MFT
  • BAM
  • Tech and Cloud adapters
  • Enterprise Scheduler

Essentially SOA Suite on Marketplace is SOA Suite on OCI, leveraging lots of the infrastructure's OOTB features and functionality.

What parts of OCI are being used?

  • Resource Manager - An Oracle Cloud Infrastructure service that uses Terraform to provision, update, and destroy a collection of related cloud resources as a single unit called a stack.

      Ergo, we will be provisioning SOA Suite via a Terraform script.

  • Compute - An Oracle Cloud Infrastructure service that lets you provision and manage compute hosts, known as instances.
      Ergo, SOA Suite will be running on Compute instance(s).

  • Virtual Cloud Network (VCN) - for an overview of VCN, see here
  • Load Balancer - leverages the LB from OCI
  • Database - must be already provisioned, before provisioning SOA Suite.

Ok, now that we know what it is, let's get started.


  • Create a compartment - I called mine soaOCIcompartment -

  • Setup a VCN -
Select the compartment you just created -

Then select Networking - Virtual Cloud Networks -

Enter a VCN name and accept the defaults -

  • Create an ATP DB for SOA Suite -

Select Transaction Processing and Shared Infrastructure

Click Create and enjoy the show!

that was quick!

  • Generate Public/Private Key pair
Here I use PuttyGen

  • Configure Security Lists
Security lists act as virtual firewalls for your Compute instances and other kinds of resources. A security list consists of a set of ingress and egress security rules that apply to all the VNICs in any subnet that the security list is associated with. This means that all the VNICs in a given subnet are subject to the same set of security lists. 

Select Public Subnet, then add following Ingress rules -

same for port 1521 and 443 -

  • Installing SOA 

The output lists ip address/ports for SOA Suite

You can access this again via Resource Manager -

Check out the em console -

  • SSH into the SOA VM 

login as opc
then enter the passphrase from your key

$ sudo -s -H
# su - oracle

soa domain home is at - /u01/data/domains

Wednesday, May 27, 2020

#768 OIC --> HCM Data Extract Processing Pattern

Simple scenario here -

I need to pick up an HCM extract from UCM and process it in OIC.

There are 2 variations here -

1. simple pass thru processing - pick up the file and send as is to a target, in my case an sFTP server.

2. there is a need to transform the data from HCM, before sending downstream.

Simple Pass thru Processing 

Here is the delivery option definition for my extract -

Note the integration name above - this will be used in the OIC HCM invoke configuration.

The integration using the Scheduled orchestration pattern. 
I have added a schedule parameter - docID. 
For the first run, this will be set to 0. 
The final action in the integration flow is an ASSIGN to update this docID value to that of the document read.

 Here is the configuration of the HCM adapter in my integration -

Note the same Integration Name above.

Now to the Mapping - here we leverage the schedule parameter -

I now add an Invoke - write file to FTP

I map as follows -

Essentially, pass by reference - no need to process the file contents in OIC.

Read and Transform 

Here I need to read the contents of the HCM extract and transform them into the format required by the target system.

For this I require 2 xsds -
1 - describing the contents of the HCM Data Extract - this can be downloaded from HCM.
2 - describing the format required by the target. 

To get the Data Extract xsd - 
In HCM - My Client Groups - Data Exchange - HCM Extracts - Extract Definitions -

Click the pencil icon to edit the definition, then scroll down to the Extract Execution Tree

Click on the link above -

Very simple, once you know where to look!

Ok, I have my 2 xsds - now to reading the file.

So where is the file? Think of it as being in the OIC VFS - Virtual File System.
We need to read it from there, using the STAGE FILE action.

Also one needs to consider the possible file size. If it cold be 10MB+, then
we will choose the STAGE FILE option - Read in Segments

Note, I have set the File Name and Directory to variables returned by the getExtractFile operation.

I then specify the format - pointing to the XSD I downloaded from HCM

I then add an FTP Invoke - this is my target system, in this short exercise.

The FTP WriteOutputFile is configured as follows -

I also added an ASSIGN action to update the schedule parameter docId.

I do the required mappings, activate and run.

Note the Iteration above for the Read File in Segments action.