Decisions and Business Rules in Oracle Integration (OIC) to support an Automation Process Platform

Business rules (later “decisions”) always play a crucial role in a process automation platform

As you probably already know, Oracle Integration (OIC) is a complete business automation platform cloud based, fully Oracle managed, that enables customers to connect their applications and data, automate business processes, and innovate with AI. This is what we define a unique and complete toolkit for integrating and connecting applications and technologies

Today, as a new enhancement of this platform, we have the chance to build decision rules directly in integration projects giving you the power of the flexibility and agility in building new automation processes leveraging rules based on “if-then-else” or “decision tables” patterns

When building your integration projects in OIC, you are now able to add several components so to build your specific implementation leveraging the components you need adding to the project the functionalities like the pure integration flows with connections, robots, B2B, Healthcare and now Decisions, too

Once decisions are added to your project, you can design and later test what you have implemented to verify the correctness of the rules

And selecting the decision type you can design your logic

In this way, decisions allow you to ensure consistency in decision-making throughout the organization. Decisions ensure that the same conditions always lead to the same outcomes, reducing the risk of errors due to subjective or inconsistent judgments. This standardization now extended to all components in OIC, and it’s particularly useful when the same decisions are made across multiple processes helping also the reuse of those rules

Decisions define a clear decision points which can be automated within a process, such as determining eligibility for a loan, assessing the risk level of a transaction, or triggering approvals. Automating these rules you can reduce manual intervention, accelerating processes, and ensuring timely and accurate outcomes.

Consider that “decisions” are typically decoupled from the process logic, meaning they can be modified independently of the core workflow. This makes easier to adjust processes when business requirements change—whether due to new regulations, market conditions, or organizational changes—without needing to re-engineer the entire process. This flexibility helps the business to remain agile and responsive.

Below a sample just to consider how business rules, via a decision table, can be built leveraging a flexible and easy way to maintain the changes and using a simple and standard browser

A decision table, like that one shown before, can consist of an input expression and several input entries. It is represented as columns within a table. You can use input variables, outputs of other decisions, or built-in functions to define input expressions.

Of course, business rules (decisions) are essential for ensuring that processes are compliant with laws, regulations, and internal policies. For example, in industries such as finance, healthcare, or insurance, where compliance is critical, business rules ensure that processes adhere to the necessary legal requirements. Decisions can be updated when regulations change, ensuring ongoing compliance without the need for manual oversight.

Looking at the decisions use, we can put in evidence and summarize some advantages and especially those ones listed below.

Reusability: you can build your rules once and reuse those ones, gaining efficiency in making & maintaining them with a faster policy change approach without impacting an automation solution. Furthermore you can reuse those from within an integration flow, process workflow or any application

Efficiency: the policy maker doesn’t have to rely upon an integration specialist; he can build and maintain their own policies by themself

Fast policy change: you can change policies quickly without disrupting the areas of an automation solution that’s because you can change policy details independently from the components which use a decision

Now, stay tuned… very soon this feature will be available in GA, and not only Limited Availability, on all OIC instances

In summary:

Decisions and business rules in general enable greater flexibility, reducing operational risks, and improving both internal operations and external customer experience

References:

https://docs.oracle.com/en/cloud/paas/application-integration/

https://docs.oracle.com/en/cloud/paas/process-automation/user-process-automation/model-decisions.html

OCI User Access Review Made Easy

I’m sure we can all agree, adopting a cloud strategy is awesome. The opportunities and benefits it affords are many. However cloud governance is an ongoing problem that plagues security, compliance, and management teams, which cloud vendors like Oracle are continually trying to solve.

If you’re reading this, you’ve probably been asked, or heard at least once:

Who has access to what in our environment?

Any Security / Compliance Manager

The answer should be easy and simple. However the reality is likely lots of manual time & work, spreadsheets, and endless clicking in a cloud console. If you’re doing this manually then I agree, it’s time that you could be dedicating to more important tasks.

The challenge in trying to answer these questions:

  • What users exist and what groups do they belong to?
  • What does my OCI tenancy compartment structure look like?
  • What policies have users explicitly created?
  • What permissions do users have in my tenancy?
  • Are there any excessive / non-compliant policies & permissions in my tenancy?

