Monday, December 19, 2022

#943 - Integrating with OTM Cloud using the OIC Logistics Adapter

 



Introduction

I strongly suggest you read the following guide, before starting your development of OTM focused integrations -













It is available here.

Then check out the OIC Logistics adapter guide here.

Pre-requisites in OTM Cloud

Firstly, a big thanks to my OTM colleague, Sudheer R. here.

I am a neophyte when it comes to OTM Cloud, but I do have access to an OTM Cloud instance -



 


I am going to use the same OTM user in my OIC Logistics connection definition, best practices would be to create a specific OTM integration user, I may try that later!

So let's check out my user - 












 












Note the Access Control List section - add INTEGRATION, if not already present.

In this post I will use OIC to create a Location in OTM Cloud. It's probably one of the easiest business objects to create, excellent for a sanity test.

 

Creating the OTM(Logistics) connection in OIC

First step is to create the connection to OTM in OIC - 









Configure as follows - 







Creating the OIC Integration with OTM

The REST Request payload will contain all the salient data I need to create a new Location in OTM Cloud.  



Let's check out the configuration of the Logistics invoke - 





















I map the following fields - 



































from the following request payload - 












The Response payload is as follows - 









Here is a screenshot of the Target mapping result from the tester -











The Transmission number is in the following OTM response field -


 













I map this to the integration response.

Now to testing the integration - I do so with the following payload - 





















This transmissionNr refers to the actual load request sent to OTM Cloud. Inserting data in this way is a 2 phase process, akin to HDL in HCM. I can check out the "load" process in OTM using this number.














PROCESSED = Successfully Loaded.

I click on the ID link - 





Clicking on the Transaction XML button will show the actual payload received.










I can also check the OTM Location List - 























Friday, December 16, 2022

#942 OIC 22.12 Release - New Features --> PostgreSQL Adapter




I just installed PostgreSQL and created my database and first table - orders - 


Just in case you're wondering - the text is not as Gaeilge, sondern Deutsch.

Ok, I have the table, let's create the connection in OIC.

I will also need a connectivity agent installed to make the magic happen.

I download the agent and install it. 22.12 makes the agent configuration very easy - 


This gives me the complete InstallerProfile.cfg, complete with OAuth setup. 

The Connection definition is simple - 



I also specify the Agent Group - 



















Now to leveraging the connection in an integration - I create a new integration with a REST trigger - payload is an order. I drop the PostgreSQL connection onto the canvas - 


  











I do the mapping - hardcoding status to approved -


























Activate the integration and run - 

























I validate in PostgreSQL - 



#941 OIC 22.12 Release New Features post on blogs.oracle.com

 









Check out my post here

Thursday, December 15, 2022

#940 OIC 22.12 Release - New Features --> Projects

 









A project in OIC consists of all of the artifacts you need to implement an integration or set of integrations. Imagine you have many integration requirements around order processing. You could create an integration project for such and it would contain all of the integrations, connections, lookups, and libraries you need to implement your order processing use case(s). The project itself is self contained and can be managed and monitored independently.

So what's the big value add of Projects?

1. Allows one to organize your integrations and related artifacts. This greatly eases manageability in OIC.

2. Projects provide us with our own slice of OIC. You can create, run and monitor your integrations within the context of the project; a definite plus in respect of developer productivity.

So without further ado, let's kick the tyres - this is what I see when I create my project - 





There are also sections for lookups and libraries - 




I create my assets inline - here's what I see when I click the Integrations Add button - 


so off I go and create my integration artifacts, beginning with Connections - 


I create a lookup to hold values such as my Netsuite Subsidiary Id etc. I also import a useful JS library.


Now to a couple of integrations - 

I have a simple app driven integration that creates customers in Netsuite - 

Note: I only see the project connections in the integration canvas - I did mention self-contained. 







The Target Netsuite subsidiary id will be filled by a lookup value - 











I only see Project Lookups - in my case, the OrdersLookup.


You get the idea - self-contained!

The Integration menu is as follows - 



I also have the Activate option at Project level - think of a global activate/deactivate option.








Activation requires a project label, so let's look at them - think of project labels as a way of organizing your integrations within the project. I have only 3 integrations, but there is no limit to what a project can contain (apart from the global 700 active integrations limit per OIC instance). I can create a project level and assign that label to certain integrations. I can then do a project level activation based on project labels. Here's my label for Netsuite integrations - 

















I add the Netsuite integration to the label - 




















I now click the Project level Activate button again - 





 Let's run the Netsuite integration - 















Back in the Project UI -  I click on the Observe button





I only see the instance(s) from my project -








Clicking on Design brings me back to the Project UI - 








The Project itself has its own lifecycle - note it remains in draft state until all integrations have been configured -


 

I now complete the SFDC integration -








All Integrations are now configured - project is also set to configured.

I deactivate the Netsuite integration -






and create a new project label - OrdersProject - adding all integrations to it.














I can then activate at Project level -


More comprehensive label management is planned for our 223.02 OIC 3 release.


That was a quick tour of the new Projects feature coming with OIC 3 22.12 release. Naturally, you can continue creating your integrations etc. outside of a project; however, it's a great value-add in respect of organizing and isolating your integration artifacts.