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.

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\""}


















 















#1033 - OIC Integration Basics - Lab 5 OIC Connections

Introduction

This lab discusses OIC Adapters and the connections you create based on them. It also discusses the connectivity agent in a bit more detail.

Connections, Connections, Connections


OIC ships with lots of adapters, from which you can create your connections to various apps and technologies -

The beauty with connections is they mask the complexity of the apps or technologies with which you wish to connect. Together with the functionally oriented design time wizard, they take care of the underlying plumbing - which api to call, authentication etc. -allowing you to concentrate on what needs to be done.

OIC has a bi-monthly release cycle, most releases including new adapters and enhancements to existing adapters.

Before using an adapter, ensure you read the relevant adapter doc. 
























These docs are available here.

Many of the adapters support Trigger and Invoke, remember the DB connection from Lab2?
























Trigger
 (Inbound) - means this connection can trigger/start an integration flow. Think of an integration that is triggered when a new row is entered in a database table. 

Invoke (Outbound) - means this adapter can be used within an integration orchestration to invoke a 3rd party app or technology. This is what we did in Lab 2.

Some adapters, such as Coupa Sourcing, only support Invoke.


















Ergo, before designing your integration, you need to consider the apps involved as well as the use case. Are these business SLAs involved e.g. integration has to happen in near real time etc. 

If OIC has adapters for the apps involved, then check out the specific adapter documentation to see exactly what the adapter supports. The Fusion adapters, for example, provide comprehensive support for all use cases, but this cannot be guaranteed for all adapters. 


The Primavera P6 EPPM adapter documentation, for example, provides detailed information on what capabilities it supports and also discusses usage restrictions. 

Creating a Connection

Creating a connection in OIC is easy. Generally, you specify the application endpoint and authentication details. Here again is the DB connection from Lab 2 - 

This connection is to the Oracle DB running on my laptop, thus localhost.

So how does OIC connect to my local DB at runtime? That's through the Connectivity Agent, selected below.

Lab 2 briefly discussed the connectivity agent. It is a lightweight Java based engine that must be installed on the same network as the target app, in my case, my DB. Since my DB is running locally, I download the agent from OIC and install it there.

The Agent can be downloaded from here - 
Simply unzip the downloaded file - 

Agents work on the call home principle - they make REST calls to OIC asking for work. These agents do that very efficiently. The agents need to belong to an Agent Group. This you create by clicking the Create button shown above.




 



 


 


Download config from the agent group. This config file contains the data needed by the agent to connect to OIC.

Replace the default InstallerProfile.cfg with the file you downloaded. 



There are some basic system pre-reqs for the connectivity agent, check out the docs here.

Starting the agent is easy, as I'm on Windows, I just open a cmd box and enter - java -jar connectivityagent.jar

The full agent documentation is available here

It also lists which adapters work with the connectivity agent - this is not the full list, so please refer to the docs.























Rapid Adapter Builder

There are a plethora of apps out there and OIC does not have adapters for all of them. What we do have though is the Rapid Adapter Builder (RAB). With this utility, you can build your own adapters for 3rd party REST apis, in a declarative manner; no coding, huge productivity!

Use of the RAB is out of scope for this OIC basics series, but I do have posts on this subject here

The RAB utility can be downloaded from the MSFT Visual Studio Marketplace - 



Summa Summarum

This lab has looked in depth at OIC Adapters / Connections as well as the OIC Connectivity Agent. We also discussed the Rapid Adapter Builder, which allows you to create your own REST based adapters.

The next lab looks at OIC Projects and some other OIC artefacts.