is that these complex relationships can’t be easily represented and interpreted in a table-like format. In the OCI ecosystem:

  • users can be federated with an Identity Provider and can belong to one or many federated, or local IAM groups,
  • policies can be defined for “any-user” or for a group,
  • policies are inherited meaning they apply to all sub-compartments from which the policies are applied.

To make things easier I’ve created a solution using Oracle tools and services to simplify the auditing of OCI tenancies and user permissions called “Peek”.

Note: If you have an OCI tenancy with IAM Domains instead of IDCS, use these instructions https://redthunder.blog/2023/03/20/oci-iam-domains-user-access-review/ instead of those below.

Note: From 22/05/2023 APEX is no longer required as the solution runs entirely inside the container. To run the new container for OCI with IDCS use the following command:

docker run -it --name peek --rm \
--mount type=bind,source=/Full/Path/To/.oci/,target=/root/.oci/,readonly \ -e OCI_PROFILE_NAME=<from your OCI config> \-e OCI_TENANCY_OCID=<from text file> \
-e OCI_IAM_URL=<from text file> \
-e IDCS_URL=<from text file> \
-e IDCS_CLIENT_ID=<from text file> \
-e IDCS_SECRET=<from text file> \-e TOOLTIP_LINE_PX=20 \
-p 4567:4567 \scottfletcher/oci-peek


After the docker container has started, you can access the web interface using the locally mapped port http://localhost:4567. You should see a progress window:

Once the mapping process is complete the visualisation will appear.

Depending on how long your policy statements are, you may wish to adjust TOOLTIP_LINE_PX to a number greater or smaller than 20. If your policy statements overflow the tooltip box then increase this value, or if the box is too big, then you can decrease this value.

If you haven’t run Peek before, please read on as I explain how to create the required credentials and where to obtain the values for the other environment variables. You can skip the APEX steps, as APEX will not be used.

Continue reading “OCI User Access Review Made Easy”

#FormulaAI Hack – In Review

(With more to come with the winners being announced)

On Friday 18 March 03:00 PST | 06:00 EST | 10:00 GMT | 15:30 IST | 21:00 AEDT, Hackmakers will announce the winners of the #FormulaAI Hackathon 2022. It will be an exciting moment to conclude the event. Stay tuned at https://www.formulaaihack.com/ to watch the public live stream.

It’s been an immense learning experience for many people (including myself). Here’s a snapshot of some of those learnings when I look back in review. Please note that the content below does not contain any spoilers about winners and solutions delivered.

Continue reading “#FormulaAI Hack – In Review”

#BuildWithAI 2021 – Another Step

Last weekend (from Friday 29th Oct to Tuesday 2nd Nov), was the #BuildWithAI Hackathon 2021 where participants, mentors, sponsors and organisers gathered together to solve real world challenges with AI. This event does not standalone. In a world full of change, this (from my perspective) started last year in the #BuildWithAI Hackathon 2020 and continued to build.

This article is about the event but the event itself is just “Another Step”.

Continue reading “#BuildWithAI 2021 – Another Step”

#DaysOfArm (15 of X)

This is my 15th #DaysOfArm article that tracks some of the experiences that I’ve had so far. It’s been a little while since I’ve worked on this series however saying that … much of what I’ve been doing didn’t seem different from any other type of environment.

And just to recap from the first post (here) on June 12 2021.

It’s been just over 2 weeks since the launch of Ampere Arm deployed in Oracle Cloud Infrastructure (OCI). Check this article out to learn more (here). And it’s been about one week since I started looking into the new architecture and deployment, since I started provisioning the VM.Standard.A1.Flex Compute Shape on OCI and since I started migrating a specific application that has many different variations to it to test it all out.

This is my next learning where I looked into Let’s Encrypt to create a set of free certificates for Oracle Cloud Infrastructure A1.Flex VM Instances.

Continue reading “#DaysOfArm (15 of X)”

C# Serverless on OCI

I had a meeting the other day with an Oracle Partner and the discussion was about serverless solutions and Oracle Functions was introduced. And the natural question to ask was, “What is your preferred language?”.

