Tuesday, November 5, 2024

#1034 - OIC Integration Basics - Lab 6 OIC Projects

Introduction

OIC Projects allow you to organize your related OIC artefacts - Integrations, Connections, Lookups, Libraries, Events. Think of a project as your one stop shop, when you developing business processes.

You decide on the granularity of your projects; you could have one per use case, or one for related use cases e.g. all HCM onboarding use cases. RBAC can be applied to the Project design time, that means you can decide who can edit/view/monitor your project and its contents.

Projects contain other OIC artefacts we haven't as yet met -

  • Lookups
  • OIC Events
  • JavaScript Libraries
These will also be discussed in this post. The post also discusses OIC integration versioning as this impinges on Project Deployment.

Welcome to Projects


Before we begin, please note, there are some service limits related to projects, which do limit the amount of integrations etc. However, these limits are very generous. The OIC3 Service Limits doc can be found here.

So let's begin -

You can either create a new project or import a project. Projects are exported as .car files. 

Also, when creating a project, you can decide on its visibility - 

Back to the project I've been using for the other labs - 

Note the tabs on he left - 

The 2 other tabs are for OIC for Healthcare and B2B, more about them later.

In the Integration tab we see Integrations and Connections, which we have already met. We can also create Lookups, OIC Events and include JavaScript libraries.

Lookups

Lookups enable Domain Value Mapping between your Apps.  Think about a simple example where a customer address structure includes a country field.
Each of your apps has a different identifier for the same country e.g.





 


We will leverage the mapper to map the source to target country -

Configure as follows - 

Drag and drop the request country field, replacing the placeholder -

Activate and Run - 













OIC Events

OIC Events allow you to implement publish/subscribe within OIC itself. Net, net, one integration can publish an event, one or more other integrations can subscribe to the same. 

Creating an event means essentially defining the event and its fields. This is in JSON - 

You can also define headers, which can be used for filtering events - 


Publishing an event is easy - 

I can edit the name - 





































I then do the mapping - 
























Note the Event Headers - 

Now to the subscribing integration - 

Note the ability to filter - 

Here I could filter based on the custom header I defined, i.e. filter by country.

I run the Publish integration - 

I click the Project Observe tab - 


The subscriber has been triggered.

Filtering is easy - let's add a filter to only subscribe to orders for Ireland.

{"type":"jq_filter","filter-def":".countryheader==\"Ireland\""}




JavaScript Libraries

Here's my simple example - 

I add to OIC - 
We can call this function from the Lab 2 integration - createOrder - 


I test the integration with an order for €2400 - 

Here is the response from the function call - remember, I have applied a 10% discount.

Projects per se

We have now covered the integration artefacts available in a project, we will discuss Healthcare and B2B later. So let's see what projects have to offer in themselves.

Project RBAC

You can apply Resource Based Access Control to the Project in the OIC designtime. This can be enabled when you create the project - 





































The project XX would be, what you could term, a public project.

Back to my own project, RBAC can be assigned as follows - 

As you can see, this is a private project, however, I can add users or groups (these will be users/groups from IDCS) to the edit, view and monitor permissions.

This of a project for HCM onboarding, maybe I have a couple of integration developers that just work on HCM focused integrations. I could add them to a group in IDCS, say HCM_DEVS, and then use that group when assigning edit permissions to my onboarding project.

Again, RBAC applies to the designtime only. It allows different groups of OIC developers to use the same OIC instance, without seeing the work of the others.   Note the default choice of Everyone.













Project Tabs - Design

This is where we create our integration artefacts, activate and test them.

Integrations can have multiple versions - let's create such  -




One can create minor an major versions - 

Let's activate the new minor version - 

as you can see, it deactivates the version 01.00.0000 - 
Check out the endpoint of the new version - it's the same endpoint so, only one of these versions can be active at any point in time.

Now let's create a major version - 

Simple enough. Note also the ability to Clone an integration -
























So, with this in mind, let's look at project deployment.

Project Tabs - Deploy

Deployments are used to package integrations for export. The export (.car file) can then be imported into another OIC instance.

I can then choose which integrations to include - 

I can then export - 


Project Tabs - Observe

Here we can monitor our project. Let's begin with the aggregated view of executed integrations -

Click on the icon on the right, to view processing time statistics - 

These stats are extremely useful for analysing performance etc.

Click on Instances to see the individual flows - 

Check out the graphic on the right - 

Here you can also drill down - 

Click on an instance, to see the activity stream - 

Note this very useful icon - excellent when trying to detect bottlenecks - 

Click Subscriptions to see your integrations which are subscribing to OIC events - 

Click Future Runs to see a graphical representation of the timetable for my scheduled jobs - 

Click Audit, to see who has been doing what in the project - 

 Sharing between Projects

You can "share" connections and integrations between projects. This allows you to have a "common" project for connections and integrations other projects need to use. 

Here's how I can use this in my project - 

Now back to the common project, where I will create a common logging integration - 

Back in my project - 



Finally, let's look at the project dependency diagram - this shows the dependencies between your OIC project artefacts, making it very useful for impact of change analysis. 

Note, you also have the ability to filter - 

Summa Summarum

With OIC Projects, think organization, isolation and sharing. They are the way to go when developing your business processes. The next lab will look at the many actions you can use to build your orchestrations.