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 -
Also, when creating a project, you can decide on its visibility -
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.
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.
Filtering is easy - let's add a filter to only subscribe to orders for Ireland.
{"type":"jq_filter","filter-def":".countryheader==\"Ireland\""}
We can call this function from the Lab 2 integration - createOrder -
I test the integration with an order for €2400 -
I test the integration with an order for €2400 -
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
Integrations can have multiple versions - let's create such -
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.
Project Tabs - Deploy
Deployments are used to package integrations for export. The export (.car file) can then be imported into another OIC instance.
Project Tabs - Observe
Click on Instances to see the individual flows -
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 -
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.