They answered, “Mostly PHP. We also use C#”.

I had to think a little. And navigating to the fnproject.io (the open-source project that Oracle Functions is based upon), it was clear that C# was supported. Here’s a quick tour through that experience.

fnproject.io supported languages – golang, Java, javascript, python, ruby and C#.

A couple of quick points:

  • I didn’t need to install ASP.Net anywhere.
  • I’m not bound by Windows as the host operating system.

And if ASP.Net is your language of choice, you can also check out Deploy highly available ASP.Net applications on Oracle Cloud Infrastructure in the Oracle Architecture Center (here).

Continue reading “C# Serverless on OCI”

OCI Arcade Now Has A CRM

As each project comes along, there’s something new to add to the OCI Arcade. It started off with the game and Autonomous Database. And then grew into including Kafka, Docker Swarm, Serverless with the FN Project, Terraform, OAuth, Ansible, In-Memory Data Grid with Coherence-CE and more recently with Arm. This time round we’ve adding in a Customer Relationship Management (CRM) solution. Why? Up to now, users has been a simple identifier to denote the scores and the events in the game. Nothing more; nothing less. By adding in a CRM into the mix, we’ve opening up the understanding about our contacts and customers providing a richer experience for those coming to the arcade. And ultimately, from a space where we are build, experiment and try something out – adding user profiles opens up endless possibilities. Check out the rest of this about how it’s changed and some of the things we needed to do to make this happen.

Continue reading “OCI Arcade Now Has A CRM”

#DaysOfArm (14 of X)

This is my 14th #DaysOfArm article that tracks some of the experiences that I’ve had so far. And just to recap from the first post (here) on June 12 2021.

It’s been just over 2 weeks since the launch of Ampere Arm deployed in Oracle Cloud Infrastructure (OCI). Check this article out to learn more (here). And it’s been about one week since I started looking into the new architecture and deployment, since I started provisioning the VM.Standard.A1.Flex Compute Shape on OCI and since I started migrating a specific application that has many different variations to it to test it all out.

This is my next learning where I’ve deployed successfully openrouteservice – an open-source routing / direction API all deployed on an 4 OCPU with 24 GB of RAM in an Always Free Tier tenancy.

Continue reading “#DaysOfArm (14 of X)”

#DaysOfArm (13 of X)

This is my 13th #DaysOfArm article that tracks some of the experiences that I’ve had so far. And just to recap from the first post (here) on June 12 2021.

It’s been just over 2 weeks since the launch of Ampere Arm deployed in Oracle Cloud Infrastructure (OCI). Check this article out to learn more (here). And it’s been about one week since I started looking into the new architecture and deployment, since I started provisioning the VM.Standard.A1.Flex Compute Shape on OCI and since I started migrating a specific application that has many different variations to it to test it all out.

This is my next learning is another retrospective with the OCI Arcade deployment the full stack is now being deployed on 1 OCPU with 6 GB of RAM in an Always Free Tier tenancy.

Continue reading “#DaysOfArm (13 of X)”

#DaysOfArm (12 of X)

This is my 12th #DaysOfArm article that tracks some of the experiences that I’ve had so far. And just to recap from the first post (here) on June 12 2021.

It’s been just over 2 weeks since the launch of Ampere Arm deployed in Oracle Cloud Infrastructure (OCI). Check this article out to learn more (here). And it’s been about one week since I started looking into the new architecture and deployment, since I started provisioning the VM.Standard.A1.Flex Compute Shape on OCI and since I started migrating a specific application that has many different variations to it to test it all out.

This is my next learning where I’ve deployed successfully Pelias – an open-source geocode API all deployed on an 4 OCPU with 24 GB of RAM in an Always Free Tier tenancy.

(Update – 11th Oct 2021 – there’s been some changes made as this is a working document … as some of the packages have changed as well as additional fixes to make it easier …)

(Update – 28th Dec 2022 – I’ve refreshed the instructions for this blog post to match what is happening with Pelias as there’s been some cool changes to support arm64).

Continue reading “#DaysOfArm (12 of X)”